From 5ec44a37c3857b178a958352d63c5367133526e1 Mon Sep 17 00:00:00 2001 From: Ned Bass Date: Fri, 6 Aug 2010 14:04:00 -0700 Subject: [PATCH] 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 --- config/spl-build.m4 | 1 + configure | 2 ++ 2 files changed, 3 insertions(+) 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) -- 2.40.0