summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2009-06-11 19:49:51 +0200
committerunknown <knielsen@knielsen-hq.org>2009-06-11 19:49:51 +0200
commit4b2aafb35cd2f04d96165100aee22b8836cf950d (patch)
treec11afa70602fb80e4e6e0854bd8d8bc4de7375bf /configure.in
parent1f81aa5f5aa48001b4b986c0d45ea094c78f896d (diff)
parent93bcda598bd6c58a7f5ad3d2e860b194325eed9f (diff)
downloadmariadb-git-4b2aafb35cd2f04d96165100aee22b8836cf950d.tar.gz
Merge of Percona XtraDB into MariaDB.
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in49
1 files changed, 27 insertions, 22 deletions
diff --git a/configure.in b/configure.in
index a46d25b1d12..57c32fbca64 100644
--- a/configure.in
+++ b/configure.in
@@ -1729,6 +1729,30 @@ then
fi
fi
+AC_CACHE_CHECK([whether the compiler provides atomic builtins],
+ [mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
+ int main()
+ {
+ int foo= -10; int bar= 10;
+ if (!__sync_fetch_and_add(&foo, bar) || foo)
+ return -1;
+ bar= __sync_lock_test_and_set(&foo, bar);
+ if (bar || foo != 10)
+ return -1;
+ bar= __sync_val_compare_and_swap(&bar, foo, 15);
+ if (bar)
+ return -1;
+ return 0;
+ }
+], [mysql_cv_gcc_atomic_builtins=yes],
+ [mysql_cv_gcc_atomic_builtins=no],
+ [mysql_cv_gcc_atomic_builtins=no])])
+
+if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
+ AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
+ [Define to 1 if compiler provides atomic builtins.])
+fi
+
AC_ARG_WITH([atomic-ops],
AC_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
[Implement atomic operations using pthread rwlocks or atomic CPU
@@ -1742,28 +1766,9 @@ case "$with_atomic_ops" in
[Use pthread rwlocks for atomic ops]) ;;
"smp") ;;
"")
- AC_CACHE_CHECK([whether the compiler provides atomic builtins],
- [mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
- int main()
- {
- int foo= -10; int bar= 10;
- if (!__sync_fetch_and_add(&foo, bar) || foo)
- return -1;
- bar= __sync_lock_test_and_set(&foo, bar);
- if (bar || foo != 10)
- return -1;
- bar= __sync_val_compare_and_swap(&bar, foo, 15);
- if (bar)
- return -1;
- return 0;
- }
- ], [mysql_cv_gcc_atomic_builtins=yes_but_disabled],
- [mysql_cv_gcc_atomic_builtins=no],
- [mysql_cv_gcc_atomic_builtins=no])])
-
- if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
- AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
- [Define to 1 if compiler provides atomic builtins.])
+ if test "x$mysql_cv_gcc_atomic_builtins" = xyes_but_disabled; then
+ AC_DEFINE([MY_ATOMIC_MODE_GCC_BUILTINS], [1],
+ [Use GCC atomic builtins for atomic ops])
fi
;;
*) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for --with-atomic-ops]) ;;