configure: fixup clang stupidity
[fio.git] / configure
index e5cf34d68a87fbb4c18e8d5c218e5766679eae2c..a3f83d34c415e867b2a4b55dc91700d2a1a1db0e 100755 (executable)
--- a/configure
+++ b/configure
@@ -271,7 +271,6 @@ CYGWIN*)
   output_sym "CONFIG_TCP_NODELAY"
   output_sym "CONFIG_TLS_THREAD"
   output_sym "CONFIG_IPV6"
-  output_sym "CONFIG_SFA"
   echo "CC=$CC" >> $config_host_mak
   echo "BUILD_CFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> $config_host_mak
   exit 0
@@ -548,7 +547,7 @@ fi
 echo "Solaris AIO support           $solaris_aio"
 
 ##########################################
-# __sync_fetch_and_and test
+# __sync_fetch_and_add test
 sfaa="no"
 cat > $TMPC << EOF
 static int sfaa(int *ptr)
@@ -1494,23 +1493,36 @@ fi
 echo "getmntinfo                    $getmntinfo"
 
 ##########################################
-# Check whether we have __sync_fetch_and_add()
-sfa=="no"
+# Check whether we have _Static_assert
+static_assert="no"
 cat > $TMPC << EOF
-#include <stdio.h>
+#include <assert.h>
 #include <stdlib.h>
-#include <inttypes.h>
+#undef offsetof
+#ifdef __compiler_offsetof
+#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
+#else
+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
+#define container_of(ptr, type, member) ({                     \
+       const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+       (type *)( (char *)__mptr - offsetof(type,member) );})
+
+struct foo {
+  int a, b;
+};
+
 int main(int argc, char **argv)
 {
-  uint64_t dst = 1, src = 3;
-  __sync_fetch_and_add(&dst, src);
+  _Static_assert(offsetof(struct foo, a) == 0 , "Check");
+  return 0 ;
 }
 EOF
-if compile_prog "" "" "__sync_fetch_and_add"; then
-  sfa="yes"
+if compile_prog "" "" "static_assert"; then
+    static_assert="yes"
 fi
-echo "__sync_fetch_and_add          $sfa"
-
+echo "Static Assert                 $static_assert"
 #############################################################################
 
 if test "$wordsize" = "64" ; then
@@ -1690,8 +1702,8 @@ fi
 if test "$getmntinfo" = "yes" ; then
   output_sym "CONFIG_GETMNTINFO"
 fi
-if test "$sfa" = "yes" ; then
-  output_sym "CONFIG_SFA"
+if test "$static_assert" = "yes" ; then
+  output_sym "CONFIG_STATIC_ASSERT"
 fi
 
 if test "$zlib" = "no" ; then