]> git.proxmox.com Git - mirror_zfs.git/blobdiff - configure
Support custom build directories
[mirror_zfs.git] / configure
index 8792553fec7a6768691f432ea29ec52f57ba2546..5784ec75c0fa63b2cd84f4905ff8e752eee26ae2 100755 (executable)
--- a/configure
+++ b/configure
@@ -799,6 +799,23 @@ LINUX_VERSION
 LINUX_OBJ
 LINUX
 SPL_CONFIG
+DEFAULT_PACKAGE
+VENDOR
+ALIEN_VERSION
+ALIEN
+HAVE_ALIEN
+DPKGBUILD_VERSION
+DPKGBUILD
+HAVE_DPKGBUILD
+DPKG_VERSION
+DPKG
+HAVE_DPKG
+RPMBUILD_VERSION
+RPMBUILD
+HAVE_RPMBUILD
+RPM_VERSION
+RPM
+HAVE_RPM
 LICENSE
 CPP
 OTOOL64
@@ -4760,13 +4777,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:4763: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:4780: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4766: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:4783: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4769: output\"" >&5)
+  (eval echo "\"\$as_me:4786: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5972,7 +5989,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5975 "configure"' > conftest.$ac_ext
+  echo '#line 5992 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7825,11 +7842,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7828: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7845: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7832: \$? = $ac_status" >&5
+   echo "$as_me:7849: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8164,11 +8181,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8167: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8184: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8171: \$? = $ac_status" >&5
+   echo "$as_me:8188: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8269,11 +8286,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8272: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8289: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8276: \$? = $ac_status" >&5
+   echo "$as_me:8293: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8324,11 +8341,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8327: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8344: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8331: \$? = $ac_status" >&5
+   echo "$as_me:8348: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11127,7 +11144,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11130 "configure"
+#line 11147 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11223,7 +11240,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11226 "configure"
+#line 11243 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11461,6 +11478,170 @@ $as_echo "$LICENSE" >&6; }
 
 
 
+
+       RPM=rpm
+       RPMBUILD=rpmbuild
+
+       { $as_echo "$as_me:$LINENO: checking whether $RPM is available" >&5
+$as_echo_n "checking whether $RPM is available... " >&6; }
+       if tmp=$($RPM --version 2>/dev/null); then
+
+               RPM_VERSION=$(echo $tmp | $AWK '/RPM/ { print $3 }')
+               HAVE_RPM=yes
+               { $as_echo "$as_me:$LINENO: result: $HAVE_RPM ($RPM_VERSION)" >&5
+$as_echo "$HAVE_RPM ($RPM_VERSION)" >&6; }
+
+else
+
+               HAVE_RPM=no
+               { $as_echo "$as_me:$LINENO: result: $HAVE_RPM" >&5
+$as_echo "$HAVE_RPM" >&6; }
+
+fi
+
+
+       { $as_echo "$as_me:$LINENO: checking whether $RPMBUILD is available" >&5
+$as_echo_n "checking whether $RPMBUILD is available... " >&6; }
+       if tmp=$($RPMBUILD --version 2>/dev/null); then
+
+               RPMBUILD_VERSION=$(echo $tmp | $AWK '/RPM/ { print $3 }')
+               HAVE_RPMBUILD=yes
+               { $as_echo "$as_me:$LINENO: result: $HAVE_RPMBUILD ($RPMBUILD_VERSION)" >&5
+$as_echo "$HAVE_RPMBUILD ($RPMBUILD_VERSION)" >&6; }
+
+else
+
+               HAVE_RPMBUILD=no
+               { $as_echo "$as_me:$LINENO: result: $HAVE_RPMBUILD" >&5
+$as_echo "$HAVE_RPMBUILD" >&6; }
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+       DPKG=dpkg
+       DPKGBUILD=dpkg-buildpackage
+
+       { $as_echo "$as_me:$LINENO: checking whether $DPKG is available" >&5
+$as_echo_n "checking whether $DPKG is available... " >&6; }
+       if tmp=$($DPKG --version 2>/dev/null); then
+
+               DPKG_VERSION=$(echo $tmp | $AWK '/Debian/ { print $7 }')
+               HAVE_DPKG=yes
+               { $as_echo "$as_me:$LINENO: result: $HAVE_DPKG ($DPKG_VERSION)" >&5
+$as_echo "$HAVE_DPKG ($DPKG_VERSION)" >&6; }
+
+else
+
+               HAVE_DPKG=no
+               { $as_echo "$as_me:$LINENO: result: $HAVE_DPKG" >&5
+$as_echo "$HAVE_DPKG" >&6; }
+
+fi
+
+
+       { $as_echo "$as_me:$LINENO: checking whether $DPKGBUILD is available" >&5
+$as_echo_n "checking whether $DPKGBUILD is available... " >&6; }
+       if tmp=$($DPKGBUILD --version 2>/dev/null); then
+
+               DPKGBUILD_VERSION=$(echo $tmp | \
+                   $AWK '/Debian/ { print $4 }' | cut -f-4 -d'.')
+               HAVE_DPKGBUILD=yes
+               { $as_echo "$as_me:$LINENO: result: $HAVE_DPKGBUILD ($DPKGBUILD_VERSION)" >&5
+$as_echo "$HAVE_DPKGBUILD ($DPKGBUILD_VERSION)" >&6; }
+
+else
+
+               HAVE_DPKGBUILD=no
+               { $as_echo "$as_me:$LINENO: result: $HAVE_DPKGBUILD" >&5
+$as_echo "$HAVE_DPKGBUILD" >&6; }
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+       ALIEN=alien
+
+       { $as_echo "$as_me:$LINENO: checking whether $ALIEN is available" >&5
+$as_echo_n "checking whether $ALIEN is available... " >&6; }
+       if tmp=$($ALIEN --version 2>/dev/null); then
+
+               ALIEN_VERSION=$(echo $tmp | $AWK '{ print $3 }')
+               HAVE_ALIEN=yes
+               { $as_echo "$as_me:$LINENO: result: $HAVE_ALIEN ($ALIEN_VERSION)" >&5
+$as_echo "$HAVE_ALIEN ($ALIEN_VERSION)" >&6; }
+
+else
+
+               HAVE_ALIEN=no
+               { $as_echo "$as_me:$LINENO: result: $HAVE_ALIEN" >&5
+$as_echo "$HAVE_ALIEN" >&6; }
+
+fi
+
+
+
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking linux distribution" >&5
+$as_echo_n "checking linux distribution... " >&6; }
+       if test -f /etc/redhat-release ; then
+               VENDOR=redhat ;
+       elif test -f /etc/fedora-release ; then
+               VENDOR=fedora ;
+       elif test -f /etc/lsb-release ; then
+               VENDOR=ubuntu ;
+       elif test -f /etc/debian_version ; then
+               VENDOR=debian ;
+       elif test -f /etc/SuSE-release ; then
+               VENDOR=sles ;
+       elif test -f /etc/slackware-version ; then
+               VENDOR=slackware ;
+       elif test -f /etc/gentoo-release ; then
+               VENDOR=gentoo ;
+       else
+               VENDOR= ;
+       fi
+       { $as_echo "$as_me:$LINENO: result: $VENDOR" >&5
+$as_echo "$VENDOR" >&6; }
+
+
+       { $as_echo "$as_me:$LINENO: checking default package type" >&5
+$as_echo_n "checking default package type... " >&6; }
+       case "$VENDOR" in
+               fedora)     DEFAULT_PACKAGE=rpm ;;
+               redhat)     DEFAULT_PACKAGE=rpm ;;
+               sles)       DEFAULT_PACKAGE=rpm ;;
+               ubuntu)     DEFAULT_PACKAGE=deb ;;
+               debian)     DEFAULT_PACKAGE=deb ;;
+               slackware)  DEFAULT_PACKAGE=tgz ;;
+               *)          DEFAULT_PACKAGE=rpm ;;
+       esac
+
+       { $as_echo "$as_me:$LINENO: result: $DEFAULT_PACKAGE" >&5
+$as_echo "$DEFAULT_PACKAGE" >&6; }
+
+
+
+
         SPL_CONFIG=all
 
 # Check whether --with-config was given.
