]> git.proxmox.com Git - mirror_spl-debian.git/blobdiff - configure
Fix gcc configure warnings
[mirror_spl-debian.git] / configure
index 04da5953a149b873412f056ff1779936756ac4ed..6a322ce4edecb97162a30650a6624ad0c0eb4cc7 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
@@ -4149,8 +4166,8 @@ esac
 
 
 
-macro_version='2.2.6'
-macro_revision='1.3012'
+macro_version='2.2.6b'
+macro_revision='1.3017'
 
 
 
@@ -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.
        { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5
 $as_echo_n "checking kernel source directory... " >&6; }
        if test -z "$kernelsrc"; then
-               headersdir="/lib/modules/$(uname -r)/build"
-               if test -e "$headersdir"; then
+               if test -e "/lib/modules/$(uname -r)/source"; then
+                       headersdir="/lib/modules/$(uname -r)/source"
+                       sourcelink=$(readlink -f "$headersdir")
+               elif test -e "/lib/modules/$(uname -r)/build"; then
+                       headersdir="/lib/modules/$(uname -r)/build"
                        sourcelink=$(readlink -f "$headersdir")
                else
                        sourcelink=$(ls -1d /usr/src/kernels/* \
@@ -11530,7 +11714,9 @@ $as_echo "$kernelsrc" >&6; }
        { $as_echo "$as_me:$LINENO: checking kernel build directory" >&5
 $as_echo_n "checking kernel build directory... " >&6; }
        if test -z "$kernelbuild"; then
-               if test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
+               if test -e "/lib/modules/$(uname -r)/build"; then
+                       kernelbuild=`readlink -f /lib/modules/$(uname -r)/build`
+               elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
                        kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu}
                elif test -d ${kernelsrc}-obj/${target_cpu}/default; then
                        kernelbuild=${kernelsrc}-obj/${target_cpu}/default
@@ -11598,6 +11784,20 @@ $as_echo_n "checking kernel file name for module symbols... " >&6; }
                else
                        LINUX_SYMBOLS=Module.symvers
                fi
+
+               if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then
+                       { { $as_echo "$as_me:$LINENO: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If your building with a custom kernel make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&5
+$as_echo "$as_me: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If your building with a custom kernel make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
        else
                LINUX_SYMBOLS=NONE
        fi
@@ -11607,16 +11807,85 @@ $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"
+       { $as_echo "$as_me:$LINENO: checking whether Linux was built with CONFIG_PREEMPT" >&5
+$as_echo_n "checking whether Linux was built with CONFIG_PREEMPT... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #ifndef AUTOCONF_INCLUDED
+               #include <linux/config.h>
+               #endif
+
+int
+main (void)
+{
+
+               #ifndef CONFIG_PREEMPT
+               #error CONFIG_PREEMPT not #defined
+               #endif
+
+  ;
+  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; }
+               { { $as_echo "$as_me:$LINENO: error:
+               *** Kernel built with CONFIG_PREEMPT which is not supported.
+               ** You must rebuild your kernel without this option." >&5
+$as_echo "$as_me: error:
+               *** Kernel built with CONFIG_PREEMPT which is not supported.
+               ** You must rebuild your kernel without this option." >&2;}
+   { (exit 1); exit 1; }; }
+
+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
+
+
+
+
 
        if test "${LINUX_OBJ}" != "${LINUX}"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes"
 
 
 
@@ -11720,7 +11989,7 @@ int
 main (void)
 {
 
-               atomic64_t *ptr;
+               atomic64_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -11829,6 +12098,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
                #include <asm/atomic.h>
+               #include <asm/system.h>
 
 int
 main (void)
@@ -11962,7 +12232,7 @@ int
 main (void)
 {
 
-               uintptr_t *ptr;
+               uintptr_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -12026,7 +12296,7 @@ int
 main (void)
 {
 
-               struct work_struct work;
+               struct work_struct work __attribute__ ((unused));
                INIT_WORK(&work, NULL, NULL);
 
   ;
@@ -12091,7 +12361,7 @@ int
 main (void)
 {
 
-               return register_sysctl_table(NULL,0);
+               (void) register_sysctl_table(NULL, 0);
 
   ;
   return 0;
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether shrinker callback wants 3 args" >&5
+$as_echo_n "checking whether shrinker callback wants 3 args... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+
+
+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/mm.h>
+
+               int shrinker_cb(struct shrinker *, int, unsigned int);
+
+int
+main (void)
+{
+
+               struct shrinker cache_shrinker = {
+                       .shrink = shrinker_cb,
+                       .seeks = DEFAULT_SEEKS,
+               };
+               register_shrinker(&cache_shrinker);
+
+  ;
+  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_SHRINKER_CALLBACK 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
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
        { $as_echo "$as_me:$LINENO: checking whether struct path used in struct nameidata" >&5
 $as_echo_n "checking whether struct path used in struct nameidata... " >&6; }
 
@@ -12220,7 +12563,7 @@ int
 main (void)
 {
 
-               struct nameidata nd;
+               struct nameidata nd __attribute__ ((unused));
 
                nd.path.mnt = NULL;
                nd.path.dentry = NULL;
@@ -12395,7 +12738,7 @@ int
 main (void)
 {
 
-               struct ctl_table ctl;
+               struct ctl_table ctl __attribute__ ((unused));
                ctl.ctl_name = 0;
 
   ;
@@ -12781,7 +13124,9 @@ int
 main (void)
 {
 
-               struct timespec a, b, c = { 0 };
+               struct timespec a = { 0 };
+               struct timespec b = { 0 };
+               struct timespec c __attribute__ ((unused));
                c = timespec_sub(a, b);
 
   ;
@@ -12847,7 +13192,8 @@ int
 main (void)
 {
 
-               struct new_utsname *a = init_utsname();
+               struct new_utsname *a __attribute__ ((unused));
+               a = init_utsname();
 
   ;
   return 0;
@@ -12985,7 +13331,8 @@ main (void)
 {
 
                struct files_struct *files = current->files;
-               struct fdtable *fdt = files_fdtable(files);
+               struct fdtable *fdt __attribute__ ((unused));
+               fdt = files_fdtable(files);
 
   ;
   return 0;
@@ -13118,7 +13465,8 @@ int
 main (void)
 {
 
-               void *a = kmalloc_node(1, GFP_KERNEL, 0);
+               void *a __attribute__ ((unused));
+               a = kmalloc_node(1, GFP_KERNEL, 0);
 
   ;
   return 0;
@@ -13291,7 +13639,7 @@ int
 main (void)
 {
 
-               struct mutex mtx;
+               struct mutex mtx __attribute__ ((unused));
                mtx.owner = NULL;
 
   ;
@@ -13753,7 +14101,7 @@ int
 main (void)
 {
 
-               unsigned long state;
+               unsigned long state __attribute__ ((unused));
                state = global_page_state(0);
 
   ;
@@ -13819,7 +14167,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_FREE_PAGES;
 
   ;
@@ -13885,7 +14233,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE;
 
   ;
@@ -13950,7 +14298,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE_ANON;
 
   ;
@@ -14015,7 +14363,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE_FILE;
 
   ;
@@ -14081,7 +14429,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE;
 
   ;
@@ -14146,7 +14494,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE_ANON;
 
   ;
@@ -14211,7 +14559,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE_FILE;
 
   ;
@@ -14652,8 +15000,8 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5
-$as_echo_n "checking whether struct cred exists... " >&6; }
+       { $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; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -14664,14 +15012,15 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/cred.h>
+               #include <linux/sched.h>
+               #include <linux/fs_struct.h>
 
 int
 main (void)
 {
 
-               struct cred *cr;
-               cr  = NULL;
+               struct fs_struct fs;
+               spin_lock_init(&fs.lock);
 
   ;
   return 0;
@@ -14698,7 +15047,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_CRED_STRUCT 1
+#define HAVE_FS_STRUCT_SPINLOCK 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol groups_search is exported" >&5
-$as_echo_n "checking whether symbol groups_search is exported... " >&6; }
-       grep -q -E '[[:space:]]groups_search[[: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.*(groups_search)" \
-                               "$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; }
+       { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5
+$as_echo_n "checking whether struct cred exists... " >&6; }
 
-               else
-                       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GROUPS_SEARCH 1
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-               fi
-       else
-               { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GROUPS_SEARCH 1
-_ACEOF
+               #include <linux/cred.h>
+
+int
+main (void)
+{
+
+               struct cred *cr __attribute__ ((unused));
+               cr  = NULL;
+
+  ;
+  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_CRED_STRUCT 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 groups_search is exported" >&5
+$as_echo_n "checking whether symbol groups_search is exported... " >&6; }
+       grep -q -E '[[:space:]]groups_search[[: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.*(groups_search)" \
+                               "$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_GROUPS_SEARCH 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GROUPS_SEARCH 1
+_ACEOF
 
        fi
 
@@ -14905,9 +15320,303 @@ _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
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol invalidate_inodes is exported" >&5
+$as_echo_n "checking whether symbol invalidate_inodes is exported... " >&6; }
+       grep -q -E '[[:space:]]invalidate_inodes[[: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.*(invalidate_inodes)" \
+                               "$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_INVALIDATE_INODES 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INVALIDATE_INODES 1
+_ACEOF
+
+       fi
+
+
+       { $as_echo "$as_me:$LINENO: checking whether invalidate_inodes() wants 2 args" >&5
+$as_echo_n "checking whether invalidate_inodes() wants 2 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/fs.h>
+
+int
+main (void)
+{
+
+               return __invalidate_device(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_2ARGS_INVALIDATE_INODES 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 shrink_dcache_memory is exported" >&5
+$as_echo_n "checking whether symbol shrink_dcache_memory is exported... " >&6; }
+       grep -q -E '[[:space:]]shrink_dcache_memory[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/dcache.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(shrink_dcache_memory)" \
+                               "$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_SHRINK_DCACHE_MEMORY 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SHRINK_DCACHE_MEMORY 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol shrink_icache_memory is exported" >&5
+$as_echo_n "checking whether symbol shrink_icache_memory is exported... " >&6; }
+       grep -q -E '[[:space:]]shrink_icache_memory[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/inode.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(shrink_icache_memory)" \
+                               "$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_SHRINK_ICACHE_MEMORY 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SHRINK_ICACHE_MEMORY 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
@@ -14919,6 +15628,7 @@ $as_echo "$as_me: error:
 
 fi
 
+
    ;;
                 all)
 
        { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5
 $as_echo_n "checking kernel source directory... " >&6; }
        if test -z "$kernelsrc"; then
-               headersdir="/lib/modules/$(uname -r)/build"
-               if test -e "$headersdir"; then
+               if test -e "/lib/modules/$(uname -r)/source"; then
+                       headersdir="/lib/modules/$(uname -r)/source"
+                       sourcelink=$(readlink -f "$headersdir")
+               elif test -e "/lib/modules/$(uname -r)/build"; then
+                       headersdir="/lib/modules/$(uname -r)/build"
                        sourcelink=$(readlink -f "$headersdir")
                else
                        sourcelink=$(ls -1d /usr/src/kernels/* \
@@ -14974,7 +15687,9 @@ $as_echo "$kernelsrc" >&6; }
        { $as_echo "$as_me:$LINENO: checking kernel build directory" >&5
 $as_echo_n "checking kernel build directory... " >&6; }
        if test -z "$kernelbuild"; then
-               if test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
+               if test -e "/lib/modules/$(uname -r)/build"; then
+                       kernelbuild=`readlink -f /lib/modules/$(uname -r)/build`
+               elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
                        kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu}
                elif test -d ${kernelsrc}-obj/${target_cpu}/default; then
                        kernelbuild=${kernelsrc}-obj/${target_cpu}/default
@@ -15033,34 +15748,117 @@ $as_echo "$kernsrcver" >&6; }
 
 
 
-       modpost=$LINUX/scripts/Makefile.modpost
-       { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5
-$as_echo_n "checking kernel file name for module symbols... " >&6; }
-       if test -f "$modpost"; then
-               if grep -q Modules.symvers $modpost; then
-                       LINUX_SYMBOLS=Modules.symvers
-               else
-                       LINUX_SYMBOLS=Module.symvers
-               fi
-       else
-               LINUX_SYMBOLS=NONE
-       fi
-       { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5
-$as_echo "$LINUX_SYMBOLS" >&6; }
+       modpost=$LINUX/scripts/Makefile.modpost
+       { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5
+$as_echo_n "checking kernel file name for module symbols... " >&6; }
+       if test -f "$modpost"; then
+               if grep -q Modules.symvers $modpost; then
+                       LINUX_SYMBOLS=Modules.symvers
+               else
+                       LINUX_SYMBOLS=Module.symvers
+               fi
+
+               if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then
+                       { { $as_echo "$as_me:$LINENO: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If your building with a custom kernel make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&5
+$as_echo "$as_me: error:
+       *** Please make sure the kernel devel package for your distribution
+       *** is installed.  If your building with a custom kernel make sure the
+       *** kernel is configured, built, and the '--with-linux=PATH' configure
+       *** option refers to the location of the kernel source." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       else
+               LINUX_SYMBOLS=NONE
+       fi
+       { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5
+$as_echo "$LINUX_SYMBOLS" >&6; }
+
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether Linux was built with CONFIG_PREEMPT" >&5
+$as_echo_n "checking whether Linux was built with CONFIG_PREEMPT... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #ifndef AUTOCONF_INCLUDED
+               #include <linux/config.h>
+               #endif
+
+int
+main (void)
+{
+
+               #ifndef CONFIG_PREEMPT
+               #error CONFIG_PREEMPT not #defined
+               #endif
+
+  ;
+  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; }
+               { { $as_echo "$as_me:$LINENO: error:
+               *** Kernel built with CONFIG_PREEMPT which is not supported.
+               ** You must rebuild your kernel without this option." >&5
+$as_echo "$as_me: error:
+               *** Kernel built with CONFIG_PREEMPT which is not supported.
+               ** You must rebuild your kernel without this option." >&2;}
+   { (exit 1); exit 1; }; }
+
+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
 
 
 
 
-                       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"
 
 
 
@@ -15164,7 +15962,7 @@ int
 main (void)
 {
 
-               atomic64_t *ptr;
+               atomic64_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -15273,6 +16071,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
                #include <asm/atomic.h>
+               #include <asm/system.h>
 
 int
 main (void)
@@ -15406,7 +16205,7 @@ int
 main (void)
 {
 
-               uintptr_t *ptr;
+               uintptr_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -15470,7 +16269,7 @@ int
 main (void)
 {
 
-               struct work_struct work;
+               struct work_struct work __attribute__ ((unused));
                INIT_WORK(&work, NULL, NULL);
 
   ;
@@ -15535,7 +16334,7 @@ int
 main (void)
 {
 
-               return register_sysctl_table(NULL,0);
+               (void) register_sysctl_table(NULL, 0);
 
   ;
   return 0;
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether shrinker callback wants 3 args" >&5
+$as_echo_n "checking whether shrinker callback wants 3 args... " >&6; }
+       tmp_flags="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="-Werror"
+
+
+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/mm.h>
+
+               int shrinker_cb(struct shrinker *, int, unsigned int);
+
+int
+main (void)
+{
+
+               struct shrinker cache_shrinker = {
+                       .shrink = shrinker_cb,
+                       .seeks = DEFAULT_SEEKS,
+               };
+               register_shrinker(&cache_shrinker);
+
+  ;
+  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_SHRINKER_CALLBACK 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
+
+
+       EXTRA_KCFLAGS="$tmp_flags"
+
        { $as_echo "$as_me:$LINENO: checking whether struct path used in struct nameidata" >&5
 $as_echo_n "checking whether struct path used in struct nameidata... " >&6; }
 
@@ -15664,7 +16536,7 @@ int
 main (void)
 {
 
-               struct nameidata nd;
+               struct nameidata nd __attribute__ ((unused));
 
                nd.path.mnt = NULL;
                nd.path.dentry = NULL;
@@ -15839,7 +16711,7 @@ int
 main (void)
 {
 
-               struct ctl_table ctl;
+               struct ctl_table ctl __attribute__ ((unused));
                ctl.ctl_name = 0;
 
   ;
@@ -16225,7 +17097,9 @@ int
 main (void)
 {
 
-               struct timespec a, b, c = { 0 };
+               struct timespec a = { 0 };
+               struct timespec b = { 0 };
+               struct timespec c __attribute__ ((unused));
                c = timespec_sub(a, b);
 
   ;
@@ -16291,7 +17165,8 @@ int
 main (void)
 {
 
-               struct new_utsname *a = init_utsname();
+               struct new_utsname *a __attribute__ ((unused));
+               a = init_utsname();
 
   ;
   return 0;
@@ -16429,7 +17304,8 @@ main (void)
 {
 
                struct files_struct *files = current->files;
-               struct fdtable *fdt = files_fdtable(files);
+               struct fdtable *fdt __attribute__ ((unused));
+               fdt = files_fdtable(files);
 
   ;
   return 0;
@@ -16562,7 +17438,8 @@ int
 main (void)
 {
 
-               void *a = kmalloc_node(1, GFP_KERNEL, 0);
+               void *a __attribute__ ((unused));
+               a = kmalloc_node(1, GFP_KERNEL, 0);
 
   ;
   return 0;
@@ -16735,7 +17612,7 @@ int
 main (void)
 {
 
-               struct mutex mtx;
+               struct mutex mtx __attribute__ ((unused));
                mtx.owner = NULL;
 
   ;
@@ -17197,7 +18074,7 @@ int
 main (void)
 {
 
-               unsigned long state;
+               unsigned long state __attribute__ ((unused));
                state = global_page_state(0);
 
   ;
@@ -17263,7 +18140,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_FREE_PAGES;
 
   ;
@@ -17329,7 +18206,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE;
 
   ;
@@ -17394,7 +18271,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE_ANON;
 
   ;
@@ -17459,7 +18336,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_INACTIVE_FILE;
 
   ;
@@ -17525,7 +18402,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE;
 
   ;
@@ -17590,7 +18467,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE_ANON;
 
   ;
@@ -17655,7 +18532,7 @@ int
 main (void)
 {
 
-               enum zone_stat_item zsi;
+               enum zone_stat_item zsi __attribute__ ((unused));
                zsi = NR_ACTIVE_FILE;
 
   ;
@@ -17886,24 +18763,218 @@ $as_echo "no" >&6; }
                        { $as_echo "$as_me:$LINENO: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SET_FS_PWD 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SET_FS_PWD 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SET_FS_PWD 1
+_ACEOF
+
+       fi
+
+
+       { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() wants 2 args" >&5
+$as_echo_n "checking whether set_fs_pwd() wants 2 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/sched.h>
+               #include <linux/fs_struct.h>
+
+int
+main (void)
+{
+
+               set_fs_pwd(NULL, NULL);
+
+  ;
+  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_2ARGS_SET_FS_PWD 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 vfs_unlink() wants 2 args" >&5
+$as_echo_n "checking whether vfs_unlink() wants 2 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/fs.h>
+
+int
+main (void)
+{
+
+               vfs_unlink(NULL, NULL);
+
+  ;
+  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_2ARGS_VFS_UNLINK 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 vfs_rename() wants 4 args" >&5
+$as_echo_n "checking whether vfs_rename() wants 4 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/fs.h>
+
+int
+main (void)
+{
+
+               vfs_rename(NULL, NULL, NULL, NULL);
+
+  ;
+  return 0;
+}
+
 _ACEOF
 
-               fi
-       else
+
+       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_SET_FS_PWD 1
+#define HAVE_4ARGS_VFS_RENAME 1
 _ACEOF
 
-       fi
 
+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; }
 
-       { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() wants 2 args" >&5
-$as_echo_n "checking whether set_fs_pwd() wants 2 args... " >&6; }
+
+
+fi
+
+       rm -Rf build
+
+
+
+
+       { $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; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -17921,7 +18992,8 @@ int
 main (void)
 {
 
-               set_fs_pwd(NULL, NULL);
+               struct fs_struct fs;
+               spin_lock_init(&fs.lock);
 
   ;
   return 0;
@@ -17948,7 +19020,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_SET_FS_PWD 1
+#define HAVE_FS_STRUCT_SPINLOCK 1
 _ACEOF
 
 
@@ -17967,8 +19039,9 @@ fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_unlink() wants 2 args" >&5
-$as_echo_n "checking whether vfs_unlink() wants 2 args... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5
+$as_echo_n "checking whether struct cred exists... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -17979,13 +19052,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/cred.h>
 
 int
 main (void)
 {
 
-               vfs_unlink(NULL, NULL);
+               struct cred *cr __attribute__ ((unused));
+               cr  = NULL;
 
   ;
   return 0;
@@ -18012,7 +19086,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_2ARGS_VFS_UNLINK 1
+#define HAVE_CRED_STRUCT 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether vfs_rename() wants 4 args" >&5
-$as_echo_n "checking whether vfs_rename() wants 4 args... " >&6; }
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol groups_search is exported" >&5
+$as_echo_n "checking whether symbol groups_search is exported... " >&6; }
+       grep -q -E '[[:space:]]groups_search[[: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.*(groups_search)" \
+                               "$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_GROUPS_SEARCH 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GROUPS_SEARCH 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol __put_task_struct is exported" >&5
+$as_echo_n "checking whether symbol __put_task_struct is exported... " >&6; }
+       grep -q -E '[[:space:]]__put_task_struct[[: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.*(__put_task_struct)" \
+                               "$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_PUT_TASK_STRUCT 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PUT_TASK_STRUCT 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether proc_handler() wants 5 args" >&5
+$as_echo_n "checking whether proc_handler() wants 5 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -18043,13 +19200,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/fs.h>
+               #include <linux/sysctl.h>
 
 int
 main (void)
 {
 
-               vfs_rename(NULL, NULL, NULL, NULL);
+               proc_dostring(NULL, 0, NULL, NULL, NULL);
 
   ;
   return 0;
@@ -18076,7 +19233,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_4ARGS_VFS_RENAME 1
+#define HAVE_5ARGS_PROC_HANDLER 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5
-$as_echo_n "checking whether struct cred exists... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether symbol kvasprintf is exported" >&5
+$as_echo_n "checking whether symbol kvasprintf is exported... " >&6; }
+       grep -q -E '[[:space:]]kvasprintf[[: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.*(kvasprintf)" \
+                               "$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_KVASPRINTF 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVASPRINTF 1
+_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
@@ -18108,14 +19306,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/cred.h>
+               #include <linux/buffer_head.h>
 
 int
 main (void)
 {
 
-               struct cred *cr;
-               cr  = NULL;
+               file_fsync(NULL, NULL, 0);
 
   ;
   return 0;
@@ -18142,7 +19339,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_CRED_STRUCT 1
+#define HAVE_3ARGS_FILE_FSYNC 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol groups_search is exported" >&5
-$as_echo_n "checking whether symbol groups_search is exported... " >&6; }
-       grep -q -E '[[:space:]]groups_search[[:space:]]' \
+       { $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 ; do
-                       grep -q -E "EXPORT_SYMBOL.*(groups_search)" \
+               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
@@ -18187,7 +19384,7 @@ $as_echo "no" >&6; }
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_GROUPS_SEARCH 1
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
 _ACEOF
 
                fi
@@ -18196,22 +19393,22 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_GROUPS_SEARCH 1
+#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1
 _ACEOF
 
        fi
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol __put_task_struct is exported" >&5
-$as_echo_n "checking whether symbol __put_task_struct is exported... " >&6; }
-       grep -q -E '[[:space:]]__put_task_struct[[:space:]]' \
+       { $as_echo "$as_me:$LINENO: checking whether symbol invalidate_inodes is exported" >&5
+$as_echo_n "checking whether symbol invalidate_inodes is exported... " >&6; }
+       grep -q -E '[[:space:]]invalidate_inodes[[: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.*(__put_task_struct)" \
+                       grep -q -E "EXPORT_SYMBOL.*(invalidate_inodes)" \
                                "$LINUX_OBJ/$file" 2>/dev/null
                        rc=$?
                        if test $rc -eq 0; then
@@ -18228,7 +19425,7 @@ $as_echo "no" >&6; }
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_PUT_TASK_STRUCT 1
+#define HAVE_INVALIDATE_INODES 1
 _ACEOF
 
                fi
@@ -18237,15 +19434,14 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_PUT_TASK_STRUCT 1
+#define HAVE_INVALIDATE_INODES 1
 _ACEOF
 
        fi
 
 
-
-       { $as_echo "$as_me:$LINENO: checking whether proc_handler() wants 5 args" >&5
-$as_echo_n "checking whether proc_handler() wants 5 args... " >&6; }
+       { $as_echo "$as_me:$LINENO: checking whether invalidate_inodes() wants 2 args" >&5
+$as_echo_n "checking whether invalidate_inodes() wants 2 args... " >&6; }
 
 
 cat confdefs.h - <<_ACEOF >conftest.c
@@ -18256,13 +19452,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 
-               #include <linux/sysctl.h>
+               #include <linux/fs.h>
 
 int
 main (void)
 {
 
-               proc_dostring(NULL, 0, NULL, NULL, NULL);
+               return __invalidate_device(NULL, 0);
 
   ;
   return 0;
@@ -18289,7 +19485,7 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_5ARGS_PROC_HANDLER 1
+#define HAVE_2ARGS_INVALIDATE_INODES 1
 _ACEOF
 
 
 
 
 
-       { $as_echo "$as_me:$LINENO: checking whether symbol kvasprintf is exported" >&5
-$as_echo_n "checking whether symbol kvasprintf is exported... " >&6; }
-       grep -q -E '[[:space:]]kvasprintf[[:space:]]' \
+       { $as_echo "$as_me:$LINENO: checking whether symbol shrink_dcache_memory is exported" >&5
+$as_echo_n "checking whether symbol shrink_dcache_memory is exported... " >&6; }
+       grep -q -E '[[:space:]]shrink_dcache_memory[[: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.*(kvasprintf)" \
+               for file in fs/dcache.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(shrink_dcache_memory)" \
                                "$LINUX_OBJ/$file" 2>/dev/null
                        rc=$?
                        if test $rc -eq 0; then
@@ -18334,7 +19530,7 @@ $as_echo "no" >&6; }
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_KVASPRINTF 1
+#define HAVE_SHRINK_DCACHE_MEMORY 1
 _ACEOF
 
                fi
@@ -18343,7 +19539,48 @@ _ACEOF
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_KVASPRINTF 1
+#define HAVE_SHRINK_DCACHE_MEMORY 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol shrink_icache_memory is exported" >&5
+$as_echo_n "checking whether symbol shrink_icache_memory is exported... " >&6; }
+       grep -q -E '[[:space:]]shrink_icache_memory[[:space:]]' \
+               $LINUX_OBJ/Module*.symvers 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/inode.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(shrink_icache_memory)" \
+                               "$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_SHRINK_ICACHE_MEMORY 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SHRINK_ICACHE_MEMORY 1
 _ACEOF
 
        fi
@@ -18351,7 +19588,8 @@ _ACEOF
 
 
 
-                               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
@@ -18363,6 +19601,7 @@ $as_echo "$as_me: error:
 
 fi
 
+
    ;;
                srpm)                        ;;
                 *)
@@ -19970,7 +21209,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