Index: openmp/trunk/runtime/src/kmp.h =================================================================== --- openmp/trunk/runtime/src/kmp.h +++ openmp/trunk/runtime/src/kmp.h @@ -1228,6 +1228,7 @@ long nivcsw; /* the number of times a context switch was forced */ } kmp_sys_info_t; +#if KMP_ARCH_X86 || KMP_ARCH_X86_64 typedef struct kmp_cpuinfo { int initialized; // If 0, other fields are not initialized. int signature; // CPUID(1).EAX @@ -1243,7 +1244,7 @@ kmp_uint64 frequency; // Nominal CPU frequency in Hz. char name [3*sizeof (kmp_cpuid_t)]; // CPUID(0x80000002,0x80000003,0x80000004) } kmp_cpuinfo_t; - +#endif #ifdef BUILD_TV @@ -2666,7 +2667,9 @@ extern int __kmp_storage_map_verbose; /* True means storage map includes placement info */ extern int __kmp_storage_map_verbose_specified; +#if KMP_ARCH_X86 || KMP_ARCH_X86_64 extern kmp_cpuinfo_t __kmp_cpuinfo; +#endif extern volatile int __kmp_init_serial; extern volatile int __kmp_init_gtid; Index: openmp/trunk/runtime/src/kmp_csupport.c =================================================================== --- openmp/trunk/runtime/src/kmp_csupport.c +++ openmp/trunk/runtime/src/kmp_csupport.c @@ -1174,13 +1174,20 @@ #else # define KMP_TSX_LOCK(seq) __kmp_user_lock_seq #endif + +#if KMP_ARCH_X86 || KMP_ARCH_X86_64 +# define KMP_CPUINFO_RTM (__kmp_cpuinfo.rtm) +#else +# define KMP_CPUINFO_RTM 0 +#endif + // Hints that do not require further logic if (hint & kmp_lock_hint_hle) return KMP_TSX_LOCK(hle); if (hint & kmp_lock_hint_rtm) - return (__kmp_cpuinfo.rtm)? KMP_TSX_LOCK(rtm): __kmp_user_lock_seq; + return KMP_CPUINFO_RTM ? KMP_TSX_LOCK(rtm): __kmp_user_lock_seq; if (hint & kmp_lock_hint_adaptive) - return (__kmp_cpuinfo.rtm)? KMP_TSX_LOCK(adaptive): __kmp_user_lock_seq; + return KMP_CPUINFO_RTM ? KMP_TSX_LOCK(adaptive): __kmp_user_lock_seq; // Rule out conflicting hints first by returning the default lock if ((hint & omp_lock_hint_contended) && (hint & omp_lock_hint_uncontended)) Index: openmp/trunk/runtime/src/kmp_global.c =================================================================== --- openmp/trunk/runtime/src/kmp_global.c +++ openmp/trunk/runtime/src/kmp_global.c @@ -17,7 +17,9 @@ kmp_key_t __kmp_gtid_threadprivate_key; +#if KMP_ARCH_X86 || KMP_ARCH_X86_64 kmp_cpuinfo_t __kmp_cpuinfo = { 0 }; // Not initialized +#endif #if KMP_STATS_ENABLED #include "kmp_stats.h"