@@ -11607,16 +11788,12 @@ $as_echo "$LINUX_SYMBOLS" >&6; }
 
 
 
-                       abs_srcdir=`readlink -f ${srcdir}`
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I${abs_srcdir}/include"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include ${abs_srcdir}/spl_config.h"
-
        if test "${LINUX_OBJ}" != "${LINUX}"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
 
 
 
@@ -11706,7 +11883,7 @@ fi
 
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -11820,7 +11997,7 @@ $as_echo "$have_atomic64_t" >&6; }
 $as_echo_n "checking whether kernel defines atomic64_cmpxchg... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -11829,6 +12006,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
                #include <asm/atomic.h>
+               #include <asm/system.h>
 
 int
 main (void)
@@ -11884,7 +12062,7 @@ fi
 $as_echo_n "checking whether kernel defines atomic64_xchg... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -11948,7 +12126,7 @@ fi
 $as_echo_n "checking whether kernel defines uintptr_t... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12012,7 +12190,7 @@ fi
 $as_echo_n "checking whether INIT_WORK wants 3 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12077,7 +12255,7 @@ fi
 $as_echo_n "checking whether register_sysctl_table() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12142,7 +12320,7 @@ fi
 $as_echo_n "checking whether set_shrinker() available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12206,7 +12384,7 @@ fi
 $as_echo_n "checking whether struct path used in struct nameidata... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12314,7 +12492,7 @@ _ACEOF
 $as_echo_n "checking whether unnumbered sysctl support exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12381,7 +12559,7 @@ fi
 $as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12446,7 +12624,7 @@ fi
 $as_echo_n "checking whether fls64() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12554,7 +12732,7 @@ $as_echo_n "checking whether device_create() wants 5 args... " >&6; }
        EXTRA_KCFLAGS="-Werror"
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12702,7 +12880,7 @@ _ACEOF
 $as_echo_n "checking whether set_normalized_timespec() is an inline... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12767,7 +12945,7 @@ fi
 $as_echo_n "checking whether timespec_sub() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12833,7 +13011,7 @@ fi
 $as_echo_n "checking whether init_utsname() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12898,7 +13076,7 @@ fi
 $as_echo_n "checking whether header linux/fdtable.h exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12966,7 +13144,7 @@ fi
 $as_echo_n "checking whether files_fdtable() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13036,7 +13214,7 @@ fi
 $as_echo_n "checking whether header linux/uaccess.h exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13104,7 +13282,7 @@ fi
 $as_echo_n "checking whether kmalloc_node() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13210,7 +13388,7 @@ _ACEOF
 $as_echo_n "checking whether struct inode has i_mutex... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13277,7 +13455,7 @@ fi
 $as_echo_n "checking whether struct mutex has owner... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13343,7 +13521,7 @@ fi
 $as_echo_n "checking whether mutex_lock_nested() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol div64_64 is exported" >&5
