Please stabilize.
amd64 stable
arm64 stable
ia64 stable
hppa/sparc stable
alpha stable
x86 stable
s390 stable
ppc stable
ppc64 stable
FAILING on x86 !! -- >>> Compiling source in /var/tmp/portage/app-crypt/argon2-20190702/work/phc-winner-argon2-20190702 ... make -j2 OPTTEST=0 LIBRARY_REL=lib ARGON2_VERSION=0~20190702 Building with optimizations for native i686-pc-linux-gnu-gcc -O2 -march=i686 -pipe -std=c89 -Wall -Iinclude -Isrc -pthread -Wl,-O1 -Wl,--as-needed src/argon2.c src/core.c src/blake2/blake2b.c src/thread.c src/encoding.c src/opt.c src/run.c -o argon2 i686-pc-linux-gnu-gcc -O2 -march=i686 -pipe -std=c89 -Wall -Iinclude -Isrc -pthread -shared -fPIC -fvisibility=hidden -DA2_VISCTL=1 -Wl,-O1 -Wl,--as-needed -Wl,-soname,libargon2.so.1 src/argon2.c src/core.c src/blake2/blake2b.c src/thread.c src/encoding.c src/opt.c -o libargon2.so.1 In file included from src/opt.c:26: src/blake2/blamka-round-opt.h: In function ‘fBlaMka’: src/blake2/blamka-round-opt.h:59:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi] 59 | static BLAKE2_INLINE __m128i fBlaMka(__m128i x, __m128i y) { | ^~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h: In function ‘fBlaMka’: src/blake2/blamka-round-opt.h:59:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi] 59 | static BLAKE2_INLINE __m128i fBlaMka(__m128i x, __m128i y) { | ^~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1148:1: error: inlining failed in call to always_inline ‘_mm_mul_epu32’: target specific option mismatch 1148 | _mm_mul_epu32 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:60:23: note: called from here 60 | const __m128i z = _mm_mul_epu32(x, y); | ^~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1046:1: error: inlining failed in call to always_inline ‘_mm_add_epi64’: target specific option mismatch 1046 | _mm_add_epi64 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:61:12: note: called from here 61 | return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/blake2/blamka-round-opt.h:23, from src/opt.c:26: /usr/lib/gcc/i686-pc-linux-gnu/9.2.0/include/emmintrin.h:1148:1: error: inlining failed in call to always_inline ‘_mm_mul_epu32’: target specific option mismatch 1148 | _mm_mul_epu32 (__m128i __A, __m128i __B) | ^~~~~~~~~~~~~ In file included from src/opt.c:26: src/blake2/blamka-round-opt.h:60:23: note: called from here 60 | const __m128i z = _mm_mul_epu32(x, y); | ^~~~~~~~~~~~~~~~~~~ make: *** [Makefile:182: libargon2.so.1] Error 1 make: *** Waiting for unfinished jobs.... make: *** [Makefile:173: argon2] Error 1 * ERROR: app-crypt/argon2-20190702::gentoo failed (compile phase): * emake failed
This also fails for me on a Geode chip that only has MMX and 3DNOW. The blake2 code appears to require SSE2 to build.
Maybe the SIMD code could be toggled with an option like this? --- app-crypt/argon2/argon2-20190702.ebuild +++ app-crypt/argon2/argon2-20190702.ebuild @@ -12,7 +12,7 @@ LICENSE="|| ( Apache-2.0 CC0-1.0 )" SLOT="0/1" KEYWORDS="alpha amd64 ~arm arm64 hppa ia64 ~mips ~ppc ~ppc64 s390 sparc x86" -IUSE="static-libs" +IUSE="optimizations static-libs" S="${WORKDIR}/phc-winner-${P}" @@ -31,11 +31,7 @@ tc-export CC - if use amd64 || use x86; then - OPTTEST=0 - else - OPTTEST=1 - fi + OPTTEST=$(usex optimizations 0 1) } src_compile() {
FWICS, the code requires SSE2, so I'm just gonna make OPTTEST conditional to that.
Thanks, that change works.
OK, works! Thank you.
arm stable. Closing.