test synchronization primitives
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 18 Apr 2012 17:43:58 +0000 (12:43 -0500)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 18 Apr 2012 17:43:58 +0000 (12:43 -0500)
src/scripts/configure
src/scripts/configure.in
src/scripts/conv-autoconfig.h.in

index bd40db65be5d668892ea9119bf0276d4a1ac5277..7a07ef52f893e8a673c61148fbd83ecc13a48d84 100755 (executable)
@@ -2825,6 +2825,23 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+#### check __sync_add_and_fetch ####
+cat > $tc <<EOT
+#include <stdio.h>
+int main()
+{
+  int t=1;
+  __sync_add_and_fetch(&t, 1);
+  return 1;
+}
+EOT
+test_linkc "whether synchronization primitives (__sync_add_and_fetch) works in C" "yes" "no" ""
+
+cat >>confdefs.h <<_ACEOF
+#define CMK_C_SYNC_PRIMITIVES $pass
+_ACEOF
+
+
 ### test if switching TLS register ###
 if test $in64bit = 1
 then
index 3bb69d5cc36b80de0afa615db591950ea0a1ba8d..7ab32f0de9e1cd3ed570492899e7de4cea3b6fe6 100644 (file)
@@ -883,6 +883,19 @@ EOT
 test_cxx "whether __thread (Thread Local Storage) is supported" "yes" "no" ""
 AC_DEFINE_UNQUOTED(CMK_HAS_TLS_VARIABLES, $strictpass, [Allows __thread.])
 
+#### check __sync_add_and_fetch ####
+cat > $tc <<EOT
+#include <stdio.h>
+int main()
+{
+  int t=1;
+  __sync_add_and_fetch(&t, 1);
+  return 1;
+}
+EOT
+test_linkc "whether synchronization primitives (__sync_add_and_fetch) works in C" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_C_SYNC_PRIMITIVES, $pass, [whether synchronization primitives works in C])
+
 ### test if switching TLS register ###
 if test $in64bit = 1
 then
index ab3b0416958da3e7a939a25d381950fba179f13f..d217925ed495c0ae3dfac5e9ad3075f0afc7ce29 100644 (file)
@@ -36,6 +36,9 @@
 /* whether C inline works in C */
 #undef CMK_C_INLINE
 
+/* whether synchronization primitives works in C */
+#undef CMK_C_SYNC_PRIMITIVES
+
 /* whether C++ allows declaration of variable sized array */
 #undef CMK_DECLARE_VARSIZE_ARRAY