diff options
-rw-r--r-- | src/build-data/buildh.in | 7 | ||||
-rw-r--r-- | src/utils/cpuid.cpp | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in index 724801040..90d274d58 100644 --- a/src/build-data/buildh.in +++ b/src/build-data/buildh.in @@ -35,6 +35,13 @@ #define BOTAN_USE_GCC_INLINE_ASM 0 #endif +#ifdef __GNUC__ + #define BOTAN_GCC_VERSION \ + (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCH__) +#else + #define BOTAN_GCC_VERSION 0 +#endif + /* Target identification and feature test macros */ %{target_os_defines} diff --git a/src/utils/cpuid.cpp b/src/utils/cpuid.cpp index e4f5a1318..19a2db788 100644 --- a/src/utils/cpuid.cpp +++ b/src/utils/cpuid.cpp @@ -26,14 +26,15 @@ #include <ia32intrin.h> #define CALL_CPUID(type, out) do { __cpuid(out, type); } while(0); -#elif defined(BOTAN_BUILD_COMPILER_IS_GCC) && \ - ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) +#elif BOTAN_GCC_VERSION >= 430 // Only available starting in GCC 4.3 #include <cpuid.h> #define CALL_CPUID(type, out) \ do { __get_cpuid(type, out, out+1, out+2, out+3); } while(0); +#else + #warning "No method of calling CPUID for this compiler" #endif #endif |