X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Finner.h;h=47431c00b9411cedc96fbaae05c567da0a1fcb03;hp=b03f043ed0f0ccff01edd4490602e1973fdda97c;hb=2f88a673049d1e183d1a8f78e2030bf02362b8bf;hpb=db8f1b664524e3fbeea8a0730b2bbe2f0bdcea86 diff --git a/src/inner.h b/src/inner.h index b03f043..47431c0 100644 --- a/src/inner.h +++ b/src/inner.h @@ -154,6 +154,18 @@ #define BR_TARGET(x) #endif +/* + * 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). + */ +#if BR_AES_X86NI_GCC && !defined BR_AES_X86NI_GCC_OLD +#if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ <= 8 && !__clang__ +#define BR_AES_X86NI_GCC_OLD 1 +#endif +#endif + /* * POWER8 crypto support. We rely on compiler macros for the * architecture, since we do not have a reliable, simple way to detect