Fixed compilation for GCC 4.4 to 4.8 (AES-NI opcodes; intrinsics headers require target options to be set).

This commit is contained in:
Thomas Pornin 2017-03-09 20:13:23 +00:00
parent 98432a0a30
commit 2f88a67304
6 changed files with 43 additions and 1 deletions

View file

@ -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