X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Finner.h;h=3830c7c5b916d95a4301a4ffc1e65b4fe278486e;hp=33901ab86052fecab00fa3f97cecb92130fbba90;hb=d8641065c992e2d06494d51f151355635f05dfa0;hpb=8b2fe3add686db5cbd977e75d3bef02fa4c98c8f diff --git a/src/inner.h b/src/inner.h index 33901ab..3830c7c 100644 --- a/src/inner.h +++ b/src/inner.h @@ -157,10 +157,12 @@ * GCC versions from 4.4 to 4.8 (inclusive) must use a special #pragma * to activate extra opcodes before including the relevant intrinsic * headers. But these don't work with Clang (which does not need them - * either). + * either). We also need that #pragma for GCC 4.9 in order to work + * around a compiler bug (it tends to blow up on ghash_pclmul code + * otherwise). */ #if BR_AES_X86NI_GCC && !defined BR_AES_X86NI_GCC_OLD -#if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ <= 8 && !__clang__ +#if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ <= 9 && !__clang__ #define BR_AES_X86NI_GCC_OLD 1 #endif #endif @@ -236,7 +238,7 @@ #define BR_BE_UNALIGNED 1 #elif BR_POWER8_LE #define BR_LE_UNALIGNED 1 -#elif (__powerpc__ || __powerpc64__ || _M_PPC || _ARCH_PPC || _ARCH_PPC64) \\ +#elif (__powerpc__ || __powerpc64__ || _M_PPC || _ARCH_PPC || _ARCH_PPC64) \ && __BIG_ENDIAN__ #define BR_BE_UNALIGNED 1 #endif