From: Ned Bass Date: Fri, 6 Aug 2010 21:04:00 +0000 (-0700) Subject: Correctly detect atomic64_cmpxchg support X-Git-Tag: zfs-0.8.0-rc1~152^2~543 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5ec44a37c3857b178a958352d63c5367133526e1;p=zfs Correctly detect atomic64_cmpxchg support The RHEL5 2.6.18-194.7.1.el5 kernel added atomic64_cmpxchg to asm-x86_64/atomic.h. That macro is defined in terms of cmpxchg which is provided by asm/system.h. However, asm/system.h is not #included by atomic.h in this kernel nor by the autoconf test for atomic64_cmpxchg, so the test failed with "implicit declaration of function 'cmpxchg'". This leads the build system to erroneously conclude that the kernel does not define atomic64_cmpxchg and enable the built-in definition. This in turn produces a '"atomic64_cmpxchg" redefined' build warning which is fatal when building with --enable-debug. This commit fixes this by including asm/system.h in the autoconf test. Signed-off-by: Brian Behlendorf --- diff --git a/config/spl-build.m4 b/config/spl-build.m4 index a11d8866d..facaf7404 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -639,6 +639,7 @@ AC_DEFUN([SPL_AC_TYPE_ATOMIC64_CMPXCHG], [AC_MSG_CHECKING([whether kernel defines atomic64_cmpxchg]) SPL_LINUX_TRY_COMPILE([ #include + #include ],[ atomic64_cmpxchg((atomic64_t *)NULL, 0, 0); ],[ diff --git a/configure b/configure index 4a24a41f5..bcef31e47 100755 --- a/configure +++ b/configure @@ -11988,6 +11988,7 @@ cat >>conftest.$ac_ext <<_ACEOF #include + #include int main (void) @@ -15499,6 +15500,7 @@ cat >>conftest.$ac_ext <<_ACEOF #include + #include int main (void)