Module: xenomai-forge
Branch: master
Commit: 7daf709479cc3ec1abac9965917d0c5532e57bf1
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=7daf709479cc3ec1abac9965917d0c5532e57bf1

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sun Nov 20 18:42:50 2011 +0100

build: require compiler support for atomic builtins

---

 configure    |   34 ++++++++++++++++++++++++++++++++++
 configure.in |   13 +++++++++++++
 2 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/configure b/configure
index 627ee29..98f0209 100755
--- a/configure
+++ b/configure
@@ -12753,6 +12753,40 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
 $as_echo "done" >&6; }
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler 
provides atomic builtins" >&5
+$as_echo_n "checking whether the compiler provides atomic builtins... " >&6; }
+if test "${ac_cv_atomic_builtins+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int atomic_sub(int i) { return __sync_sub_and_fetch(&i, 1); }
+int atomic_add(int i) { return __sync_add_and_fetch(&i, 1); }
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_atomic_builtins="yes"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_atomic_builtins" >&5
+$as_echo "$ac_cv_atomic_builtins" >&6; }
+if test "$ac_cv_atomic_builtins" != "yes"; then
+   as_fn_error $? "compiler does not support atomic builtins." "$LINENO" 5
+fi
+
 XENO_USER_CFLAGS="-D_GNU_SOURCE -D_REENTRANT -Wall -pipe -Wstrict-prototypes 
-Wmissing-prototypes -Wno-long-long -Wno-unused-parameter -Werror"
 XENO_USER_LDFLAGS=
 
diff --git a/configure.in b/configure.in
index f1524cb..d67c14c 100644
--- a/configure.in
+++ b/configure.in
@@ -510,6 +510,19 @@ else
 fi
 AC_MSG_RESULT([done])
 
+dnl Check for atomic builtins. For now we only check for the legacy
+dnl interface, i.e. __sync_*.
+
+AC_CACHE_CHECK([whether the compiler provides atomic builtins], 
ac_cv_atomic_builtins, [
+AC_TRY_LINK([
+int atomic_sub(int i) { return __sync_sub_and_fetch(&i, 1); }
+int atomic_add(int i) { return __sync_add_and_fetch(&i, 1); }
+], [], ac_cv_atomic_builtins="yes")
+])
+if test "$ac_cv_atomic_builtins" != "yes"; then
+   AC_MSG_ERROR([compiler does not support atomic builtins.])
+fi
+
 dnl Common CFLAGS and LDFLAGS
 XENO_USER_CFLAGS="-D_GNU_SOURCE -D_REENTRANT -Wall -pipe -Wstrict-prototypes 
-Wmissing-prototypes -Wno-long-long -Wno-unused-parameter -Werror"
 XENO_USER_LDFLAGS=


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to