X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=configure;h=e9e2ec1b6e64848f4bbaa8074d9dc892616d083c;hb=28eb9213d89cb25438fcecb86e735cc3edc26ea4;hp=9eaa3737e098e76b04f9547fda2da0f894882f52;hpb=46e18b3f0fc13aa0859d0fef7dc829db20491ab6;p=zfs.git diff --git a/configure b/configure index 9eaa373..e9e2ec1 100755 --- a/configure +++ b/configure @@ -798,6 +798,8 @@ LIBSELINUX LIBBLKID LIBUUID ZLIB +udevruledir +udevdir KERNELCPPFLAGS KERNELMAKE_PARAMS SPL_SYMBOLS @@ -812,8 +814,15 @@ NO_UNUSED_BUT_SET_VARIABLE ZFS_CONFIG TARGET_ASM_DIR DEFAULT_INIT_SCRIPT +DEFAULT_INIT_DIR DEFAULT_PACKAGE VENDOR +MAKEPKG_VERSION +MAKEPKG +HAVE_MAKEPKG +PACMAN_VERSION +PACMAN +HAVE_PACMAN ALIEN_VERSION ALIEN HAVE_ALIEN @@ -974,6 +983,8 @@ with_linux with_linux_obj with_spl with_spl_obj +with_udevdir +with_udevruledir with_blkid with_selinux enable_debug @@ -1642,6 +1653,8 @@ Optional Packages: --with-linux-obj=PATH Path to kernel build objects --with-spl=PATH Path to spl source --with-spl-obj=PATH Path to spl build objects + --with-udevdir=DIR install udev helpers [EPREFIX/lib/udev] + --with-udevruledir=DIR install udev rules [UDEVDIR/rules.d] --with-blkid support blkid caching [default=check] --with-selinux support selinux [default=check] @@ -4822,13 +4835,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:4825: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4838: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4828: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4841: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4831: output\"" >&5) + (eval echo "\"\$as_me:4844: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6034,7 +6047,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6037 "configure"' > conftest.$ac_ext + echo '#line 6050 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7887,11 +7900,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:7890: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7903: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7894: \$? = $ac_status" >&5 + echo "$as_me:7907: \$? = $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. @@ -8226,11 +8239,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:8229: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8242: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8233: \$? = $ac_status" >&5 + echo "$as_me:8246: \$? = $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. @@ -8331,11 +8344,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:8334: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8347: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8338: \$? = $ac_status" >&5 + echo "$as_me:8351: \$? = $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 @@ -8386,11 +8399,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:8389: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8402: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8393: \$? = $ac_status" >&5 + echo "$as_me:8406: \$? = $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 @@ -11189,7 +11202,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11192 "configure" +#line 11205 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11285,7 +11298,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11288 "configure" +#line 11301 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11780,6 +11793,58 @@ fi + PACMAN=pacman + MAKEPKG=makepkg + + { $as_echo "$as_me:$LINENO: checking whether $PACMAN is available" >&5 +$as_echo_n "checking whether $PACMAN is available... " >&6; } + tmp=$($PACMAN --version 2>/dev/null) + if test -n "$tmp"; then + + PACMAN_VERSION=$(echo $tmp | + $AWK '/Pacman/ { print $3 }' | + $SED 's/^v//') + HAVE_PACMAN=yes + { $as_echo "$as_me:$LINENO: result: $HAVE_PACMAN ($PACMAN_VERSION)" >&5 +$as_echo "$HAVE_PACMAN ($PACMAN_VERSION)" >&6; } + +else + + HAVE_PACMAN=no + { $as_echo "$as_me:$LINENO: result: $HAVE_PACMAN" >&5 +$as_echo "$HAVE_PACMAN" >&6; } + +fi + + + { $as_echo "$as_me:$LINENO: checking whether $MAKEPKG is available" >&5 +$as_echo_n "checking whether $MAKEPKG is available... " >&6; } + tmp=$($MAKEPKG --version 2>/dev/null) + if test -n "$tmp"; then + + MAKEPKG_VERSION=$(echo $tmp | $AWK '/makepkg/ { print $3 }') + HAVE_MAKEPKG=yes + { $as_echo "$as_me:$LINENO: result: $HAVE_MAKEPKG ($MAKEPKG_VERSION)" >&5 +$as_echo "$HAVE_MAKEPKG ($MAKEPKG_VERSION)" >&6; } + +else + + HAVE_MAKEPKG=no + { $as_echo "$as_me:$LINENO: result: $HAVE_MAKEPKG" >&5 +$as_echo "$HAVE_MAKEPKG" >&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 @@ -11798,6 +11863,8 @@ $as_echo_n "checking linux distribution... " >&6; } VENDOR=ubuntu ; elif test -f /etc/lunar.release ; then VENDOR=lunar ; + elif test -f /etc/arch-release ; then + VENDOR=arch ; else VENDOR= ; fi @@ -11816,6 +11883,7 @@ $as_echo_n "checking default package type... " >&6; } slackware) DEFAULT_PACKAGE=tgz ;; gentoo) DEFAULT_PACKAGE=tgz ;; lunar) DEFAULT_PACKAGE=tgz ;; + arch) DEFAULT_PACKAGE=arch;; *) DEFAULT_PACKAGE=rpm ;; esac @@ -11823,6 +11891,17 @@ $as_echo_n "checking default package type... " >&6; } $as_echo "$DEFAULT_PACKAGE" >&6; } + { $as_echo "$as_me:$LINENO: checking default init directory" >&5 +$as_echo_n "checking default init directory... " >&6; } + case "$VENDOR" in + arch) DEFAULT_INIT_DIR=$sysconfdir/rc.d ;; + *) DEFAULT_INIT_DIR=$sysconfdir/init.d ;; + esac + + { $as_echo "$as_me:$LINENO: result: $DEFAULT_INIT_DIR" >&5 +$as_echo "$DEFAULT_INIT_DIR" >&6; } + + { $as_echo "$as_me:$LINENO: checking default init script type" >&5 $as_echo_n "checking default init script type... " >&6; } case "$VENDOR" in @@ -11834,6 +11913,7 @@ $as_echo_n "checking default init script type... " >&6; } slackware) DEFAULT_INIT_SCRIPT=lsb ;; gentoo) DEFAULT_INIT_SCRIPT=gentoo ;; lunar) DEFAULT_INIT_SCRIPT=lunar ;; + arch) DEFAULT_INIT_SCRIPT=arch ;; *) DEFAULT_INIT_SCRIPT=lsb ;; esac @@ -11962,21 +12042,32 @@ fi { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5 $as_echo_n "checking kernel source directory... " >&6; } if test -z "$kernelsrc"; 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 + +elif test -e "/lib/modules/$(uname -r)/build"; then + headersdir="/lib/modules/$(uname -r)/build" sourcelink=$(readlink -f "$headersdir") - else + +else + sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) - fi + +fi + if test -n "$sourcelink" && test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -11988,30 +12079,53 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the kernel source with the '--with-linux=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$kernelsrc" = "NONE"; then + kernsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5 $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 -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 + +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 + +elif test -d ${kernelsrc}-obj/${target_cpu}/default; then + kernelbuild=${kernelsrc}-obj/${target_cpu}/default - elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + +elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} - else + +else + kernelbuild=${kernelsrc} - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 $as_echo "$kernelbuild" >&6; } @@ -12021,33 +12135,48 @@ $as_echo_n "checking kernel source version... " >&6; } utsrelease2=$kernelbuild/include/linux/utsrelease.h utsrelease3=$kernelbuild/include/generated/utsrelease.h if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then + utsrelease=linux/version.h - elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + +elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + utsrelease=linux/utsrelease.h - elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + +elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + utsrelease=generated/utsrelease.h - fi + +fi + if test "$utsrelease"; then + kernsrcver=`(echo "#include <$utsrelease>"; echo "kernsrcver=UTS_RELEASE") | cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` if test -z "$kernsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5 $as_echo "$as_me: error: *** Cannot determine kernel version." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5 $as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 $as_echo "$kernsrcver" >&6; } @@ -12065,13 +12194,20 @@ $as_echo "$kernsrcver" >&6; } { $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 + +else + LINUX_SYMBOLS=Module.symvers - fi - if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then +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 @@ -12083,10 +12219,16 @@ $as_echo "$as_me: error: *** 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 + +fi + + +else + LINUX_SYMBOLS=NONE - fi + +fi + { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5 $as_echo "$LINUX_SYMBOLS" >&6; } @@ -12111,16 +12253,23 @@ fi { $as_echo "$as_me:$LINENO: checking spl source directory" >&5 $as_echo_n "checking spl source directory... " >&6; } if test -z "$splsrc"; then + sourcelink=`ls -1d /usr/src/spl-*/${LINUX_VERSION} \ 2>/dev/null | tail -1` if test -z "$sourcelink" || test ! -e $sourcelink; then + sourcelink=../spl - fi + +fi + if test -e $sourcelink; then + splsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -12132,21 +12281,33 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the spl source with the '--with-spl=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$splsrc" = "NONE"; then + splbuild=NONE splsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $splsrc" >&5 $as_echo "$splsrc" >&6; } { $as_echo "$as_me:$LINENO: checking spl build directory" >&5 $as_echo_n "checking spl build directory... " >&6; } if test -z "$splbuild"; then + splbuild=${splsrc} - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splbuild" >&5 $as_echo "$splbuild" >&6; } @@ -12155,23 +12316,29 @@ $as_echo_n "checking spl source version... " >&6; } if test -r $splbuild/spl_config.h && fgrep -q SPL_META_VERSION $splbuild/spl_config.h; then + splsrcver=`(echo "#include "; echo "splsrcver=SPL_META_VERSION") | cpp -I $splbuild | grep "^splsrcver=" | cut -d \" -f 2` - fi + +fi + if test -z "$splsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script" >&5 + *** Cannot determine the version of the spl source. + *** Please prepare the spl source before running this script" >&5 $as_echo "$as_me: error: - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script" >&2;} + *** Cannot determine the version of the spl source. + *** Please prepare the spl source before running this script" >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splsrcver" >&5 $as_echo "$splsrcver" >&6; } @@ -12188,16 +12355,27 @@ $as_echo "$splsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking spl file name for module symbols" >&5 $as_echo_n "checking spl file name for module symbols... " >&6; } if test -r $SPL_OBJ/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/Modules.symvers; then + +elif test -r $SPL_OBJ/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - elif test -r $SPL_OBJ/module/Module.symvers; then + +elif test -r $SPL_OBJ/module/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/module/Modules.symvers; then + +elif test -r $SPL_OBJ/module/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - else + +else + SPL_SYMBOLS=$LINUX_SYMBOLS - fi + +fi + { $as_echo "$as_me:$LINENO: result: $SPL_SYMBOLS" >&5 $as_echo "$SPL_SYMBOLS" >&6; } @@ -12218,9 +12396,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #ifndef AUTOCONF_INCLUDED - #include - #endif + #include int main (void) @@ -12254,11 +12430,11 @@ _ACEOF { $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 + *** 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;} + *** Kernel built with CONFIG_PREEMPT which is not supported. + *** You must rebuild your kernel without this option." >&2;} { (exit 1); exit 1; }; } else @@ -12279,6 +12455,7 @@ fi if test "$ZFS_META_LICENSE" = CDDL; then + { $as_echo "$as_me:$LINENO: checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC" >&5 $as_echo_n "checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC... " >&6; } @@ -12291,9 +12468,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #ifndef AUTOCONF_INCLUDED - #include - #endif + #include int main (void) @@ -12327,13 +12502,13 @@ _ACEOF { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } { { $as_echo "$as_me:$LINENO: error: - *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is - *** incompatible with the CDDL license. You must rebuild - *** your kernel without this option." >&5 + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is + *** incompatible with the CDDL license. You must rebuild + *** your kernel without this option." >&5 $as_echo "$as_me: error: - *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is - *** incompatible with the CDDL license. You must rebuild - *** your kernel without this option." >&2;} + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is + *** incompatible with the CDDL license. You must rebuild + *** your kernel without this option." >&2;} { (exit 1); exit 1; }; } else @@ -12352,19 +12527,26 @@ fi - fi + +fi + if test "$ZFS_META_LICENSE" = GPL; then + cat >>confdefs.h <<\_ACEOF #define HAVE_GPL_ONLY_SYMBOLS 1 _ACEOF - fi + +fi + { $as_echo "$as_me:$LINENO: checking block device operation prototypes" >&5 $as_echo_n "checking block device operation prototypes... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -12442,6 +12624,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether kernel defines fmode_t" >&5 $as_echo_n "checking whether kernel defines fmode_t... " >&6; } @@ -12580,20 +12763,27 @@ $as_echo_n "checking whether symbol blkdev_get_by_path is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(blkdev_get_by_path)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12601,8 +12791,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12610,7 +12804,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi + +fi + @@ -12620,20 +12816,27 @@ $as_echo_n "checking whether symbol open_bdev_exclusive is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(open_bdev_exclusive)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12641,8 +12844,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12650,7 +12857,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi + +fi + @@ -12722,6 +12931,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether bdev_logical_block_size() is available" >&5 $as_echo_n "checking whether bdev_logical_block_size() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -12784,6 +12995,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether bio_empty_barrier() is defined" >&5 @@ -13324,6 +13536,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether blk_end_request() is available" >&5 $as_echo_n "checking whether blk_end_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13454,10 +13668,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_fetch_request() is available" >&5 $as_echo_n "checking whether blk_fetch_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13520,10 +13737,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_requeue_request() is available" >&5 $as_echo_n "checking whether blk_requeue_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13587,10 +13807,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_bytes() is available" >&5 $as_echo_n "checking whether blk_rq_bytes() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13721,10 +13944,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_pos() is available" >&5 $as_echo_n "checking whether blk_rq_pos() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13787,10 +14013,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_sectors() is available" >&5 $as_echo_n "checking whether blk_rq_sectors() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13853,10 +14082,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether get_disk_ro() is available" >&5 $as_echo_n "checking whether get_disk_ro() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13919,10 +14151,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether rq_is_sync() is available" >&5 $as_echo_n "checking whether rq_is_sync() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -13985,10 +14220,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether rq_for_each_segment() is available" >&5 $as_echo_n "checking whether rq_for_each_segment() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -14053,6 +14291,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether super_block uses const struct xattr_hander" >&5 $as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; } @@ -14271,8 +14510,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants 2 args" >&5 -$as_echo_n "checking whether fops->fsync() wants 2 args... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants" >&5 +$as_echo_n "checking whether fops->fsync() wants... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -14289,7 +14529,7 @@ int main (void) { - int (*fsync) (struct file *, int datasync) = NULL; + int (*fsync) (struct file *, struct dentry *, int) = NULL; struct file_operations fops __attribute__ ((unused)); fops.fsync = fsync; @@ -14315,11 +14555,11 @@ _ACEOF $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: result: dentry" >&5 +$as_echo "dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_FSYNC 1 +#define HAVE_FSYNC_WITH_DENTRY 1 _ACEOF @@ -14327,8 +14567,6 @@ 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; } @@ -14339,6 +14577,135 @@ fi + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + +int +main (void) +{ + + int (*fsync) (struct file *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; + + ; + 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: no dentry" >&5 +$as_echo "no dentry" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSYNC_WITHOUT_DENTRY 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + + +fi + + rm -Rf build + + + + + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + +int +main (void) +{ + + int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; + + ; + 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: range" >&5 +$as_echo "range" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSYNC_RANGE 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + + +fi + + rm -Rf build + + + + + { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 $as_echo_n "checking whether sops->evict_inode() exists... " >&6; } @@ -14358,9 +14725,9 @@ main (void) { void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)); - - sops.evict_inode = evict_inode; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; ; return 0; @@ -14413,20 +14780,27 @@ $as_echo_n "checking whether symbol insert_inode_locked is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/inode.c; do grep -q -E "EXPORT_SYMBOL.*(insert_inode_locked)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14434,8 +14808,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_INSERT_INODE_LOCKED 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14443,7 +14821,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_INSERT_INODE_LOCKED 1 _ACEOF - fi + +fi + @@ -14453,20 +14833,27 @@ $as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/dcache.c; do grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14474,8 +14861,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14483,7 +14874,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi + +fi + @@ -14493,20 +14886,27 @@ $as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14514,8 +14914,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14523,7 +14927,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi + +fi + @@ -14533,20 +14939,27 @@ $as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in mm/truncate.c; do grep -q -E "EXPORT_SYMBOL.*(truncate_setsize)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14554,8 +14967,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14563,7 +14980,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi + +fi + @@ -14641,20 +15060,27 @@ $as_echo_n "checking whether symbol mount_nodev is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/super.c; do grep -q -E "EXPORT_SYMBOL.*(mount_nodev)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14662,8 +15088,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14671,24 +15101,237 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi - +fi - if test "$LINUX_OBJ" != "$LINUX"; then - KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" - fi - KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" - KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" - KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" + { $as_echo "$as_me:$LINENO: checking whether super_block has s_bdi" >&5 +$as_echo_n "checking whether super_block has s_bdi... " >&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 + +int +main (void) +{ + + struct super_block sb __attribute__ ((unused)); + sb.s_bdi = 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_BDI 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 bdi_setup_and_register is exported" >&5 +$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; } + grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + + export=0 + for file in mm/backing-dev.c; do + grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$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_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + + + + { $as_echo "$as_me:$LINENO: checking whether set_nlink() is available" >&5 +$as_echo_n "checking whether set_nlink() is available... " >&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 + +int +main (void) +{ + + struct inode node; + unsigned int link = 0; + (void) set_nlink(&node, link); + + ; + 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_SET_NLINK 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 + + + + + if test "$LINUX_OBJ" != "$LINUX"; then + + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" + +fi + + + + + KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" + KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" + KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" ;; user) + +# Check whether --with-udevdir was given. +if test "${with_udevdir+set}" = set; then + withval=$with_udevdir; udevdir=$withval +else + udevdir='${exec_prefix}/lib/udev' +fi + + + +# Check whether --with-udevruledir was given. +if test "${with_udevruledir+set}" = set; then + withval=$with_udevruledir; udevruledir=$withval +else + udevruledir='${udevdir}/rules.d' +fi + + + + + + { $as_echo "$as_me:$LINENO: checking for target asm dir" >&5 $as_echo_n "checking for target asm dir... " >&6; } TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/` @@ -16236,21 +16879,32 @@ fi { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5 $as_echo_n "checking kernel source directory... " >&6; } if test -z "$kernelsrc"; 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 + +elif test -e "/lib/modules/$(uname -r)/build"; then + headersdir="/lib/modules/$(uname -r)/build" sourcelink=$(readlink -f "$headersdir") - else + +else + sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) - fi + +fi + if test -n "$sourcelink" && test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -16262,30 +16916,53 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the kernel source with the '--with-linux=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$kernelsrc" = "NONE"; then + kernsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5 $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 -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 + +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 + +elif test -d ${kernelsrc}-obj/${target_cpu}/default; then + kernelbuild=${kernelsrc}-obj/${target_cpu}/default - elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + +elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} - else + +else + kernelbuild=${kernelsrc} - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 $as_echo "$kernelbuild" >&6; } @@ -16295,33 +16972,48 @@ $as_echo_n "checking kernel source version... " >&6; } utsrelease2=$kernelbuild/include/linux/utsrelease.h utsrelease3=$kernelbuild/include/generated/utsrelease.h if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then + utsrelease=linux/version.h - elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + +elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + utsrelease=linux/utsrelease.h - elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + +elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + utsrelease=generated/utsrelease.h - fi + +fi + if test "$utsrelease"; then + kernsrcver=`(echo "#include <$utsrelease>"; echo "kernsrcver=UTS_RELEASE") | cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` if test -z "$kernsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5 $as_echo "$as_me: error: *** Cannot determine kernel version." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5 $as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 $as_echo "$kernsrcver" >&6; } @@ -16339,13 +17031,20 @@ $as_echo "$kernsrcver" >&6; } { $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 + +else + LINUX_SYMBOLS=Module.symvers - fi - if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then +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 @@ -16357,10 +17056,16 @@ $as_echo "$as_me: error: *** 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 + +fi + + +else + LINUX_SYMBOLS=NONE - fi + +fi + { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5 $as_echo "$LINUX_SYMBOLS" >&6; } @@ -16385,16 +17090,23 @@ fi { $as_echo "$as_me:$LINENO: checking spl source directory" >&5 $as_echo_n "checking spl source directory... " >&6; } if test -z "$splsrc"; then + sourcelink=`ls -1d /usr/src/spl-*/${LINUX_VERSION} \ 2>/dev/null | tail -1` if test -z "$sourcelink" || test ! -e $sourcelink; then + sourcelink=../spl - fi + +fi + if test -e $sourcelink; then + splsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -16406,21 +17118,33 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the spl source with the '--with-spl=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$splsrc" = "NONE"; then + splbuild=NONE splsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $splsrc" >&5 $as_echo "$splsrc" >&6; } { $as_echo "$as_me:$LINENO: checking spl build directory" >&5 $as_echo_n "checking spl build directory... " >&6; } if test -z "$splbuild"; then + splbuild=${splsrc} - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splbuild" >&5 $as_echo "$splbuild" >&6; } @@ -16429,23 +17153,29 @@ $as_echo_n "checking spl source version... " >&6; } if test -r $splbuild/spl_config.h && fgrep -q SPL_META_VERSION $splbuild/spl_config.h; then + splsrcver=`(echo "#include "; echo "splsrcver=SPL_META_VERSION") | cpp -I $splbuild | grep "^splsrcver=" | cut -d \" -f 2` - fi + +fi + if test -z "$splsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script" >&5 + *** Cannot determine the version of the spl source. + *** Please prepare the spl source before running this script" >&5 $as_echo "$as_me: error: - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script" >&2;} + *** Cannot determine the version of the spl source. + *** Please prepare the spl source before running this script" >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splsrcver" >&5 $as_echo "$splsrcver" >&6; } @@ -16462,16 +17192,27 @@ $as_echo "$splsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking spl file name for module symbols" >&5 $as_echo_n "checking spl file name for module symbols... " >&6; } if test -r $SPL_OBJ/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/Modules.symvers; then + +elif test -r $SPL_OBJ/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - elif test -r $SPL_OBJ/module/Module.symvers; then + +elif test -r $SPL_OBJ/module/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/module/Modules.symvers; then + +elif test -r $SPL_OBJ/module/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - else + +else + SPL_SYMBOLS=$LINUX_SYMBOLS - fi + +fi + { $as_echo "$as_me:$LINENO: result: $SPL_SYMBOLS" >&5 $as_echo "$SPL_SYMBOLS" >&6; } @@ -16492,9 +17233,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #ifndef AUTOCONF_INCLUDED - #include - #endif + #include int main (void) @@ -16528,11 +17267,11 @@ _ACEOF { $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 + *** 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;} + *** Kernel built with CONFIG_PREEMPT which is not supported. + *** You must rebuild your kernel without this option." >&2;} { (exit 1); exit 1; }; } else @@ -16553,6 +17292,7 @@ fi if test "$ZFS_META_LICENSE" = CDDL; then + { $as_echo "$as_me:$LINENO: checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC" >&5 $as_echo_n "checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC... " >&6; } @@ -16565,9 +17305,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #ifndef AUTOCONF_INCLUDED - #include - #endif + #include int main (void) @@ -16601,13 +17339,13 @@ _ACEOF { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } { { $as_echo "$as_me:$LINENO: error: - *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is - *** incompatible with the CDDL license. You must rebuild - *** your kernel without this option." >&5 + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is + *** incompatible with the CDDL license. You must rebuild + *** your kernel without this option." >&5 $as_echo "$as_me: error: - *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is - *** incompatible with the CDDL license. You must rebuild - *** your kernel without this option." >&2;} + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is + *** incompatible with the CDDL license. You must rebuild + *** your kernel without this option." >&2;} { (exit 1); exit 1; }; } else @@ -16626,19 +17364,26 @@ fi - fi + +fi + if test "$ZFS_META_LICENSE" = GPL; then + cat >>confdefs.h <<\_ACEOF #define HAVE_GPL_ONLY_SYMBOLS 1 _ACEOF - fi + +fi + { $as_echo "$as_me:$LINENO: checking block device operation prototypes" >&5 $as_echo_n "checking block device operation prototypes... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -16716,6 +17461,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether kernel defines fmode_t" >&5 $as_echo_n "checking whether kernel defines fmode_t... " >&6; } @@ -16854,20 +17600,27 @@ $as_echo_n "checking whether symbol blkdev_get_by_path is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(blkdev_get_by_path)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16875,8 +17628,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16884,7 +17641,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi + +fi + @@ -16894,20 +17653,27 @@ $as_echo_n "checking whether symbol open_bdev_exclusive is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(open_bdev_exclusive)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16915,8 +17681,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16924,7 +17694,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi + +fi + @@ -16996,6 +17768,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether bdev_logical_block_size() is available" >&5 $as_echo_n "checking whether bdev_logical_block_size() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -17058,6 +17832,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether bio_empty_barrier() is defined" >&5 @@ -17598,6 +18373,8 @@ fi { $as_echo "$as_me:$LINENO: checking whether blk_end_request() is available" >&5 $as_echo_n "checking whether blk_end_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -17728,10 +18505,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_fetch_request() is available" >&5 $as_echo_n "checking whether blk_fetch_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -17794,10 +18574,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_requeue_request() is available" >&5 $as_echo_n "checking whether blk_requeue_request() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -17861,10 +18644,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_bytes() is available" >&5 $as_echo_n "checking whether blk_rq_bytes() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -17995,10 +18781,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_pos() is available" >&5 $as_echo_n "checking whether blk_rq_pos() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -18061,10 +18850,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether blk_rq_sectors() is available" >&5 $as_echo_n "checking whether blk_rq_sectors() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -18127,10 +18919,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether get_disk_ro() is available" >&5 $as_echo_n "checking whether get_disk_ro() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -18193,10 +18988,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether rq_is_sync() is available" >&5 $as_echo_n "checking whether rq_is_sync() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -18259,10 +19057,13 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether rq_for_each_segment() is available" >&5 $as_echo_n "checking whether rq_for_each_segment() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Wno-unused-but-set-variable" cat confdefs.h - <<_ACEOF >conftest.c @@ -18327,6 +19128,7 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" { $as_echo "$as_me:$LINENO: checking whether super_block uses const struct xattr_hander" >&5 $as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; } @@ -18545,8 +19347,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants 2 args" >&5 -$as_echo_n "checking whether fops->fsync() wants 2 args... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants" >&5 +$as_echo_n "checking whether fops->fsync() wants... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -18563,7 +19366,7 @@ int main (void) { - int (*fsync) (struct file *, int datasync) = NULL; + int (*fsync) (struct file *, struct dentry *, int) = NULL; struct file_operations fops __attribute__ ((unused)); fops.fsync = fsync; @@ -18589,11 +19392,11 @@ _ACEOF $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: result: dentry" >&5 +$as_echo "dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_FSYNC 1 +#define HAVE_FSYNC_WITH_DENTRY 1 _ACEOF @@ -18601,8 +19404,6 @@ 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; } @@ -18613,8 +19414,6 @@ fi - { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 -$as_echo_n "checking whether sops->evict_inode() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18631,10 +19430,10 @@ int main (void) { - void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)); + int (*fsync) (struct file *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); - sops.evict_inode = evict_inode; + fops.fsync = fsync; ; return 0; @@ -18657,11 +19456,11 @@ _ACEOF $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: result: no dentry" >&5 +$as_echo "no dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_EVICT_INODE 1 +#define HAVE_FSYNC_WITHOUT_DENTRY 1 _ACEOF @@ -18669,8 +19468,6 @@ 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; } @@ -18681,83 +19478,242 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol insert_inode_locked is exported" >&5 -$as_echo_n "checking whether symbol insert_inode_locked is exported... " >&6; } - grep -q -E '[[:space:]]insert_inode_locked[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/inode.c; do - grep -q -E "EXPORT_SYMBOL.*(insert_inode_locked)" "$LINUX/$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_INSERT_INODE_LOCKED 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_INSERT_INODE_LOCKED 1 -_ACEOF - fi + #include +int +main (void) +{ + int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; + struct file_operations fops __attribute__ ((unused)); - { $as_echo "$as_me:$LINENO: checking whether symbol d_obtain_alias is exported" >&5 -$as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; } - grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/dcache.c; do - grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" "$LINUX/$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; } + fops.fsync = fsync; - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + ; + return 0; +} -cat >>confdefs.h <<\_ACEOF -#define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_D_OBTAIN_ALIAS 1 + 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: range" >&5 +$as_echo "range" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSYNC_RANGE 1 _ACEOF - fi + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + + +fi + + rm -Rf build + + + + + + { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 +$as_echo_n "checking whether sops->evict_inode() exists... " >&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 + +int +main (void) +{ + + void (*evict_inode) (struct inode *) = NULL; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; + + ; + 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_EVICT_INODE 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 insert_inode_locked is exported" >&5 +$as_echo_n "checking whether symbol insert_inode_locked is exported... " >&6; } + grep -q -E '[[:space:]]insert_inode_locked[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + + export=0 + for file in fs/inode.c; do + grep -q -E "EXPORT_SYMBOL.*(insert_inode_locked)" "$LINUX/$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_INSERT_INODE_LOCKED 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INSERT_INODE_LOCKED 1 +_ACEOF + + +fi + + + + + { $as_echo "$as_me:$LINENO: checking whether symbol d_obtain_alias is exported" >&5 +$as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; } + grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + + export=0 + for file in fs/dcache.c; do + grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" "$LINUX/$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_D_OBTAIN_ALIAS 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_D_OBTAIN_ALIAS 1 +_ACEOF + + +fi + @@ -18767,20 +19723,27 @@ $as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/block_dev.c; do grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18788,8 +19751,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18797,7 +19764,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi + +fi + @@ -18807,20 +19776,27 @@ $as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in mm/truncate.c; do grep -q -E "EXPORT_SYMBOL.*(truncate_setsize)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18828,8 +19804,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18837,7 +19817,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi + +fi + @@ -18915,20 +19897,27 @@ $as_echo_n "checking whether symbol mount_nodev is exported... " >&6; } $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then + export=0 for file in fs/super.c; do grep -q -E "EXPORT_SYMBOL.*(mount_nodev)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + 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 + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18936,8 +19925,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18945,13 +19938,204 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi + +fi + + + + + { $as_echo "$as_me:$LINENO: checking whether super_block has s_bdi" >&5 +$as_echo_n "checking whether super_block has s_bdi... " >&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 + +int +main (void) +{ + + struct super_block sb __attribute__ ((unused)); + sb.s_bdi = 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_BDI 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 bdi_setup_and_register is exported" >&5 +$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; } + grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + + export=0 + for file in mm/backing-dev.c; do + grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" "$LINUX/$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_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + + + + { $as_echo "$as_me:$LINENO: checking whether set_nlink() is available" >&5 +$as_echo_n "checking whether set_nlink() is available... " >&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 + +int +main (void) +{ + + struct inode node; + unsigned int link = 0; + (void) set_nlink(&node, link); + + ; + 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_SET_NLINK 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 + if test "$LINUX_OBJ" != "$LINUX"; then + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" - fi + +fi + @@ -18963,6 +20147,28 @@ _ACEOF + +# Check whether --with-udevdir was given. +if test "${with_udevdir+set}" = set; then + withval=$with_udevdir; udevdir=$withval +else + udevdir='${exec_prefix}/lib/udev' +fi + + + +# Check whether --with-udevruledir was given. +if test "${with_udevruledir+set}" = set; then + withval=$with_udevruledir; udevruledir=$withval +else + udevruledir='${udevdir}/rules.d' +fi + + + + + + { $as_echo "$as_me:$LINENO: checking for target asm dir" >&5 $as_echo_n "checking for target asm dir... " >&6; } TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/` @@ -20555,7 +21761,7 @@ fi $as_echo "$enable_debug" >&6; } -ac_config_files="$ac_config_files Makefile dracut/Makefile dracut/90zfs/Makefile etc/Makefile etc/udev/Makefile etc/udev/rules.d/Makefile etc/init.d/Makefile etc/zfs/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libspl/include/ia32/Makefile lib/libspl/include/ia32/sys/Makefile lib/libspl/include/rpc/Makefile lib/libspl/include/sys/Makefile lib/libspl/include/sys/sysevent/Makefile lib/libspl/include/sys/dktp/Makefile lib/libspl/include/util/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzfs/Makefile lib/libshare/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/ztest/Makefile cmd/zpios/Makefile cmd/mount_zfs/Makefile cmd/zpool_layout/Makefile cmd/zvol_id/Makefile cmd/zpool_id/Makefile cmd/sas_switch_id/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile include/Makefile include/linux/Makefile include/sys/Makefile include/sys/fs/Makefile include/sys/fm/Makefile include/sys/fm/fs/Makefile scripts/Makefile scripts/zpios-profile/Makefile scripts/zpios-test/Makefile scripts/zpool-config/Makefile scripts/zpool-layout/Makefile scripts/common.sh zfs.spec zfs-modules.spec zfs-script-config.sh" +ac_config_files="$ac_config_files Makefile dracut/Makefile dracut/90zfs/Makefile udev/Makefile udev/rules.d/Makefile etc/Makefile etc/init.d/Makefile etc/zfs/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libspl/include/ia32/Makefile lib/libspl/include/ia32/sys/Makefile lib/libspl/include/rpc/Makefile lib/libspl/include/sys/Makefile lib/libspl/include/sys/sysevent/Makefile lib/libspl/include/sys/dktp/Makefile lib/libspl/include/util/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzfs/Makefile lib/libshare/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/ztest/Makefile cmd/zpios/Makefile cmd/mount_zfs/Makefile cmd/zpool_layout/Makefile cmd/zvol_id/Makefile cmd/zpool_id/Makefile cmd/sas_switch_id/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile include/Makefile include/linux/Makefile include/sys/Makefile include/sys/fs/Makefile include/sys/fm/Makefile include/sys/fm/fs/Makefile scripts/Makefile scripts/zpios-profile/Makefile scripts/zpios-test/Makefile scripts/zpool-config/Makefile scripts/zpool-layout/Makefile scripts/common.sh zfs.spec zfs-modules.spec PKGBUILD-zfs PKGBUILD-zfs-modules zfs-script-config.sh" cat >confcache <<\_ACEOF @@ -21474,9 +22680,9 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "dracut/Makefile") CONFIG_FILES="$CONFIG_FILES dracut/Makefile" ;; "dracut/90zfs/Makefile") CONFIG_FILES="$CONFIG_FILES dracut/90zfs/Makefile" ;; + "udev/Makefile") CONFIG_FILES="$CONFIG_FILES udev/Makefile" ;; + "udev/rules.d/Makefile") CONFIG_FILES="$CONFIG_FILES udev/rules.d/Makefile" ;; "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;; - "etc/udev/Makefile") CONFIG_FILES="$CONFIG_FILES etc/udev/Makefile" ;; - "etc/udev/rules.d/Makefile") CONFIG_FILES="$CONFIG_FILES etc/udev/rules.d/Makefile" ;; "etc/init.d/Makefile") CONFIG_FILES="$CONFIG_FILES etc/init.d/Makefile" ;; "etc/zfs/Makefile") CONFIG_FILES="$CONFIG_FILES etc/zfs/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; @@ -21535,6 +22741,8 @@ do "scripts/common.sh") CONFIG_FILES="$CONFIG_FILES scripts/common.sh" ;; "zfs.spec") CONFIG_FILES="$CONFIG_FILES zfs.spec" ;; "zfs-modules.spec") CONFIG_FILES="$CONFIG_FILES zfs-modules.spec" ;; + "PKGBUILD-zfs") CONFIG_FILES="$CONFIG_FILES PKGBUILD-zfs" ;; + "PKGBUILD-zfs-modules") CONFIG_FILES="$CONFIG_FILES PKGBUILD-zfs-modules" ;; "zfs-script-config.sh") CONFIG_FILES="$CONFIG_FILES zfs-script-config.sh" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5