summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2016-12-28 23:43:05 +0300
committerIvan Maidanski <ivmai@mail.ru>2016-12-28 23:43:05 +0300
commit7a6a7cc4820107dd768a47eaf20c0ec8fa918d2d (patch)
tree7e42ef30d7f116c5cebf815c5e3ca27f2244792c
parent8550ecd0362788b0a8b662cd9f2d4b4bb4a758a6 (diff)
downloadlibatomic_ops-7a6a7cc4820107dd768a47eaf20c0ec8fa918d2d.tar.gz
Fix AO_stack build failure on OS X 10.7 because of missing CAS (x86_64)
Issue #23 (libatomic_ops). * src/atomic_ops/sysdeps/gcc/x86.h [AO_GCC_ATOMIC_TEST_AND_SET && __APPLE_CC__ && __x86_64__] (AO_GCC_FORCE_HAVE_CAS): Define (to workaround missing __GCC_HAVE_SYNC_COMPARE_AND_SWAP_<n> predefined macro in Apple clang-425/x86_64); add comment.
-rw-r--r--src/atomic_ops/sysdeps/gcc/x86.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/x86.h b/src/atomic_ops/sysdeps/gcc/x86.h
index ded34ac..4f81773 100644
--- a/src/atomic_ops/sysdeps/gcc/x86.h
+++ b/src/atomic_ops/sysdeps/gcc/x86.h
@@ -43,6 +43,9 @@
/* As of Apple clang-600 (based on LLVM 3.5svn), it has some bug in */
/* double-wide CAS implementation for x64 target. */
# define AO_SKIPATOMIC_double_compare_and_swap_ANY
+ /* OS X 10.7 clang-425/x64 lacks __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n */
+ /* predefined macro (unlike e.g. OS X 10.11 clang-703). */
+# define AO_GCC_FORCE_HAVE_CAS
# endif
#else /* AO_DISABLE_GCC_ATOMICS */