diff options
Diffstat (limited to 'src/include/port/atomics.h')
-rw-r--r-- | src/include/port/atomics.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/include/port/atomics.h b/src/include/port/atomics.h index fab66f8e987..363e1df4bf8 100644 --- a/src/include/port/atomics.h +++ b/src/include/port/atomics.h @@ -87,14 +87,11 @@ * using compiler intrinsics are a good idea. */ /* - * Given a gcc-compatible xlc compiler, prefer the xlc implementation. The - * ppc64le "IBM XL C/C++ for Linux, V13.1.2" implements both interfaces, but - * __sync_lock_test_and_set() of one-byte types elicits SIGSEGV. + * gcc or compatible, including clang and icc. Exclude xlc. The ppc64le "IBM + * XL C/C++ for Linux, V13.1.2" emulates gcc, but __sync_lock_test_and_set() + * of one-byte types elicits SIGSEGV. */ -#if defined(__IBMC__) || defined(__IBMCPP__) -#include "port/atomics/generic-xlc.h" -/* gcc or compatible, including clang and icc */ -#elif defined(__GNUC__) || defined(__INTEL_COMPILER) +#if (defined(__GNUC__) || defined(__INTEL_COMPILER)) && !(defined(__IBMC__) || defined(__IBMCPP__)) #include "port/atomics/generic-gcc.h" #elif defined(_MSC_VER) #include "port/atomics/generic-msvc.h" |