-$as_echo_n "checking whether symbol div64_64 is exported... " >&6; }
-       grep -q -E '[[:space:]]div64_64[[:space:]]' \
-               $LINUX_OBJ/Module*.symvers 2>/dev/null
-       rc=$?
-       if test $rc -ne 0; then
-               export=0
-               for file in ; do
-                       grep -q -E "EXPORT_SYMBOL.*(div64_64)" \
-                               "$LINUX_OBJ/$file" 2>/dev/null
-                       rc=$?
-                       if test $rc -eq 0; then
-                               export=1
-                               break;
-                       fi
-               done
-               if test $export -eq 0; then
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-               else
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_64 1
-_ACEOF
-
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_64 1
-_ACEOF
-
-       fi
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether symbol div64_u64 is exported" >&5
-$as_echo_n "checking whether symbol div64_u64 is exported... " >&6; }
-       grep -q -E '[[:space:]]div64_u64[[:space:]]' \
-               $LINUX_OBJ/Module*.symvers 2>/dev/null
-       rc=$?
-       if test $rc -ne 0; then
-               export=0
-               for file in ; do
-                       grep -q -E "EXPORT_SYMBOL.*(div64_u64)" \
-                               "$LINUX_OBJ/$file" 2>/dev/null
-                       rc=$?
-                       if test $rc -eq 0; then
-                               export=1
-                               break;
-                       fi
-               done
-               if test $export -eq 0; then
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-               else
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_U64 1
-_ACEOF
-
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_U64 1
-_ACEOF
-
-       fi
-
-
-
        { $as_echo "$as_me:$LINENO: checking whether on_each_cpu() wants 3 args" >&5
 $as_echo_n "checking whether on_each_cpu() wants 3 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13821,7 +13917,7 @@ _ACEOF
 $as_echo_n "checking whether global_page_state() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13887,7 +13983,7 @@ fi
 $as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13953,7 +14049,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14018,7 +14114,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE_ANON is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14083,7 +14179,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14149,7 +14245,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14214,7 +14310,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14279,7 +14375,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14345,7 +14441,7 @@ fi
 $as_echo_n "checking whether symbol get_zone_counts is needed... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14544,7 +14640,7 @@ _ACEOF
 $as_echo_n "checking whether set_fs_pwd() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14609,7 +14705,7 @@ fi
 $as_echo_n "checking whether vfs_unlink() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14673,7 +14769,7 @@ fi
 $as_echo_n "checking whether vfs_rename() wants 4 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14738,7 +14834,7 @@ fi
 $as_echo_n "checking whether struct cred exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14886,7 +14982,7 @@ _ACEOF
 $as_echo_n "checking whether proc_handler() wants 5 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -14987,9 +15083,116 @@ _ACEOF
        fi
 
 
+
+       { $as_echo "$as_me:$LINENO: checking whether file_fsync() wants 3 args" >&5
+$as_echo_n "checking whether file_fsync() wants 3 args... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/buffer_head.h>
+
+int
+main (void)
+{
+
+               file_fsync(NULL, NULL, 0);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build
+       echo "obj-m := conftest.o" >build/Makefile
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_3ARGS_FILE_FSYNC 1
+_ACEOF
+
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol rwsem_is_locked is exported" >&5
+$as_echo_n "checking whether symbol rwsem_is_locked is exported... " >&6; }
+       grep -q -E '[[:space:]]rwsem_is_locked[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in lib/rwsem-spinlock.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(rwsem_is_locked)" \
+                               "$LINUX_OBJ/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
+_ACEOF
+
+       fi
+
+
  ;;
                 user)
-                               if test "x$AWK" != xgawk; then
+
+       if test "x$AWK" != xgawk; then
 
                 { { $as_echo "$as_me:$LINENO: error:
        *** Required util gawk missing.  Please install the required
@@ -15001,6 +15204,7 @@ $as_echo "$as_me: error:
 
 fi
 
+
    ;;
                 all)
 
@@ -15133,16 +15337,12 @@ $as_echo "$LINUX_SYMBOLS" >&6; }
 
 
 
-                       abs_srcdir=`readlink -f ${srcdir}`
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I${abs_srcdir}/include"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include ${abs_srcdir}/spl_config.h"
-
        if test "${LINUX_OBJ}" != "${LINUX}"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
 
 
 
@@ -15232,7 +15432,7 @@ fi
 
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15346,7 +15546,7 @@ $as_echo "$have_atomic64_t" >&6; }
 $as_echo_n "checking whether kernel defines atomic64_cmpxchg... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15355,6 +15555,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
                #include <asm/atomic.h>
