mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
synced 2024-12-04 09:34:18 +08:00
0da635fd1b
On recent x86-64 system with march=native|<cpu>|<microarchitecture level> gcc/clang will automatically define all the available vector extensions macros. crypto/blake2-config.h then correctly set all the HAVE_<EXTENSION> macros. crypto/blake2-round.h then checks the HAVE_<EXTENSION> macros for including further headers: #if defined(HAVE_SSE41) #include "blake2b-load-sse41.h" #else #include "blake2b-load-sse2.h" #endif which is wrong. On recent systems it always results in including blake2b-load-sse41.h. crypto/blake2-round.h itself is included by crypto/blake2b-sse2.c and now we have a SSE2/SSE4.1 code mixing resulting in the incompatible type for argument build errors described in #589. The idea is to remove the lines above from crypto/blake2-round.h and put the includes directly into crypto/blake2b-sse2.c and crypto/blake2b-sse41.c respectively. Note this slightly diverges from the upstream BLAKE2 sources. Pull-request: #591 Author: Tino Mai <mai.tino@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com> |
||
---|---|---|
.. | ||
blake2-config.h | ||
blake2-impl.h | ||
blake2.h | ||
blake2b-avx2.c | ||
blake2b-load-avx2-simple.h | ||
blake2b-load-avx2.h | ||
blake2b-load-sse2.h | ||
blake2b-load-sse41.h | ||
blake2b-ref.c | ||
blake2b-round.h | ||
blake2b-sse2.c | ||
blake2b-sse41.c | ||
crc32c.c | ||
crc32c.h | ||
hash-speedtest.c | ||
hash-vectest.c | ||
hash.c | ||
hash.h | ||
sha224-256.c | ||
sha256-x86.c | ||
sha-private.h | ||
sha.h | ||
xxhash.c | ||
xxhash.h |