Created attachment 592270 [details] ebuild environment and info when running emerge --ask --oneshot =dev-libs/crypto++-8.2.0: * Package: dev-libs/crypto++-8.2.0 * Repository: gentoo * Maintainer: crypto@gentoo.org noloader@gmail.com * USE: abi_x86_64 amd64 asm elibc_glibc kernel_linux userland_GNU * FEATURES: preserve-libs sandbox userpriv usersandbox >>> Unpacking source... >>> Unpacking cryptopp820.zip to /var/tmp/portage/dev-libs/crypto++-8.2.0/work >>> Source unpacked in /var/tmp/portage/dev-libs/crypto++-8.2.0/work >>> Preparing source in /var/tmp/portage/dev-libs/crypto++-8.2.0/work ... * Applying crypto++-8.2.0-build.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-libs/crypto++-8.2.0/work ... >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-libs/crypto++-8.2.0/work ... make -j4 -f GNUmakefile all shared libcryptopp.pc Using testing flags: -march=broadwell -O2 -pipe x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cryptlib.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cpu.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c integer.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c 3way.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c adler32.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c algebra.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c algparam.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c arc4.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c aria.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -mssse3 -c aria_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c ariatab.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c asn.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c authenc.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c base32.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c base64.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c basecode.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c bfinit.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c blake2.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -msse4.1 -c blake2b_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -msse4.1 -c blake2s_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c blowfish.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c blumshub.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c camellia.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cast.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c casts.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cbcmac.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c ccm.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c chacha.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -mavx2 -c chacha_avx.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -msse2 -c chacha_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c chachapoly.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cham.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -mssse3 -c cham_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c channels.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c cmac.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c crc.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -msse4.2 -c crc_simd.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c darn.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c default.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c des.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c dessp.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c dh.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c dh2.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c dll.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c donna_32.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c donna_64.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -msse2 -c donna_sse.cpp x86_64-pc-linux-gnu-g++ -march=broadwell -O2 -pipe -fPIC -pthread -pipe -c dsa.cpp donna_64.cpp: In function ‘void CryptoPP::Donna::Ed25519::{anonymous}::ge25519_double_scalarmult_vartime(CryptoPP::Donna::Arch64::ge25519*, const CryptoPP::Donna::Arch64::ge25519*, const bignum256modm_element_t*, const bignum256modm_element_t*)’: donna_64.cpp:1388:67: error: invalid types ‘CryptoPP::Donna::Arch64::ge25519_pniels [8][__gnu_cxx::__enable_if<true, double>::__type {aka double}]’ for array subscript ge25519_pnielsadd_p1p1(&t, r, &pre1[abs(slide1[i]) / 2], (byte)slide1[i] >> 7); ^ donna_64.cpp:1393:94: error: invalid types ‘const CryptoPP::Donna::Arch64::ge25519_niels [32][__gnu_cxx::__enable_if<true, double>::__type {aka double}]’ for array subscript ge25519_nielsadd2_p1p1(&t, r, &ge25519_niels_sliding_multiples[abs(slide2[i]) / 2], (byte)slide2[i] >> 7); ^ make: *** [GNUmakefile:1589: donna_64.o] Error 1 make: *** Waiting for unfinished jobs.... * ERROR: dev-libs/crypto++-8.2.0::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-libs/crypto++-8.2.0::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-libs/crypto++-8.2.0::gentoo'`. * The complete build log is located at '/var/tmp/portage/dev-libs/crypto++-8.2.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-libs/crypto++-8.2.0/temp/environment'. * Working directory: '/var/tmp/portage/dev-libs/crypto++-8.2.0/work' * S: '/var/tmp/portage/dev-libs/crypto++-8.2.0/work'
>>>>>>>>>> SNIP <<<<<<<<<< donna_64.cpp: In function ‘void CryptoPP::Donna::Ed25519::{anonymous}::ge25519_double_scalarmult_vartime(CryptoPP::Donna::Arch64::ge25519*, const CryptoPP::Donna::Arch64::ge25519*, const bignum256modm_element_t*, const bignum256modm_element_t*)’: donna_64.cpp:1388:67: error: invalid types ‘CryptoPP::Donna::Arch64::ge25519_pniels [8][__gnu_cxx::__enable_if<true, double>::__type {aka double}]’ for array subscript ge25519_pnielsadd_p1p1(&t, r, &pre1[abs(slide1[i]) / 2], (byte)slide1[i] >> 7); Thanks David. I'm having trouble duplicating the issue with Master and a CRYPTOPP_8_2_0 checkout: CXXFLAGS="-march=broadwell -O2" make -j 8 I'm on a different platform, though. I don't have a Gentoo test machine at the moment. I'm using Ubuntu with GCC 7.4.0 and Fedora with GCC 9.2.1. I'm not sure about this message: donna_64.cpp:1388:67: error: invalid types Donna::Arch64::ge25519_pniels [8][__gnu_cxx::__enable_if<true, double>::__type {aka double}]’ for array subscript I believe it is coming from: #define S1_SWINDOWSIZE 5 #define S1_TABLE_SIZE (1<<(S1_SWINDOWSIZE-2)) (S1_TABLE_SIZE takes the value of 8). And then in ge25519_double_scalarmult_vartime: ge25519_pniels pre1[S1_TABLE_SIZE]; Going back a little further in donna_64.h: typedef word64 bignum25519[5]; struct ge25519_pniels { bignum25519 ysubx, xaddy, z, t2d; }; I don't see anything out of the ordinary, except word64 is typedef'd as 'unsigned long' under LP64 data models (instead of a double). Do you know why the compiler is trying to use a double there? What compiler is x86_64-pc-linux-gnu-g++? What do you know about it?
i don't really know whats up with that compiler. i tried to track down whats up with it and here's what i was able to find. /usr/x86_64-pc-linux-gnu/gcc-bin/9.3.0/x86_64-pc-linux-gnu-g++ --version x86_64-pc-linux-gnu-g++ (Gentoo 9.3.0-r1 p3) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. my impression is that it's gnu g++ 9.3.0?
(In reply to david from comment #2) > i don't really know whats up with that compiler. i tried to track down whats > up with it and here's what i was able to find. > > /usr/x86_64-pc-linux-gnu/gcc-bin/9.3.0/x86_64-pc-linux-gnu-g++ --version > x86_64-pc-linux-gnu-g++ (Gentoo 9.3.0-r1 p3) 9.3.0 > Copyright (C) 2019 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > my impression is that it's gnu g++ 9.3.0? yeah, it's just an extended name for that. Can you try with crypto++-8.3.0?