+               #include <asm/system.h>
 
 int
 main (void)
@@ -15410,7 +15611,7 @@ fi
 $as_echo_n "checking whether kernel defines atomic64_xchg... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15474,7 +15675,7 @@ fi
 $as_echo_n "checking whether kernel defines uintptr_t... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15538,7 +15739,7 @@ fi
 $as_echo_n "checking whether INIT_WORK wants 3 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15603,7 +15804,7 @@ fi
 $as_echo_n "checking whether register_sysctl_table() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15668,7 +15869,7 @@ fi
 $as_echo_n "checking whether set_shrinker() available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15732,7 +15933,7 @@ fi
 $as_echo_n "checking whether struct path used in struct nameidata... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15840,7 +16041,7 @@ _ACEOF
 $as_echo_n "checking whether unnumbered sysctl support exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15907,7 +16108,7 @@ fi
 $as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -15972,7 +16173,7 @@ fi
 $as_echo_n "checking whether fls64() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16080,7 +16281,7 @@ $as_echo_n "checking whether device_create() wants 5 args... " >&6; }
        EXTRA_KCFLAGS="-Werror"
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16228,7 +16429,7 @@ _ACEOF
 $as_echo_n "checking whether set_normalized_timespec() is an inline... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16293,7 +16494,7 @@ fi
 $as_echo_n "checking whether timespec_sub() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16359,7 +16560,7 @@ fi
 $as_echo_n "checking whether init_utsname() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16424,7 +16625,7 @@ fi
 $as_echo_n "checking whether header linux/fdtable.h exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16492,7 +16693,7 @@ fi
 $as_echo_n "checking whether files_fdtable() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16562,7 +16763,7 @@ fi
 $as_echo_n "checking whether header linux/uaccess.h exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16630,7 +16831,7 @@ fi
 $as_echo_n "checking whether kmalloc_node() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16736,7 +16937,7 @@ _ACEOF
 $as_echo_n "checking whether struct inode has i_mutex... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16803,7 +17004,7 @@ fi
 $as_echo_n "checking whether struct mutex has owner... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -16869,7 +17070,7 @@ fi
 $as_echo_n "checking whether mutex_lock_nested() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol div64_64 is exported" >&5
