aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils
diff options
context:
space:
mode:
authorlloyd <[email protected]>2011-04-18 18:05:27 +0000
committerlloyd <[email protected]>2011-04-18 18:05:27 +0000
commit06a32c91e639cc2b0c636553a8aa395aa90d4d37 (patch)
tree9e69d0eda9228cfde50cfd377ebe0e4463026e32 /src/utils
parent886252ce1a1b0de611c33c9eac0a91a0e6bf3276 (diff)
My workaround for gcc pr 44174 caused cpuid support to be silently
disabled under gcc. Hide asm labels in the x86-32 code; some did not begin with a .L so they were being exported.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/cpuid.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/utils/cpuid.cpp b/src/utils/cpuid.cpp
index 7f3b4d9b8..ce3822d55 100644
--- a/src/utils/cpuid.cpp
+++ b/src/utils/cpuid.cpp
@@ -31,15 +31,21 @@
// Only available starting in GCC 4.3
#include <cpuid.h>
+namespace {
+
/*
* Prevent inlining to work around GCC bug 44174
*/
- void __attribute__((__noinline__)) CALL_CPUID(Botan::u32bit type,
- Botan::u32bit out[4])
+ void __attribute__((__noinline__)) call_gcc_cpuid(Botan::u32bit type,
+ Botan::u32bit out[4])
{
__get_cpuid(type, out, out+1, out+2, out+3);
}
+ #define CALL_CPUID call_gcc_cpuid
+
+}
+
#else
#warning "No method of calling CPUID for this compiler"
#endif