From 97fd6a07c2c2fd1d27fc79938eb1a451c92fbfc4 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 19 Sep 2011 13:35:03 -0700 Subject: [PATCH] Fix HAVE_FS_STRUCT_SPINLOCK check for gcc-4.1.2 Older versions of gcc (gcc-4.1.2) will treat an 'incompatible pointer type' as a warning instead of an error. This results in HAVE_FS_STRUCT_SPINLOCK being defined incorrectly. This failure mode was observed when using a RHEL6 2.6.32 based kernel under RHEL5.5 which contains the old version of gcc. To resolve the issue the warning is explicitly promoted to an error. Signed-off-by: Brian Behlendorf --- config/spl-build.m4 | 3 +++ configure | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/config/spl-build.m4 b/config/spl-build.m4 index f4652bc..c046db8 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -1598,6 +1598,8 @@ dnl # a spinlock_t to improve the fastpath performance. dnl # AC_DEFUN([SPL_AC_FS_STRUCT_SPINLOCK], [ AC_MSG_CHECKING([whether struct fs_struct uses spinlock_t]) + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" SPL_LINUX_TRY_COMPILE([ #include #include @@ -1611,6 +1613,7 @@ AC_DEFUN([SPL_AC_FS_STRUCT_SPINLOCK], [ ],[ AC_MSG_RESULT(no) ]) + EXTRA_KCFLAGS="$tmp_flags" ]) dnl # diff --git a/configure b/configure index 72bef74..1369ca0 100755 --- a/configure +++ b/configure @@ -15069,6 +15069,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether struct fs_struct uses spinlock_t" >&5 $as_echo_n "checking whether struct fs_struct uses spinlock_t... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -15132,6 +15134,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5 @@ -19267,6 +19270,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether struct fs_struct uses spinlock_t" >&5 $as_echo_n "checking whether struct fs_struct uses spinlock_t... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -19330,6 +19335,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5 -- 2.39.2