-$as_echo_n "checking whether symbol div64_64 is exported... " >&6; }
-       grep -q -E '[[:space:]]div64_64[[:space:]]' \
-               $LINUX_OBJ/Module*.symvers 2>/dev/null
-       rc=$?
-       if test $rc -ne 0; then
-               export=0
-               for file in ; do
-                       grep -q -E "EXPORT_SYMBOL.*(div64_64)" \
-                               "$LINUX_OBJ/$file" 2>/dev/null
-                       rc=$?
-                       if test $rc -eq 0; then
-                               export=1
-                               break;
-                       fi
-               done
-               if test $export -eq 0; then
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-               else
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_64 1
-_ACEOF
-
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_64 1
-_ACEOF
-
-       fi
-
-
-
-       { $as_echo "$as_me:$LINENO: checking whether symbol div64_u64 is exported" >&5
-$as_echo_n "checking whether symbol div64_u64 is exported... " >&6; }
-       grep -q -E '[[:space:]]div64_u64[[:space:]]' \
-               $LINUX_OBJ/Module*.symvers 2>/dev/null
-       rc=$?
-       if test $rc -ne 0; then
-               export=0
-               for file in ; do
-                       grep -q -E "EXPORT_SYMBOL.*(div64_u64)" \
-                               "$LINUX_OBJ/$file" 2>/dev/null
-                       rc=$?
-                       if test $rc -eq 0; then
-                               export=1
-                               break;
-                       fi
-               done
-               if test $export -eq 0; then
-                       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-               else
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_U64 1
-_ACEOF
-
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DIV64_U64 1
-_ACEOF
-
-       fi
-
-
-
        { $as_echo "$as_me:$LINENO: checking whether on_each_cpu() wants 3 args" >&5
 $as_echo_n "checking whether on_each_cpu() wants 3 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17347,7 +17466,7 @@ _ACEOF
 $as_echo_n "checking whether global_page_state() is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17413,7 +17532,7 @@ fi
 $as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17479,7 +17598,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17544,7 +17663,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE_ANON is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17609,7 +17728,7 @@ fi
 $as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17675,7 +17794,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17740,7 +17859,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17805,7 +17924,7 @@ fi
 $as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -17871,7 +17990,7 @@ fi
 $as_echo_n "checking whether symbol get_zone_counts is needed... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18070,7 +18189,7 @@ _ACEOF
 $as_echo_n "checking whether set_fs_pwd() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18135,7 +18254,7 @@ fi
 $as_echo_n "checking whether vfs_unlink() wants 2 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18199,7 +18318,7 @@ fi
 $as_echo_n "checking whether vfs_rename() wants 4 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18264,7 +18383,7 @@ fi
 $as_echo_n "checking whether struct cred exists... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18412,7 +18531,7 @@ _ACEOF
 $as_echo_n "checking whether proc_handler() wants 5 args... " >&6; }
 
 
-cat >conftest.c <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.c
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -18514,8 +18633,115 @@ _ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether file_fsync() wants 3 args" >&5
+$as_echo_n "checking whether file_fsync() wants 3 args... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/buffer_head.h>
+
+int
+main (void)
+{
+
+               file_fsync(NULL, NULL, 0);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build
+       echo "obj-m := conftest.o" >build/Makefile
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_3ARGS_FILE_FSYNC 1
+_ACEOF
+
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol rwsem_is_locked is exported" >&5
+$as_echo_n "checking whether symbol rwsem_is_locked is exported... " >&6; }
+       grep -q -E '[[:space:]]rwsem_is_locked[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in lib/rwsem-spinlock.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(rwsem_is_locked)" \
+                               "$LINUX_OBJ/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
+_ACEOF
+
+       fi
+
+
+
+
 
-                               if test "x$AWK" != xgawk; then
+       if test "x$AWK" != xgawk; then
 
                 { { $as_echo "$as_me:$LINENO: error:
        *** Required util gawk missing.  Please install the required
@@ -18527,6 +18753,7 @@ $as_echo "$as_me: error:
 
 fi
 
+
    ;;
                srpm)                        ;;
                 *)
@@ -20134,7 +20361,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
   case $ac_file$ac_mode in
     "spl_config.h":H)
        (mv spl_config.h spl_config.h.tmp &&
-       awk -f config/config.awk spl_config.h.tmp >spl_config.h &&
+       awk -f ${ac_srcdir}/config/config.awk spl_config.h.tmp >spl_config.h &&
        rm spl_config.h.tmp) || exit 1 ;;
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
   # Autoconf 2.62 quotes --file arguments for eval, but not when files