diff --git a/Makefile.in b/Makefile.in index 5fd793e6..a7007989 100644 --- a/Makefile.in +++ b/Makefile.in @@ -845,20 +845,18 @@ uninstall-am: srpm-modules: - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" srpm-common +@CONFIG_KERNEL_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" srpm-common srpm-utils: - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" srpm-common +@CONFIG_USER_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" srpm-common srpm: srpm-modules srpm-utils rpm-modules: srpm-modules - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" rpm-common +@CONFIG_KERNEL_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" rpm-common rpm-utils: srpm-utils - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" rpm-common - -rpm-modules: srpm-modules +@CONFIG_USER_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" rpm-common rpm: rpm-modules rpm-utils @@ -936,22 +934,22 @@ deb-local: fi) deb-modules: deb-local rpm-modules - name=${PACKAGE}-modules; \ - version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ - release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ - arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ - pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \ - pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ - fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \ - $(RM) $$pkg1 $$pkg2 +@CONFIG_KERNEL_TRUE@ name=${PACKAGE}-modules; \ +@CONFIG_KERNEL_TRUE@ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ +@CONFIG_KERNEL_TRUE@ release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ +@CONFIG_KERNEL_TRUE@ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ +@CONFIG_KERNEL_TRUE@ pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \ +@CONFIG_KERNEL_TRUE@ pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ +@CONFIG_KERNEL_TRUE@ fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \ +@CONFIG_KERNEL_TRUE@ $(RM) $$pkg1 $$pkg2 deb-utils: deb-local rpm-utils - name=${PACKAGE}; \ - version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ - arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ - pkg1=$${name}-$${version}.$${arch}.rpm; \ - fakeroot $(ALIEN) --scripts --to-deb $$pkg1; \ - $(RM) $$pkg1 +@CONFIG_USER_TRUE@ name=${PACKAGE}; \ +@CONFIG_USER_TRUE@ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ +@CONFIG_USER_TRUE@ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ +@CONFIG_USER_TRUE@ pkg1=$${name}-$${version}.$${arch}.rpm; \ +@CONFIG_USER_TRUE@ fakeroot $(ALIEN) --scripts --to-deb $$pkg1; \ +@CONFIG_USER_TRUE@ $(RM) $$pkg1 deb: deb-modules deb-utils @@ -965,22 +963,22 @@ tgz-local: fi) tgz-modules: tgz-local rpm-modules - name=${PACKAGE}-modules; \ - version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ - release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ - arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ - pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \ - pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ - fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2; \ - $(RM) $$pkg1 $$pkg2 +@CONFIG_KERNEL_TRUE@ name=${PACKAGE}-modules; \ +@CONFIG_KERNEL_TRUE@ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ +@CONFIG_KERNEL_TRUE@ release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ +@CONFIG_KERNEL_TRUE@ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ +@CONFIG_KERNEL_TRUE@ pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \ +@CONFIG_KERNEL_TRUE@ pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ +@CONFIG_KERNEL_TRUE@ fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2; \ +@CONFIG_KERNEL_TRUE@ $(RM) $$pkg1 $$pkg2 tgz-utils: tgz-local rpm-utils - name=${PACKAGE}; \ - version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ - arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ - pkg1=$${name}-$${version}.$${arch}.rpm; \ - fakeroot $(ALIEN) --scripts --to-tgz $$pkg1; \ - $(RM) $$pkg1 +@CONFIG_USER_TRUE@ name=${PACKAGE}; \ +@CONFIG_USER_TRUE@ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ +@CONFIG_USER_TRUE@ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ +@CONFIG_USER_TRUE@ pkg1=$${name}-$${version}.$${arch}.rpm; \ +@CONFIG_USER_TRUE@ fakeroot $(ALIEN) --scripts --to-tgz $$pkg1; \ +@CONFIG_USER_TRUE@ $(RM) $$pkg1 tgz: tgz-modules tgz-utils @@ -993,10 +991,10 @@ sarch-utils: sarch: sarch-modules sarch-utils arch-modules: - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" arch-common +@CONFIG_KERNEL_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" arch-common arch-utils: - $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" arch-common +@CONFIG_USER_TRUE@ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" arch-common arch: arch-modules arch-utils diff --git a/README.markdown b/README.markdown index e0d8f76b..81535aa2 100644 --- a/README.markdown +++ b/README.markdown @@ -11,5 +11,11 @@ To build packages for your distribution: $ ./configure $ make pkg +To copy the kernel code inside your kernel source tree for builtin +compilation: + + $ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-... + $ ./copy-builtin /usr/src/linux-... + Full documentation for building, configuring, and using the SPL can be found at: diff --git a/config/arch.am b/config/arch.am index 591013af..da43fe73 100644 --- a/config/arch.am +++ b/config/arch.am @@ -13,10 +13,14 @@ sarch-utils: sarch: sarch-modules sarch-utils arch-modules: +if CONFIG_KERNEL $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" arch-common +endif arch-utils: +if CONFIG_USER $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" arch-common +endif arch: arch-modules arch-utils diff --git a/config/deb.am b/config/deb.am index ce84cfa9..75e31dfe 100644 --- a/config/deb.am +++ b/config/deb.am @@ -29,6 +29,7 @@ deb-local: fi) deb-modules: deb-local rpm-modules +if CONFIG_KERNEL name=${PACKAGE}-modules; \ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ @@ -37,13 +38,16 @@ deb-modules: deb-local rpm-modules pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \ $(RM) $$pkg1 $$pkg2 +endif deb-utils: deb-local rpm-utils +if CONFIG_USER name=${PACKAGE}; \ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ pkg1=$${name}-$${version}.$${arch}.rpm; \ fakeroot $(ALIEN) --scripts --to-deb $$pkg1; \ $(RM) $$pkg1 +endif deb: deb-modules deb-utils diff --git a/config/rpm.am b/config/rpm.am index 7dfe4fd9..a0a4ed14 100644 --- a/config/rpm.am +++ b/config/rpm.am @@ -7,20 +7,26 @@ ############################################################################### srpm-modules: +if CONFIG_KERNEL $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" srpm-common +endif srpm-utils: +if CONFIG_USER $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" srpm-common +endif srpm: srpm-modules srpm-utils rpm-modules: srpm-modules +if CONFIG_KERNEL $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" rpm-common +endif rpm-utils: srpm-utils +if CONFIG_USER $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" rpm-common - -rpm-modules: srpm-modules +endif rpm: rpm-modules rpm-utils diff --git a/config/spl-build.m4 b/config/spl-build.m4 index c28ad0bf..7ec81e71 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -22,6 +22,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [ SPL_AC_DEBUG_LOG SPL_AC_DEBUG_KMEM SPL_AC_DEBUG_KMEM_TRACKING + SPL_AC_TEST_MODULE SPL_AC_ATOMIC_SPINLOCK SPL_AC_TYPE_ATOMIC64_CMPXCHG SPL_AC_TYPE_ATOMIC64_XCHG @@ -94,7 +95,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [ AC_DEFUN([SPL_AC_MODULE_SYMVERS], [ modpost=$LINUX/scripts/Makefile.modpost AC_MSG_CHECKING([kernel file name for module symbols]) - if test -f "$modpost"; then + if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then if grep -q Modules.symvers $modpost; then LINUX_SYMBOLS=Modules.symvers else @@ -136,7 +137,7 @@ AC_DEFUN([SPL_AC_KERNEL], [ sourcelink=$(readlink -f "$headersdir") else sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) fi @@ -196,7 +197,13 @@ AC_DEFUN([SPL_AC_KERNEL], [ fi else AC_MSG_RESULT([Not found]) - AC_MSG_ERROR([*** Cannot find UTS_RELEASE definition.]) + if test "x$enable_linux_builtin" != xyes; then + AC_MSG_ERROR([*** Cannot find UTS_RELEASE definition.]) + else + AC_MSG_ERROR([ + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree.]) + fi fi AC_MSG_RESULT([$kernsrcver]) @@ -439,34 +446,38 @@ AC_DEFUN([SPL_AC_LICENSE], [ ]) AC_DEFUN([SPL_AC_CONFIG], [ - SPL_CONFIG=all - AC_ARG_WITH([config], - AS_HELP_STRING([--with-config=CONFIG], - [Config file 'kernel|user|all|srpm']), - [SPL_CONFIG="$withval"]) - - AC_MSG_CHECKING([spl config]) - AC_MSG_RESULT([$SPL_CONFIG]); - AC_SUBST(SPL_CONFIG) - - case "$SPL_CONFIG" in - kernel) SPL_AC_CONFIG_KERNEL ;; - user) SPL_AC_CONFIG_USER ;; - all) SPL_AC_CONFIG_KERNEL - SPL_AC_CONFIG_USER ;; + SPL_CONFIG=all + AC_ARG_WITH([config], + AS_HELP_STRING([--with-config=CONFIG], + [Config file 'kernel|user|all|srpm']), + [SPL_CONFIG="$withval"]) + AC_ARG_ENABLE([linux-builtin], + [AC_HELP_STRING([--enable-linux-builtin], + [Configure for builtin in-tree kernel modules @<:@default=no@:>@])], + [], + [enable_linux_builtin=no]) + + AC_MSG_CHECKING([spl config]) + AC_MSG_RESULT([$SPL_CONFIG]); + AC_SUBST(SPL_CONFIG) + + case "$SPL_CONFIG" in + kernel) SPL_AC_CONFIG_KERNEL ;; + user) SPL_AC_CONFIG_USER ;; + all) SPL_AC_CONFIG_KERNEL + SPL_AC_CONFIG_USER ;; srpm) ;; - *) - AC_MSG_RESULT([Error!]) - AC_MSG_ERROR([Bad value "$SPL_CONFIG" for --with-config, - user kernel|user|all|srpm]) ;; - esac + *) + AC_MSG_RESULT([Error!]) + AC_MSG_ERROR([Bad value "$SPL_CONFIG" for --with-config, + user kernel|user|all|srpm]) ;; + esac - AM_CONDITIONAL([CONFIG_USER], - [test "$SPL_CONFIG" = user] || - [test "$SPL_CONFIG" = all]) - AM_CONDITIONAL([CONFIG_KERNEL], - [test "$SPL_CONFIG" = kernel] || - [test "$SPL_CONFIG" = all]) + AM_CONDITIONAL([CONFIG_USER], + [test "$SPL_CONFIG" = user -o "$SPL_CONFIG" = all]) + AM_CONDITIONAL([CONFIG_KERNEL], + [test "$SPL_CONFIG" = kernel -o "$SPL_CONFIG" = all] && + [test "x$enable_linux_builtin" != xyes ]) ]) dnl # @@ -620,12 +631,14 @@ dnl # SPL_LINUX_COMPILE_IFELSE / like AC_COMPILE_IFELSE dnl # AC_DEFUN([SPL_LINUX_COMPILE_IFELSE], [ m4_ifvaln([$1], [SPL_LINUX_CONFTEST([$1])]) - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage AS_IF( - [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], - [$4], - [_AC_MSG_LOG_CONFTEST m4_ifvaln([$5],[$5])] + [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag) >/dev/null && AC_TRY_COMMAND([$3])], + [$4], + [_AC_MSG_LOG_CONFTEST m4_ifvaln([$5],[$5])] ) rm -Rf build ]) @@ -665,8 +678,7 @@ dnl # dnl # SPL_CHECK_SYMBOL_EXPORT dnl # check symbol exported or not dnl # -AC_DEFUN([SPL_CHECK_SYMBOL_EXPORT], - [AC_MSG_CHECKING([whether symbol $1 is exported]) +AC_DEFUN([SPL_CHECK_SYMBOL_EXPORT], [ grep -q -E '[[[:space:]]]$1[[[:space:]]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -676,24 +688,42 @@ AC_DEFUN([SPL_CHECK_SYMBOL_EXPORT], grep -q -E "EXPORT_SYMBOL.*($1)" \ "$LINUX_OBJ/$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 - AC_MSG_RESULT([no]) + if test $export -eq 0; then : $4 - else - AC_MSG_RESULT([yes]) + else : $3 fi - else - AC_MSG_RESULT([yes]) + else : $3 fi ]) +dnl # +dnl # SPL_LINUX_TRY_COMPILE_SYMBOL +dnl # like SPL_LINUX_TRY_COMPILE, except SPL_CHECK_SYMBOL_EXPORT +dnl # is called if not compiling for builtin +dnl # +AC_DEFUN([SPL_LINUX_TRY_COMPILE_SYMBOL], [ + SPL_LINUX_TRY_COMPILE([$1], [$2], [rc=0], [rc=1]) + if test $rc -ne 0; then : + $6 + else + if test "x$enable_linux_builtin" != xyes; then + SPL_CHECK_SYMBOL_EXPORT([$3], [$4], [rc=0], [rc=1]) + fi + if test $rc -ne 0; then : + $6 + else : + $5 + fi + fi +]) + dnl # dnl # SPL_CHECK_SYMBOL_HEADER dnl # check if a symbol prototype is defined in listed headers. @@ -704,10 +734,10 @@ AC_DEFUN([SPL_CHECK_SYMBOL_HEADER], [ for file in $3; do grep -q "$2" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - header=1 - break; - fi + if test $rc -eq 0; then + header=1 + break; + fi done if test $header -eq 0; then AC_MSG_RESULT([no]) @@ -738,6 +768,25 @@ AC_DEFUN([SPL_CHECK_HEADER], ]) ]) +dnl # +dnl # Basic toolchain sanity check. +dnl # +AC_DEFUN([SPL_AC_TEST_MODULE], + [AC_MSG_CHECKING([whether modules can be built]) + SPL_LINUX_TRY_COMPILE([],[],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + if test "x$enable_linux_builtin" != xyes; then + AC_MSG_ERROR([*** Unable to build an empty module.]) + else + AC_MSG_ERROR([ + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree.]) + fi + ]) +]) + dnl # dnl # Use the atomic implemenation based on global spinlocks. This dnl # should only be needed by 32-bit kernels which do not provide @@ -959,10 +1008,18 @@ AC_DEFUN([SPL_AC_PATH_IN_NAMEIDATA], dnl # dnl # Custom SPL patch may export this system it is not required dnl # -AC_DEFUN([SPL_AC_TASK_CURR], [ - SPL_CHECK_SYMBOL_EXPORT([task_curr], [kernel/sched.c], - [AC_DEFINE(HAVE_TASK_CURR, 1, [task_curr() exported])], - []) +AC_DEFUN([SPL_AC_TASK_CURR], + [AC_MSG_CHECKING([whether task_curr() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + task_curr(NULL); + ], [task_curr], [kernel/sched.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_TASK_CURR, 1, [task_curr() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1028,13 +1085,15 @@ dnl # 2.6.18 API change, check whether device_create() is available. dnl # Device_create() was introduced in 2.6.18 and depricated dnl # class_device_create() which was fully removed in 2.6.26. dnl # -AC_DEFUN([SPL_AC_DEVICE_CREATE], [ - SPL_CHECK_SYMBOL_EXPORT( - [device_create], - [drivers/base/core.c], - [AC_DEFINE(HAVE_DEVICE_CREATE, 1, - [device_create() is available])], - []) +AC_DEFUN([SPL_AC_DEVICE_CREATE], + [AC_MSG_CHECKING([whether device_create() is available]) + SPL_CHECK_SYMBOL_EXPORT([device_create], [drivers/base/core.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DEVICE_CREATE, 1, + [device_create() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1064,25 +1123,37 @@ dnl # 2.6.13 API change, check whether class_device_create() is available. dnl # Class_device_create() was introduced in 2.6.13 and depricated dnl # class_simple_device_add() which was fully removed in 2.6.13. dnl # -AC_DEFUN([SPL_AC_CLASS_DEVICE_CREATE], [ - SPL_CHECK_SYMBOL_EXPORT( - [class_device_create], - [drivers/base/class.c], - [AC_DEFINE(HAVE_CLASS_DEVICE_CREATE, 1, - [class_device_create() is available])], - []) +AC_DEFUN([SPL_AC_CLASS_DEVICE_CREATE], + [AC_MSG_CHECKING([whether class_device_create() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + class_device_create(NULL, NULL, 0, NULL, NULL); + ], [class_device_create], [drivers/base/class.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_CLASS_DEVICE_CREATE, 1, + [class_device_create() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # dnl # 2.6.26 API change, set_normalized_timespec() is exported. dnl # -AC_DEFUN([SPL_AC_SET_NORMALIZED_TIMESPEC_EXPORT], [ - SPL_CHECK_SYMBOL_EXPORT( - [set_normalized_timespec], - [kernel/time.c], - [AC_DEFINE(HAVE_SET_NORMALIZED_TIMESPEC_EXPORT, 1, - [set_normalized_timespec() is available as export])], - []) +AC_DEFUN([SPL_AC_SET_NORMALIZED_TIMESPEC_EXPORT], + [AC_MSG_CHECKING([whether set_normalized_timespec() is available as export]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + set_normalized_timespec(NULL, 0, 0); + ], [set_normalized_timespec], [kernel/time.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SET_NORMALIZED_TIMESPEC_EXPORT, 1, + [set_normalized_timespec() is available as export]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1232,13 +1303,19 @@ dnl # 2.6.9 API change, dnl # check whether 'monotonic_clock()' is available it may dnl # be available for some archs but not others. dnl # -AC_DEFUN([SPL_AC_MONOTONIC_CLOCK], [ - SPL_CHECK_SYMBOL_EXPORT( - [monotonic_clock], - [], - [AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, - [monotonic_clock() is available])], - []) +AC_DEFUN([SPL_AC_MONOTONIC_CLOCK], + [AC_MSG_CHECKING([whether monotonic_clock() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + monotonic_clock(); + ], [monotonic_clock], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, + [monotonic_clock() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1352,13 +1429,19 @@ dnl # dnl # 2.6.18 API change, dnl # kallsyms_lookup_name no longer exported dnl # -AC_DEFUN([SPL_AC_KALLSYMS_LOOKUP_NAME], [ - SPL_CHECK_SYMBOL_EXPORT( - [kallsyms_lookup_name], - [], - [AC_DEFINE(HAVE_KALLSYMS_LOOKUP_NAME, 1, - [kallsyms_lookup_name() is available])], - []) +AC_DEFUN([SPL_AC_KALLSYMS_LOOKUP_NAME], + [AC_MSG_CHECKING([whether kallsyms_lookup_name() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + kallsyms_lookup_name(NULL); + ], [kallsyms_lookup_name], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_KALLSYMS_LOOKUP_NAME, 1, + [kallsyms_lookup_name() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1368,13 +1451,15 @@ dnl # custom kernel with the *-spl-export-symbols.patch which will export dnl # these symbols for use. If your already rolling a custom kernel for dnl # your environment this is recommended. dnl # -AC_DEFUN([SPL_AC_GET_VMALLOC_INFO], [ - SPL_CHECK_SYMBOL_EXPORT( - [get_vmalloc_info], - [], - [AC_DEFINE(HAVE_GET_VMALLOC_INFO, 1, - [get_vmalloc_info() is available])], - []) +AC_DEFUN([SPL_AC_GET_VMALLOC_INFO], + [AC_MSG_CHECKING([whether get_vmalloc_info() is available]) + SPL_CHECK_SYMBOL_EXPORT([get_vmalloc_info], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GET_VMALLOC_INFO, 1, + [get_vmalloc_info() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1396,7 +1481,7 @@ AC_DEFUN([SPL_AC_PGDAT_HELPERS], [ rc=$? if test $rc -eq 0; then AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_PGDAT_HELPERS, 1, [pgdat helpers are available]) + AC_DEFINE(HAVE_PGDAT_HELPERS, 1, [pgdat helpers are available]) else AC_MSG_RESULT([no]) fi @@ -1409,13 +1494,19 @@ dnl # custom kernel with the *-spl-export-symbols.patch which will export dnl # these symbols for use. If your already rolling a custom kernel for dnl # your environment this is recommended. dnl # -AC_DEFUN([SPL_AC_FIRST_ONLINE_PGDAT], [ - SPL_CHECK_SYMBOL_EXPORT( - [first_online_pgdat], - [], - [AC_DEFINE(HAVE_FIRST_ONLINE_PGDAT, 1, - [first_online_pgdat() is available])], - []) +AC_DEFUN([SPL_AC_FIRST_ONLINE_PGDAT], + [AC_MSG_CHECKING([whether first_online_pgdat() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + first_online_pgdat(); + ], [first_online_pgdat], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_FIRST_ONLINE_PGDAT, 1, + [first_online_pgdat() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1425,13 +1516,19 @@ dnl # custom kernel with the *-spl-export-symbols.patch which will export dnl # these symbols for use. If your already rolling a custom kernel for dnl # your environment this is recommended. dnl # -AC_DEFUN([SPL_AC_NEXT_ONLINE_PGDAT], [ - SPL_CHECK_SYMBOL_EXPORT( - [next_online_pgdat], - [], - [AC_DEFINE(HAVE_NEXT_ONLINE_PGDAT, 1, - [next_online_pgdat() is available])], - []) +AC_DEFUN([SPL_AC_NEXT_ONLINE_PGDAT], + [AC_MSG_CHECKING([whether next_online_pgdat() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + next_online_pgdat(NULL); + ], [next_online_pgdat], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NEXT_ONLINE_PGDAT, 1, + [next_online_pgdat() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1441,26 +1538,35 @@ dnl # custom kernel with the *-spl-export-symbols.patch which will export dnl # these symbols for use. If your already rolling a custom kernel for dnl # your environment this is recommended. dnl # -AC_DEFUN([SPL_AC_NEXT_ZONE], [ - SPL_CHECK_SYMBOL_EXPORT( - [next_zone], - [], - [AC_DEFINE(HAVE_NEXT_ZONE, 1, - [next_zone() is available])], - []) +AC_DEFUN([SPL_AC_NEXT_ZONE], + [AC_MSG_CHECKING([whether next_zone() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + next_zone(NULL); + ], [next_zone], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NEXT_ZONE, 1, [next_zone() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # dnl # 2.6.17 API change, dnl # See SPL_AC_PGDAT_HELPERS for details. dnl # -AC_DEFUN([SPL_AC_PGDAT_LIST], [ - SPL_CHECK_SYMBOL_EXPORT( - [pgdat_list], - [], - [AC_DEFINE(HAVE_PGDAT_LIST, 1, - [pgdat_list is available])], - []) +AC_DEFUN([SPL_AC_PGDAT_LIST], + [AC_MSG_CHECKING([whether pgdat_list is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + pg_data_t *tmp = pgdat_list; + ], [], [pgdat_list], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PGDAT_LIST, 1, [pgdat_list is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1652,12 +1758,18 @@ AC_DEFUN([SPL_AC_GET_ZONE_COUNTS], [ AC_DEFINE(NEED_GET_ZONE_COUNTS, 1, [get_zone_counts() is needed]) - SPL_CHECK_SYMBOL_EXPORT( - [get_zone_counts], - [], - [AC_DEFINE(HAVE_GET_ZONE_COUNTS, 1, - [get_zone_counts() is available])], - []) + AC_MSG_CHECKING([whether get_zone_counts() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + get_zone_counts(NULL, NULL, NULL); + ], [get_zone_counts], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GET_ZONE_COUNTS, 1, + [get_zone_counts() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) ]) @@ -1665,25 +1777,37 @@ dnl # dnl # 2.6.27 API change, dnl # The user_path_dir() replaces __user_walk() dnl # -AC_DEFUN([SPL_AC_USER_PATH_DIR], [ - SPL_CHECK_SYMBOL_EXPORT( - [user_path_at], - [], - [AC_DEFINE(HAVE_USER_PATH_DIR, 1, - [user_path_dir() is available])], - []) +AC_DEFUN([SPL_AC_USER_PATH_DIR], + [AC_MSG_CHECKING([whether user_path_dir() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + #include + ], [ + user_path_dir(NULL, NULL); + ], [user_path_at], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_USER_PATH_DIR, 1, [user_path_dir() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # dnl # Symbol available in RHEL kernels not in stock kernels. dnl # -AC_DEFUN([SPL_AC_SET_FS_PWD], [ - SPL_CHECK_SYMBOL_EXPORT( - [set_fs_pwd], - [], - [AC_DEFINE(HAVE_SET_FS_PWD, 1, - [set_fs_pwd() is available])], - []) +AC_DEFUN([SPL_AC_SET_FS_PWD], + [AC_MSG_CHECKING([whether set_fs_pwd() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + #include + ], [ + (void) set_fs_pwd; + ], [set_fs_pwd], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SET_FS_PWD, 1, [set_fs_pwd() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1791,26 +1915,37 @@ AC_DEFUN([SPL_AC_CRED_STRUCT], [ dnl # dnl # Custom SPL patch may export this symbol. dnl # -AC_DEFUN([SPL_AC_GROUPS_SEARCH], [ - SPL_CHECK_SYMBOL_EXPORT( - [groups_search], - [], - [AC_DEFINE(HAVE_GROUPS_SEARCH, 1, - [groups_search() is available])], - []) +AC_DEFUN([SPL_AC_GROUPS_SEARCH], + [AC_MSG_CHECKING([whether groups_search() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + groups_search(NULL, 0); + ], [groups_search], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GROUPS_SEARCH, 1, [groups_search() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # dnl # 2.6.x API change, dnl # __put_task_struct() was exported in RHEL5 but unavailable elsewhere. dnl # -AC_DEFUN([SPL_AC_PUT_TASK_STRUCT], [ - SPL_CHECK_SYMBOL_EXPORT( - [__put_task_struct], - [], - [AC_DEFINE(HAVE_PUT_TASK_STRUCT, 1, - [__put_task_struct() is available])], - []) +AC_DEFUN([SPL_AC_PUT_TASK_STRUCT], + [AC_MSG_CHECKING([whether __put_task_struct() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + __put_task_struct(NULL); + ], [__put_task_struct], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PUT_TASK_STRUCT, 1, + [__put_task_struct() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1836,25 +1971,36 @@ dnl # dnl # 2.6.x API change, dnl # kvasprintf() function added. dnl # -AC_DEFUN([SPL_AC_KVASPRINTF], [ - SPL_CHECK_SYMBOL_EXPORT( - [kvasprintf], - [], - [AC_DEFINE(HAVE_KVASPRINTF, 1, - [kvasprintf() is available])], - []) +AC_DEFUN([SPL_AC_KVASPRINTF], + [AC_MSG_CHECKING([whether kvasprintf() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + kvasprintf(0, NULL, *((va_list*)NULL)); + ], [kvasprintf], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_KVASPRINTF, 1, [kvasprintf() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # dnl # 2.6.29 API change, dnl # vfs_fsync() funcation added, prior to this use file_fsync(). dnl # -AC_DEFUN([SPL_AC_VFS_FSYNC], [ - SPL_CHECK_SYMBOL_EXPORT( - [vfs_fsync], - [fs/sync.c], - [AC_DEFINE(HAVE_VFS_FSYNC, 1, [vfs_fsync() is available])], - []) +AC_DEFUN([SPL_AC_VFS_FSYNC], + [AC_MSG_CHECKING([whether vfs_fsync() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + (void) vfs_fsync; + ], [vfs_fsync], [fs/sync.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_VFS_FSYNC, 1, [vfs_fsync() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1882,13 +2028,18 @@ dnl # condition. The fixed version is exported as a symbol. The race dnl # condition is fixed by acquiring sem->wait_lock, so we must not dnl # call that version while holding sem->wait_lock. dnl # -AC_DEFUN([SPL_AC_EXPORTED_RWSEM_IS_LOCKED], [ - SPL_CHECK_SYMBOL_EXPORT( - [rwsem_is_locked], - [lib/rwsem-spinlock.c], - [AC_DEFINE(RWSEM_IS_LOCKED_TAKES_WAIT_LOCK, 1, - [rwsem_is_locked() acquires sem->wait_lock])], - []) +AC_DEFUN([SPL_AC_EXPORTED_RWSEM_IS_LOCKED], + [AC_MSG_CHECKING([whether rwsem_is_locked() acquires sem->wait_lock]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + int rwsem_is_locked(struct rw_semaphore *sem) { return 0; } + ], [], [rwsem_is_locked], [lib/rwsem-spinlock.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(RWSEM_IS_LOCKED_TAKES_WAIT_LOCK, 1, + [rwsem_is_locked() acquires sem->wait_lock]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1905,18 +2056,31 @@ dnl # of these functions are exported invalidate_inodes() can be dnl # safely used. dnl # AC_DEFUN([SPL_AC_KERNEL_INVALIDATE_INODES], [ - SPL_CHECK_SYMBOL_EXPORT( - [invalidate_inodes], - [], - [AC_DEFINE(HAVE_INVALIDATE_INODES, 1, - [invalidate_inodes() is available])], - []) - SPL_CHECK_SYMBOL_EXPORT( - [invalidate_inodes_check], - [], - [AC_DEFINE(HAVE_INVALIDATE_INODES_CHECK, 1, - [invalidate_inodes_check() is available])], - []) + AC_MSG_CHECKING([whether invalidate_inodes() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + invalidate_inodes; + ], [invalidate_inodes], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_INVALIDATE_INODES, 1, + [invalidate_inodes() is available]) + ], [ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether invalidate_inodes_check() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + invalidate_inodes_check(NULL, 0); + ], [invalidate_inodes_check], [], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_INVALIDATE_INODES_CHECK, 1, + [invalidate_inodes_check() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1955,13 +2119,19 @@ dnl # There currently exists no exposed API to partially shrink the dcache. dnl # The expected mechanism to shrink the cache is a registered shrinker dnl # which is called during memory pressure. dnl # -AC_DEFUN([SPL_AC_SHRINK_DCACHE_MEMORY], [ - SPL_CHECK_SYMBOL_EXPORT( - [shrink_dcache_memory], - [fs/dcache.c], - [AC_DEFINE(HAVE_SHRINK_DCACHE_MEMORY, 1, - [shrink_dcache_memory() is available])], - []) +AC_DEFUN([SPL_AC_SHRINK_DCACHE_MEMORY], + [AC_MSG_CHECKING([whether shrink_dcache_memory() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + shrink_dcache_memory(0, 0); + ], [shrink_dcache_memory], [fs/dcache.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHRINK_DCACHE_MEMORY, 1, + [shrink_dcache_memory() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -1970,13 +2140,19 @@ dnl # There currently exists no exposed API to partially shrink the icache. dnl # The expected mechanism to shrink the cache is a registered shrinker dnl # which is called during memory pressure. dnl # -AC_DEFUN([SPL_AC_SHRINK_ICACHE_MEMORY], [ - SPL_CHECK_SYMBOL_EXPORT( - [shrink_icache_memory], - [fs/inode.c], - [AC_DEFINE(HAVE_SHRINK_ICACHE_MEMORY, 1, - [shrink_icache_memory() is available])], - []) +AC_DEFUN([SPL_AC_SHRINK_ICACHE_MEMORY], + [AC_MSG_CHECKING([whether shrink_icache_memory() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + shrink_icache_memory(0, 0); + ], [shrink_icache_memory], [fs/inode.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHRINK_ICACHE_MEMORY, 1, + [shrink_icache_memory() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # @@ -2002,13 +2178,19 @@ dnl # The kern_path_parent() symbol is no longer exported by the kernel. dnl # However, it remains the prefered interface and since we still have dnl # access to the prototype we dynamically lookup the required address. dnl # -AC_DEFUN([SPL_AC_KERN_PATH_PARENT_SYMBOL], [ - SPL_CHECK_SYMBOL_EXPORT( - [kern_path_parent], - [fs/namei.c], - [AC_DEFINE(HAVE_KERN_PATH_PARENT_SYMBOL, 1, - [kern_path_parent() is available])], - []) +AC_DEFUN([SPL_AC_KERN_PATH_PARENT_SYMBOL], + [AC_MSG_CHECKING([whether kern_path_parent() is available]) + SPL_LINUX_TRY_COMPILE_SYMBOL([ + #include + ], [ + kern_path_parent(NULL, NULL); + ], [kern_path_parent], [fs/namei.c], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_KERN_PATH_PARENT_SYMBOL, 1, + [kern_path_parent() is available]) + ], [ + AC_MSG_RESULT(no) + ]) ]) dnl # diff --git a/config/tgz.am b/config/tgz.am index bbc204a6..1aaf4dde 100644 --- a/config/tgz.am +++ b/config/tgz.am @@ -22,6 +22,7 @@ tgz-local: fi) tgz-modules: tgz-local rpm-modules +if CONFIG_KERNEL name=${PACKAGE}-modules; \ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \ @@ -30,13 +31,16 @@ tgz-modules: tgz-local rpm-modules pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \ fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2; \ $(RM) $$pkg1 $$pkg2 +endif tgz-utils: tgz-local rpm-utils +if CONFIG_USER name=${PACKAGE}; \ version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \ arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \ pkg1=$${name}-$${version}.$${arch}.rpm; \ fakeroot $(ALIEN) --scripts --to-tgz $$pkg1; \ $(RM) $$pkg1 +endif tgz: tgz-modules tgz-utils diff --git a/configure b/configure index 3f22988e..1ca8e847 100755 --- a/configure +++ b/configure @@ -962,6 +962,7 @@ enable_fast_install with_gnu_ld enable_libtool_lock with_config +enable_linux_builtin with_linux with_linux_obj enable_debug @@ -1619,6 +1620,8 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --enable-linux-builtin Configure for builtin in-tree kernel modules + [default=no] --enable-debug Enable generic debug support [default=no] --enable-debug-log Enable basic debug logging [default=yes] --enable-debug-kmem Enable basic kmem accounting [default=yes] @@ -4789,13 +4792,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:4792: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4795: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4795: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4798: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4798: output\"" >&5) + (eval echo "\"\$as_me:4801: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6001,7 +6004,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6004 "configure"' > conftest.$ac_ext + echo '#line 6007 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7854,11 +7857,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:7857: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7860: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7861: \$? = $ac_status" >&5 + echo "$as_me:7864: \$? = $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. @@ -8193,11 +8196,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:8196: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8199: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8200: \$? = $ac_status" >&5 + echo "$as_me:8203: \$? = $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. @@ -8298,11 +8301,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:8301: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8304: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8305: \$? = $ac_status" >&5 + echo "$as_me:8308: \$? = $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 @@ -8353,11 +8356,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:8356: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8359: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8360: \$? = $ac_status" >&5 + echo "$as_me:8363: \$? = $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 @@ -11156,7 +11159,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11159 "configure" +#line 11162 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11252,7 +11255,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11255 "configure" +#line 11258 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11720,22 +11723,29 @@ fi - SPL_CONFIG=all + SPL_CONFIG=all # Check whether --with-config was given. if test "${with_config+set}" = set; then withval=$with_config; SPL_CONFIG="$withval" fi + # Check whether --enable-linux-builtin was given. +if test "${enable_linux_builtin+set}" = set; then + enableval=$enable_linux_builtin; +else + enable_linux_builtin=no +fi - { $as_echo "$as_me:$LINENO: checking spl config" >&5 + + { $as_echo "$as_me:$LINENO: checking spl config" >&5 $as_echo_n "checking spl config... " >&6; } - { $as_echo "$as_me:$LINENO: result: $SPL_CONFIG" >&5 + { $as_echo "$as_me:$LINENO: result: $SPL_CONFIG" >&5 $as_echo "$SPL_CONFIG" >&6; }; - case "$SPL_CONFIG" in - kernel) + case "$SPL_CONFIG" in + kernel) # Check whether --with-linux was given. @@ -11762,7 +11772,7 @@ $as_echo_n "checking kernel source directory... " >&6; } sourcelink=$(readlink -f "$headersdir") else sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) fi @@ -11836,9 +11846,19 @@ $as_echo "$as_me: error: *** Cannot determine kernel version." >&2;} 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 + if test "x$enable_linux_builtin" != xyes; then + { { $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; }; } + else + { { $as_echo "$as_me:$LINENO: error: + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree." >&5 +$as_echo "$as_me: error: + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree." >&2;} + { (exit 1); exit 1; }; } + fi fi { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 @@ -11856,7 +11876,7 @@ $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 test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then if grep -q Modules.symvers $modpost; then LINUX_SYMBOLS=Modules.symvers else @@ -11914,9 +11934,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12091,6 +12113,76 @@ $as_echo_n "checking whether detailed kmem tracking is enabled... " >&6; } { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem_tracking" >&5 $as_echo "$enable_debug_kmem_tracking" >&6; } + { $as_echo "$as_me:$LINENO: checking whether modules can be built" >&5 +$as_echo_n "checking whether modules can be built... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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; } + +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; } + if test "x$enable_linux_builtin" != xyes; then + { { $as_echo "$as_me:$LINENO: error: *** Unable to build an empty module." >&5 +$as_echo "$as_me: error: *** Unable to build an empty module." >&2;} + { (exit 1); exit 1; }; } + else + { { $as_echo "$as_me:$LINENO: error: + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree." >&5 +$as_echo "$as_me: error: + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree." >&2;} + { (exit 1); exit 1; }; } + fi + + + +fi + + rm -Rf build + + + # Check whether --enable-atomic-spinlocks was given. if test "${enable_atomic_spinlocks+set}" = set; then @@ -12125,9 +12217,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12240,9 +12334,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12304,9 +12400,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12368,9 +12466,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12433,9 +12533,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12497,9 +12599,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12562,9 +12666,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12634,9 +12740,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12702,9 +12810,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12739,9 +12849,69 @@ fi + { $as_echo "$as_me:$LINENO: checking whether task_curr() is available" >&5 +$as_echo_n "checking whether task_curr() 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) +{ + + task_curr(NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol task_curr is exported" >&5 -$as_echo_n "checking whether symbol task_curr is exported... " >&6; } grep -q -E '[[:space:]]task_curr[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -12751,25 +12921,28 @@ $as_echo_n "checking whether symbol task_curr is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(task_curr)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_TASK_CURR 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12777,6 +12950,8 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TASK_CURR 1 _ACEOF + + fi fi @@ -12809,9 +12984,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12875,9 +13052,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12939,9 +13118,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12976,9 +13157,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether device_create() is available" >&5 +$as_echo_n "checking whether device_create() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol device_create is exported" >&5 -$as_echo_n "checking whether symbol device_create is exported... " >&6; } grep -q -E '[[:space:]]device_create[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -12988,25 +13169,29 @@ $as_echo_n "checking whether symbol device_create is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(device_create)" \ "$LINUX_OBJ/$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 + 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 + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_DEVICE_CREATE 1 _ACEOF + fi - else + else : + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -13014,6 +13199,7 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_DEVICE_CREATE 1 _ACEOF + fi @@ -13047,9 +13233,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13085,91 +13273,115 @@ fi EXTRA_KCFLAGS="$tmp_flags" + { $as_echo "$as_me:$LINENO: checking whether class_device_create() is available" >&5 +$as_echo_n "checking whether class_device_create() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol class_device_create is exported" >&5 -$as_echo_n "checking whether symbol class_device_create is exported... " >&6; } - grep -q -E '[[:space:]]class_device_create[[:space:]]' \ - $LINUX_OBJ/Module*.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in drivers/base/class.c; do - grep -q -E "EXPORT_SYMBOL.*(class_device_create)" \ - "$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_CLASS_DEVICE_CREATE 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_CLASS_DEVICE_CREATE 1 + #include + +int +main (void) +{ + + class_device_create(NULL, NULL, 0, NULL, NULL); + + ; + return 0; +} + _ACEOF - fi + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 +fi - { $as_echo "$as_me:$LINENO: checking whether symbol set_normalized_timespec is exported" >&5 -$as_echo_n "checking whether symbol set_normalized_timespec is exported... " >&6; } - grep -q -E '[[:space:]]set_normalized_timespec[[:space:]]' \ + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]class_device_create[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in kernel/time.c; do - grep -q -E "EXPORT_SYMBOL.*(set_normalized_timespec)" \ + for file in drivers/base/class.c; do + grep -q -E "EXPORT_SYMBOL.*(class_device_create)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_EXPORT 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_EXPORT 1 +#define HAVE_CLASS_DEVICE_CREATE 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is available as export" >&5 +$as_echo_n "checking whether set_normalized_timespec() is available as export... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is an inline" >&5 -$as_echo_n "checking whether set_normalized_timespec() is an inline... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -13181,13 +13393,13 @@ cat >>conftest.$ac_ext <<_ACEOF #include - void set_normalized_timespec(struct timespec *ts, - time_t sec, long nsec) { } int main (void) { + set_normalized_timespec(NULL, 0, 0); + ; return 0; } @@ -13195,9 +13407,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13208,22 +13422,128 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - + rc=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_INLINE 1 -_ACEOF - - + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]set_normalized_timespec[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in kernel/time.c; do + grep -q -E "EXPORT_SYMBOL.*(set_normalized_timespec)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_SET_NORMALIZED_TIMESPEC_EXPORT 1 +_ACEOF + + + fi + fi + + + + { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is an inline" >&5 +$as_echo_n "checking whether set_normalized_timespec() is an inline... " >&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 + void set_normalized_timespec(struct timespec *ts, + time_t sec, long nsec) { } + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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" >&5 +$as_echo "no" >&6; } + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SET_NORMALIZED_TIMESPEC_INLINE 1 +_ACEOF + + fi @@ -13263,9 +13583,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13329,9 +13651,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13394,9 +13718,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13468,9 +13794,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13536,9 +13864,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13601,9 +13931,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13670,9 +14002,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13707,9 +14041,69 @@ fi + { $as_echo "$as_me:$LINENO: checking whether monotonic_clock() is available" >&5 +$as_echo_n "checking whether monotonic_clock() 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) +{ + + monotonic_clock(); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol monotonic_clock is exported" >&5 -$as_echo_n "checking whether symbol monotonic_clock is exported... " >&6; } grep -q -E '[[:space:]]monotonic_clock[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -13719,25 +14113,28 @@ $as_echo_n "checking whether symbol monotonic_clock is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(monotonic_clock)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_MONOTONIC_CLOCK 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -13745,6 +14142,8 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MONOTONIC_CLOCK 1 _ACEOF + + fi fi @@ -13778,9 +14177,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13844,9 +14245,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13912,9 +14315,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13980,9 +14385,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14045,9 +14452,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14082,9 +14491,69 @@ fi + { $as_echo "$as_me:$LINENO: checking whether kallsyms_lookup_name() is available" >&5 +$as_echo_n "checking whether kallsyms_lookup_name() 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) +{ + + kallsyms_lookup_name(NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol kallsyms_lookup_name is exported" >&5 -$as_echo_n "checking whether symbol kallsyms_lookup_name is exported... " >&6; } grep -q -E '[[:space:]]kallsyms_lookup_name[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -14094,25 +14563,28 @@ $as_echo_n "checking whether symbol kallsyms_lookup_name is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(kallsyms_lookup_name)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_KALLSYMS_LOOKUP_NAME 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14120,12 +14592,14 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_KALLSYMS_LOOKUP_NAME 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether get_vmalloc_info() is available" >&5 +$as_echo_n "checking whether get_vmalloc_info() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol get_vmalloc_info is exported" >&5 -$as_echo_n "checking whether symbol get_vmalloc_info is exported... " >&6; } grep -q -E '[[:space:]]get_vmalloc_info[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -14135,25 +14609,29 @@ $as_echo_n "checking whether symbol get_vmalloc_info is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(get_vmalloc_info)" \ "$LINUX_OBJ/$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 + 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 + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_GET_VMALLOC_INFO 1 _ACEOF + fi - else + else : + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14161,6 +14639,7 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_GET_VMALLOC_INFO 1 _ACEOF + fi @@ -14182,173 +14661,115 @@ _ACEOF $as_echo "no" >&6; } fi + { $as_echo "$as_me:$LINENO: checking whether first_online_pgdat() is available" >&5 +$as_echo_n "checking whether first_online_pgdat() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol first_online_pgdat is exported" >&5 -$as_echo_n "checking whether symbol first_online_pgdat is exported... " >&6; } - grep -q -E '[[:space:]]first_online_pgdat[[: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.*(first_online_pgdat)" \ - "$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_FIRST_ONLINE_PGDAT 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_FIRST_ONLINE_PGDAT 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 + #include +int +main (void) +{ - { $as_echo "$as_me:$LINENO: checking whether symbol next_online_pgdat is exported" >&5 -$as_echo_n "checking whether symbol next_online_pgdat is exported... " >&6; } - grep -q -E '[[:space:]]next_online_pgdat[[: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.*(next_online_pgdat)" \ - "$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; } + first_online_pgdat(); - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + ; + return 0; +} -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ONLINE_PGDAT 1 _ACEOF - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ONLINE_PGDAT 1 -_ACEOF + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - fi +fi + rm -Rf build - { $as_echo "$as_me:$LINENO: checking whether symbol next_zone is exported" >&5 -$as_echo_n "checking whether symbol next_zone is exported... " >&6; } - grep -q -E '[[:space:]]next_zone[[: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.*(next_zone)" \ - "$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; } + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ZONE 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - fi else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ZONE 1 -_ACEOF - - fi + if test "x$enable_linux_builtin" != xyes; then - - - { $as_echo "$as_me:$LINENO: checking whether symbol pgdat_list is exported" >&5 -$as_echo_n "checking whether symbol pgdat_list is exported... " >&6; } - grep -q -E '[[:space:]]pgdat_list[[:space:]]' \ + grep -q -E '[[:space:]]first_online_pgdat[[: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.*(pgdat_list)" \ + grep -q -E "EXPORT_SYMBOL.*(first_online_pgdat)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_PGDAT_LIST 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PGDAT_LIST 1 +#define HAVE_FIRST_ONLINE_PGDAT 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether next_online_pgdat() is available" >&5 +$as_echo_n "checking whether next_online_pgdat() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether global_page_state() is available" >&5 -$as_echo_n "checking whether global_page_state() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14359,14 +14780,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - unsigned long state __attribute__ ((unused)); - state = global_page_state(0); + next_online_pgdat(NULL); ; return 0; @@ -14375,9 +14795,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14388,33 +14810,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_GLOBAL_PAGE_STATE 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]next_online_pgdat[[: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.*(next_online_pgdat)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + fi + if test $rc -ne 0; then : -fi + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - rm -Rf build + else : + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +cat >>confdefs.h <<\_ACEOF +#define HAVE_NEXT_ONLINE_PGDAT 1 +_ACEOF - { $as_echo "$as_me:$LINENO: checking whether page state NR_FREE_PAGES is available" >&5 -$as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; } + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether next_zone() is available" >&5 +$as_echo_n "checking whether next_zone() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -14425,14 +14886,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_FREE_PAGES; + next_zone(NULL); ; return 0; @@ -14441,9 +14901,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14454,33 +14916,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]next_zone[[: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.*(next_zone)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_NEXT_ZONE 1 +_ACEOF - rm -Rf build + fi + fi + { $as_echo "$as_me:$LINENO: checking whether pgdat_list is available" >&5 +$as_echo_n "checking whether pgdat_list is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14491,15 +14992,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + pg_data_t *tmp = pgdat_list; int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE; - ; return 0; } @@ -14507,9 +15006,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14520,22 +15021,11 @@ _ACEOF 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_ZONE_STAT_ITEM_NR_INACTIVE 1 -_ACEOF - - + rc=0 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; } - + rc=1 fi @@ -14543,74 +15033,60 @@ fi rm -Rf build + if test $rc -ne 0; then : - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_ANON is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE_ANON 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 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } -int -main (void) -{ + else + if test "x$enable_linux_builtin" != xyes; then - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE_ANON; - - ; - return 0; -} + grep -q -E '[[:space:]]pgdat_list[[: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.*(pgdat_list)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -_ACEOF + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - 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 + else : { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON 1 +#define HAVE_PGDAT_LIST 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 + fi + fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_FILE is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether global_page_state() is available" >&5 +$as_echo_n "checking whether global_page_state() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14627,8 +15103,8 @@ int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE_FILE; + unsigned long state __attribute__ ((unused)); + state = global_page_state(0); ; return 0; @@ -14637,9 +15113,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14655,7 +15133,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE 1 +#define HAVE_GLOBAL_PAGE_STATE 1 _ACEOF @@ -14675,8 +15153,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_FREE_PAGES is available" >&5 +$as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14694,7 +15172,7 @@ main (void) { enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE; + zsi = NR_FREE_PAGES; ; return 0; @@ -14703,9 +15181,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14721,7 +15201,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE 1 +#define HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES 1 _ACEOF @@ -14740,8 +15220,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_ANON is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; } + + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14759,7 +15240,7 @@ main (void) { enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE_ANON; + zsi = NR_INACTIVE; ; return 0; @@ -14768,9 +15249,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14786,7 +15269,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE 1 _ACEOF @@ -14805,8 +15288,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_FILE is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_ANON is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE_ANON is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14824,7 +15307,7 @@ main (void) { enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE_FILE; + zsi = NR_INACTIVE_ANON; ; return 0; @@ -14833,9 +15316,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14851,7 +15336,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON 1 _ACEOF @@ -14870,9 +15355,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether symbol get_zone_counts is needed" >&5 -$as_echo_n "checking whether symbol get_zone_counts is needed... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_FILE is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14883,26 +15367,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + #include int main (void) { - #if !defined(HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES) - #error "global_page_state needs NR_FREE_PAGES" - #endif - - #if !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE) - #error "global_page_state needs NR_ACTIVE*" - #endif - - #if !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE) - #error "global_page_state needs NR_INACTIVE*" - #endif + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_INACTIVE_FILE; ; return 0; @@ -14911,9 +15383,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14925,60 +15399,20 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define NEED_GET_ZONE_COUNTS 1 -_ACEOF - - - { $as_echo "$as_me:$LINENO: checking whether symbol get_zone_counts is exported" >&5 -$as_echo_n "checking whether symbol get_zone_counts is exported... " >&6; } - grep -q -E '[[:space:]]get_zone_counts[[: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.*(get_zone_counts)" \ - "$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_GET_ZONE_COUNTS 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE 1 _ACEOF - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GET_ZONE_COUNTS 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; } @@ -14989,89 +15423,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol user_path_at is exported" >&5 -$as_echo_n "checking whether symbol user_path_at is exported... " >&6; } - grep -q -E '[[:space:]]user_path_at[[: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.*(user_path_at)" \ - "$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_USER_PATH_DIR 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_USER_PATH_DIR 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol set_fs_pwd is exported" >&5 -$as_echo_n "checking whether symbol set_fs_pwd is exported... " >&6; } - grep -q -E '[[:space:]]set_fs_pwd[[: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.*(set_fs_pwd)" \ - "$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_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; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15082,14 +15435,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - set_fs_pwd(NULL, NULL); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE; ; return 0; @@ -15098,9 +15451,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15116,7 +15471,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_SET_FS_PWD 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE 1 _ACEOF @@ -15135,8 +15490,8 @@ 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 page state NR_ACTIVE_ANON is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15147,13 +15502,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - vfs_unlink(NULL, NULL); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE_ANON; ; return 0; @@ -15162,9 +15518,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15180,7 +15538,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_VFS_UNLINK 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON 1 _ACEOF @@ -15199,8 +15557,8 @@ fi - { $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 page state NR_ACTIVE_FILE is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15211,13 +15569,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - vfs_rename(NULL, NULL, NULL, NULL); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE_FILE; ; return 0; @@ -15226,9 +15585,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15244,7 +15605,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_4ARGS_VFS_RENAME 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE 1 _ACEOF @@ -15264,49 +15625,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol vfs_fsync is exported" >&5 -$as_echo_n "checking whether symbol vfs_fsync is exported... " >&6; } - grep -q -E '[[:space:]]vfs_fsync[[:space:]]' \ - $LINUX_OBJ/Module*.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/sync.c; do - grep -q -E "EXPORT_SYMBOL.*(vfs_fsync)" \ - "$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_VFS_FSYNC 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_VFS_FSYNC 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5 -$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether symbol get_zone_counts is needed" >&5 +$as_echo_n "checking whether symbol get_zone_counts is needed... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15317,13 +15637,26 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include int main (void) { - vfs_fsync(NULL, 0); + #if !defined(HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES) + #error "global_page_state needs NR_FREE_PAGES" + #endif + + #if !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE) + #error "global_page_state needs NR_ACTIVE*" + #endif + + #if !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE) + #error "global_page_state needs NR_INACTIVE*" + #endif ; return 0; @@ -15332,9 +15665,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15346,34 +15681,24 @@ _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; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_VFS_FSYNC 1 -_ACEOF - + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&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; } - - - -fi - - rm -Rf build + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +cat >>confdefs.h <<\_ACEOF +#define NEED_GET_ZONE_COUNTS 1 +_ACEOF + { $as_echo "$as_me:$LINENO: checking whether get_zone_counts() is available" >&5 +$as_echo_n "checking whether get_zone_counts() is available... " >&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; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -15384,15 +15709,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - struct fs_struct fs; - spin_lock_init(&fs.lock); + get_zone_counts(NULL, NULL, NULL); ; return 0; @@ -15401,9 +15724,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15414,21 +15739,68 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]get_zone_counts[[: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.*(get_zone_counts)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_FS_STRUCT_SPINLOCK 1 +#define HAVE_GET_ZONE_COUNTS 1 _ACEOF -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + fi + fi - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -15437,11 +15809,10 @@ fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" + { $as_echo "$as_me:$LINENO: checking whether user_path_dir() is available" >&5 +$as_echo_n "checking whether user_path_dir() is available... " >&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 @@ -15452,14 +15823,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - struct cred *cr __attribute__ ((unused)); - cr = NULL; + user_path_dir(NULL, NULL); ; return 0; @@ -15468,9 +15839,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15481,22 +15854,11 @@ _ACEOF 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 - - + rc=0 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; } - + rc=1 fi @@ -15504,92 +15866,60 @@ fi rm -Rf build + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $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:]]' \ + grep -q -E '[[:space:]]user_path_at[[: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)" \ + grep -q -E "EXPORT_SYMBOL.*(user_path_at)" \ "$LINUX_OBJ/$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 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GROUPS_SEARCH 1 -_ACEOF - + if test $export -eq 0; then : + rc=1 + else : + rc=0 fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GROUPS_SEARCH 1 -_ACEOF - + else : + rc=0 fi + fi + if test $rc -ne 0; then : - - { $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 "$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 + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PUT_TASK_STRUCT 1 +#define HAVE_USER_PATH_DIR 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() is available" >&5 +$as_echo_n "checking whether set_fs_pwd() is available... " >&6; } - { $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 @@ -15600,13 +15930,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - proc_dostring(NULL, 0, NULL, NULL, NULL); + (void) set_fs_pwd; ; return 0; @@ -15615,9 +15946,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15628,22 +15961,11 @@ _ACEOF 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_5ARGS_PROC_HANDLER 1 -_ACEOF - - + rc=0 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; } - + rc=1 fi @@ -15651,171 +15973,59 @@ fi rm -Rf build + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $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:]]' \ + grep -q -E '[[:space:]]set_fs_pwd[[: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)" \ + grep -q -E "EXPORT_SYMBOL.*(set_fs_pwd)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_KVASPRINTF 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_KVASPRINTF 1 +#define HAVE_SET_FS_PWD 1 _ACEOF + + fi fi - - { $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 symbol invalidate_inodes_check is exported" >&5 -$as_echo_n "checking whether symbol invalidate_inodes_check is exported... " >&6; } - grep -q -E '[[:space:]]invalidate_inodes_check[[: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_check)" \ - "$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_CHECK 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_INVALIDATE_INODES_CHECK 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; } + { $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 @@ -15826,13 +16036,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - return __invalidate_device(NULL, 0); + set_fs_pwd(NULL, NULL); ; return 0; @@ -15841,9 +16052,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15859,7 +16072,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_INVALIDATE_INODES 1 +#define HAVE_2ARGS_SET_FS_PWD 1 _ACEOF @@ -15878,159 +16091,8 @@ fi - - { $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 - - - - - { $as_echo "$as_me:$LINENO: checking whether symbol kern_path_parent exists in header" >&5 -$as_echo_n "checking whether symbol kern_path_parent exists in header... " >&6; } - header=0 - for file in include/linux/namei.h; do - grep -q "int kern_path_parent(const char \*, struct nameidata \*)" "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - header=1 - break; - fi - done - if test $header -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_KERN_PATH_PARENT_HEADER 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol kern_path_parent is exported" >&5 -$as_echo_n "checking whether symbol kern_path_parent is exported... " >&6; } - grep -q -E '[[:space:]]kern_path_parent[[:space:]]' \ - $LINUX_OBJ/Module*.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/namei.c; do - grep -q -E "EXPORT_SYMBOL.*(kern_path_parent)" \ - "$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_KERN_PATH_PARENT_SYMBOL 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_KERN_PATH_PARENT_SYMBOL 1 -_ACEOF - - fi - - - { $as_echo "$as_me:$LINENO: checking whether zlib_deflate_workspacesize() wants 2 args" >&5 -$as_echo_n "checking whether zlib_deflate_workspacesize() wants 2 args... " >&6; } + { $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 @@ -16041,13 +16103,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL); + vfs_unlink(NULL, NULL); ; return 0; @@ -16056,9 +16118,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16074,7 +16138,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE 1 +#define HAVE_2ARGS_VFS_UNLINK 1 _ACEOF @@ -16093,9 +16157,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether struct shrink_control exists" >&5 -$as_echo_n "checking whether struct shrink_control exists... " >&6; } + { $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 @@ -16106,16 +16169,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct shrink_control sc __attribute__ ((unused)); - - sc.nr_to_scan = 0; - sc.gfp_mask = GFP_KERNEL; + vfs_rename(NULL, NULL, NULL, NULL); ; return 0; @@ -16124,9 +16184,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16142,7 +16204,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_SHRINK_CONTROL_STRUCT 1 +#define HAVE_4ARGS_VFS_RENAME 1 _ACEOF @@ -16161,11 +16223,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() is available" >&5 +$as_echo_n "checking whether vfs_fsync() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether struct rw_semaphore member wait_lock is raw" >&5 -$as_echo_n "checking whether struct rw_semaphore member wait_lock is raw... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -16176,15 +16236,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct rw_semaphore dummy_semaphore __attribute__ ((unused)); - raw_spinlock_t dummy_lock __attribute__ ((unused)); - dummy_semaphore.wait_lock = dummy_lock; + (void) vfs_fsync; ; return 0; @@ -16193,9 +16251,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16206,34 +16266,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define RWSEM_SPINLOCK_IS_RAW 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]vfs_fsync[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/sync.c; do + grep -q -E "EXPORT_SYMBOL.*(vfs_fsync)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_VFS_FSYNC 1 +_ACEOF - rm -Rf build + fi + fi - EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:$LINENO: checking whether pmd_alloc_with_mask exists" >&5 -$as_echo_n "checking whether pmd_alloc_with_mask exists... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5 +$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -16244,26 +16342,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #if !defined(CONFIG_MMU) - #define CONFIG_MMU - #endif - - #if defined(RCH_HAS_4LEVEL_HACK) - #undef RCH_HAS_4LEVEL_HACK - #endif - - #include + #include int main (void) { - struct mm_struct init_mm; - pud_t *pud = NULL; - unsigned long addr = 0; - gfp_t gfp_mask = GFP_KERNEL; - - pmd_alloc_with_mask(&init_mm, pud, addr, gfp_mask); + vfs_fsync(NULL, 0); ; return 0; @@ -16272,9 +16357,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16290,7 +16377,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PMD_ALLOC_WITH_MASK 1 +#define HAVE_2ARGS_VFS_FSYNC 1 _ACEOF @@ -16309,160 +16396,81 @@ fi - ;; - user) ;; - all) - -# Check whether --with-linux was given. -if test "${with_linux+set}" = set; then - withval=$with_linux; kernelsrc="$withval" -fi + { $as_echo "$as_me:$LINENO: checking whether struct fs_struct uses spinlock_t" >&5 +$as_echo_n "checking whether struct fs_struct uses spinlock_t... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -# Check whether --with-linux-obj was given. -if test "${with_linux_obj+set}" = set; then - withval=$with_linux_obj; kernelbuild="$withval" -fi + #include + #include - { $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 - headersdir="/lib/modules/$(uname -r)/build" - sourcelink=$(readlink -f "$headersdir") - else - sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ - 2>/dev/null | grep -v obj | tail -1) - fi +int +main (void) +{ - if test -n "$sourcelink" && test -e ${sourcelink}; then - kernelsrc=`readlink -f ${sourcelink}` - else - { $as_echo "$as_me:$LINENO: result: Not found" >&5 -$as_echo "Not found" >&6; } - { { $as_echo "$as_me:$LINENO: error: - *** Please make sure the kernel devel package for your distribution - *** is installed then try again. If that fails you can specify the - *** location of the kernel source with the '--with-linux=PATH' option." >&5 -$as_echo "$as_me: error: - *** Please make sure the kernel devel package for your distribution - *** 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 - if test "$kernelsrc" = "NONE"; then - kernsrcver=NONE - fi - fi + struct fs_struct fs; + spin_lock_init(&fs.lock); - { $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 - kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu} - elif test -d ${kernelsrc}-obj/${target_cpu}/default; then - kernelbuild=${kernelsrc}-obj/${target_cpu}/default - elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then - kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} - else - kernelbuild=${kernelsrc} - fi - fi - { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 -$as_echo "$kernelbuild" >&6; } + ; + return 0; +} - { $as_echo "$as_me:$LINENO: checking kernel source version" >&5 -$as_echo_n "checking kernel source version... " >&6; } - utsrelease1=$kernelbuild/include/linux/version.h - 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 - utsrelease=linux/utsrelease.h - elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then - utsrelease=generated/utsrelease.h - fi +_ACEOF - 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 - { $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 + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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: $kernsrcver" >&5 -$as_echo "$kernsrcver" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } - LINUX=${kernelsrc} - LINUX_OBJ=${kernelbuild} - LINUX_VERSION=${kernsrcver} +cat >>confdefs.h <<\_ACEOF +#define HAVE_FS_STRUCT_SPINLOCK 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; } - 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 +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; } + rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $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; } + { $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 @@ -16473,15 +16481,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - #ifndef CONFIG_PREEMPT - #error CONFIG_PREEMPT not #defined - #endif + struct cred *cr __attribute__ ((unused)); + cr = NULL; ; return 0; @@ -16490,9 +16497,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16506,13 +16515,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 -$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; }; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CRED_STRUCT 1 +_ACEOF + else $as_echo "$as_me: failed program was:" >&5 @@ -16523,158 +16530,293 @@ $as_echo "no" >&6; } - fi rm -Rf build + { $as_echo "$as_me:$LINENO: checking whether groups_search() is available" >&5 +$as_echo_n "checking whether groups_search() is available... " >&6; } - if test "${LINUX_OBJ}" != "${LINUX}"; then - KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" - fi +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - KERNELCPPFLAGS="$KERNELCPPFLAGS -Wstrict-prototypes" + #include +int +main (void) +{ - { $as_echo "$as_me:$LINENO: checking whether debugging is enabled" >&5 -$as_echo_n "checking whether debugging is enabled... " >&6; } - # Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then - enableval=$enable_debug; -else - enable_debug=no -fi + groups_search(NULL, 0); + ; + return 0; +} - if test "x$enable_debug" = xyes; then +_ACEOF - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror" - DEBUG_CFLAGS="-DDEBUG -Werror" - DEBUG_SPL="_with_debug" + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG" - DEBUG_CFLAGS="-DNDEBUG" - DEBUG_SPL="_without_debug" fi + rm -Rf build + if test $rc -ne 0; then : - { $as_echo "$as_me:$LINENO: result: $enable_debug" >&5 -$as_echo "$enable_debug" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - # Check whether --enable-debug-log was given. -if test "${enable_debug_log+set}" = set; then - enableval=$enable_debug_log; -else - enable_debug_log=yes -fi + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + fi + if test $rc -ne 0; then : - if test "x$enable_debug_log" = xyes; then + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_LOG" - DEBUG_LOG="_with_debug_log" + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define DEBUG_LOG 1 +#define HAVE_GROUPS_SEARCH 1 _ACEOF -else + fi + fi - DEBUG_LOG="_without_debug_log" -fi + { $as_echo "$as_me:$LINENO: checking whether __put_task_struct() is available" >&5 +$as_echo_n "checking whether __put_task_struct() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether basic debug logging is enabled" >&5 -$as_echo_n "checking whether basic debug logging is enabled... " >&6; } - { $as_echo "$as_me:$LINENO: result: $enable_debug_log" >&5 -$as_echo "$enable_debug_log" >&6; } +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - # Check whether --enable-debug-kmem was given. -if test "${enable_debug_kmem+set}" = set; then - enableval=$enable_debug_kmem; -else - enable_debug_kmem=yes -fi + #include +int +main (void) +{ - if test "x$enable_debug_kmem" = xyes; then + __put_task_struct(NULL); - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM" - DEBUG_KMEM="_with_debug_kmem" + ; + return 0; +} -cat >>confdefs.h <<\_ACEOF -#define DEBUG_KMEM 1 _ACEOF + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - DEBUG_KMEM="_without_debug_kmem" fi + rm -Rf build - { $as_echo "$as_me:$LINENO: checking whether basic kmem accounting is enabled" >&5 -$as_echo_n "checking whether basic kmem accounting is enabled... " >&6; } - { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem" >&5 -$as_echo "$enable_debug_kmem" >&6; } + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - # Check whether --enable-debug-kmem-tracking was given. -if test "${enable_debug_kmem_tracking+set}" = set; then - enableval=$enable_debug_kmem_tracking; -else - enable_debug_kmem_tracking=no -fi + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + fi + if test $rc -ne 0; then : - if test "x$enable_debug_kmem_tracking" = xyes; then + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM_TRACKING" - DEBUG_KMEM_TRACKING="_with_debug_kmem_tracking" + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define DEBUG_KMEM_TRACKING 1 +#define HAVE_PUT_TASK_STRUCT 1 _ACEOF -else + fi + fi - DEBUG_KMEM_TRACKING="_without_debug_kmem_tracking" -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 detailed kmem tracking is enabled" >&5 -$as_echo_n "checking whether detailed kmem tracking is enabled... " >&6; } - { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem_tracking" >&5 -$as_echo "$enable_debug_kmem_tracking" >&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) +{ + + proc_dostring(NULL, 0, NULL, NULL, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_5ARGS_PROC_HANDLER 1 +_ACEOF - # Check whether --enable-atomic-spinlocks was given. -if test "${enable_atomic_spinlocks+set}" = set; then - enableval=$enable_atomic_spinlocks; else - enable_atomic_spinlocks=check + $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 kvasprintf() is available" >&5 +$as_echo_n "checking whether kvasprintf() is available... " >&6; } @@ -16686,13 +16828,3017 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - atomic64_t *ptr __attribute__ ((unused)); + kvasprintf(0, NULL, *((va_list*)NULL)); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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 + fi + + + { $as_echo "$as_me:$LINENO: checking whether rwsem_is_locked() acquires sem->wait_lock" >&5 +$as_echo_n "checking whether rwsem_is_locked() acquires sem->wait_lock... " >&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 rwsem_is_locked(struct rw_semaphore *sem) { return 0; } + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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 + fi + + + + { $as_echo "$as_me:$LINENO: checking whether invalidate_inodes() is available" >&5 +$as_echo_n "checking whether invalidate_inodes() 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) +{ + + invalidate_inodes; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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 + fi + + + { $as_echo "$as_me:$LINENO: checking whether invalidate_inodes_check() is available" >&5 +$as_echo_n "checking whether invalidate_inodes_check() 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) +{ + + invalidate_inodes_check(NULL, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]invalidate_inodes_check[[: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_check)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_CHECK 1 +_ACEOF + + + fi + 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 + +int +main (void) +{ + + return __invalidate_device(NULL, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 shrink_dcache_memory() is available" >&5 +$as_echo_n "checking whether shrink_dcache_memory() 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) +{ + + shrink_dcache_memory(0, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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 + fi + + + { $as_echo "$as_me:$LINENO: checking whether shrink_icache_memory() is available" >&5 +$as_echo_n "checking whether shrink_icache_memory() 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) +{ + + shrink_icache_memory(0, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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 + fi + + + + + { $as_echo "$as_me:$LINENO: checking whether symbol kern_path_parent exists in header" >&5 +$as_echo_n "checking whether symbol kern_path_parent exists in header... " >&6; } + header=0 + for file in include/linux/namei.h; do + grep -q "int kern_path_parent(const char \*, struct nameidata \*)" "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + header=1 + break; + fi + done + if test $header -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_KERN_PATH_PARENT_HEADER 1 +_ACEOF + + fi + + + { $as_echo "$as_me:$LINENO: checking whether kern_path_parent() is available" >&5 +$as_echo_n "checking whether kern_path_parent() 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) +{ + + kern_path_parent(NULL, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]kern_path_parent[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/namei.c; do + grep -q -E "EXPORT_SYMBOL.*(kern_path_parent)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_KERN_PATH_PARENT_SYMBOL 1 +_ACEOF + + + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether zlib_deflate_workspacesize() wants 2 args" >&5 +$as_echo_n "checking whether zlib_deflate_workspacesize() 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 + +int +main (void) +{ + + return zlib_deflate_workspacesize(MAX_WBITS, MAX_MEM_LEVEL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_ZLIB_DEFLATE_WORKSPACESIZE 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 struct shrink_control exists" >&5 +$as_echo_n "checking whether struct shrink_control 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) +{ + + struct shrink_control sc __attribute__ ((unused)); + + sc.nr_to_scan = 0; + sc.gfp_mask = GFP_KERNEL; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_SHRINK_CONTROL_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 struct rw_semaphore member wait_lock is raw" >&5 +$as_echo_n "checking whether struct rw_semaphore member wait_lock is raw... " >&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 + +int +main (void) +{ + + struct rw_semaphore dummy_semaphore __attribute__ ((unused)); + raw_spinlock_t dummy_lock __attribute__ ((unused)); + dummy_semaphore.wait_lock = dummy_lock; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 RWSEM_SPINLOCK_IS_RAW 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 pmd_alloc_with_mask exists" >&5 +$as_echo_n "checking whether pmd_alloc_with_mask 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. */ + + + #if !defined(CONFIG_MMU) + #define CONFIG_MMU + #endif + + #if defined(RCH_HAS_4LEVEL_HACK) + #undef RCH_HAS_4LEVEL_HACK + #endif + + #include + +int +main (void) +{ + + struct mm_struct init_mm; + pud_t *pud = NULL; + unsigned long addr = 0; + gfp_t gfp_mask = GFP_KERNEL; + + pmd_alloc_with_mask(&init_mm, pud, addr, gfp_mask); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_PMD_ALLOC_WITH_MASK 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 + + + + ;; + user) ;; + all) + + +# Check whether --with-linux was given. +if test "${with_linux+set}" = set; then + withval=$with_linux; kernelsrc="$withval" +fi + + + +# Check whether --with-linux-obj was given. +if test "${with_linux_obj+set}" = set; then + withval=$with_linux_obj; kernelbuild="$withval" +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 + headersdir="/lib/modules/$(uname -r)/build" + sourcelink=$(readlink -f "$headersdir") + else + sourcelink=$(ls -1d /usr/src/kernels/* \ + /usr/src/linux-* \ + 2>/dev/null | grep -v obj | tail -1) + fi + + if test -n "$sourcelink" && test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` + else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 +$as_echo "Not found" >&6; } + { { $as_echo "$as_me:$LINENO: error: + *** Please make sure the kernel devel package for your distribution + *** is installed then try again. If that fails you can specify the + *** location of the kernel source with the '--with-linux=PATH' option." >&5 +$as_echo "$as_me: error: + *** Please make sure the kernel devel package for your distribution + *** 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 + if test "$kernelsrc" = "NONE"; then + kernsrcver=NONE + 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 + kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu} + elif test -d ${kernelsrc}-obj/${target_cpu}/default; then + kernelbuild=${kernelsrc}-obj/${target_cpu}/default + elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} + else + kernelbuild=${kernelsrc} + fi + fi + { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 +$as_echo "$kernelbuild" >&6; } + + { $as_echo "$as_me:$LINENO: checking kernel source version" >&5 +$as_echo_n "checking kernel source version... " >&6; } + utsrelease1=$kernelbuild/include/linux/version.h + 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 + utsrelease=linux/utsrelease.h + elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + utsrelease=generated/utsrelease.h + 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 + { $as_echo "$as_me:$LINENO: result: Not found" >&5 +$as_echo "Not found" >&6; } + if test "x$enable_linux_builtin" != xyes; then + { { $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; }; } + else + { { $as_echo "$as_me:$LINENO: error: + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree." >&5 +$as_echo "$as_me: error: + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 +$as_echo "$kernsrcver" >&6; } + + LINUX=${kernelsrc} + LINUX_OBJ=${kernelbuild} + LINUX_VERSION=${kernsrcver} + + + + + + + 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 "x$enable_linux_builtin" != xyes -a -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. */ + + + #include + +int +main (void) +{ + + #ifndef CONFIG_PREEMPT + #error CONFIG_PREEMPT not #defined + #endif + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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" + + + + { $as_echo "$as_me:$LINENO: checking whether debugging is enabled" >&5 +$as_echo_n "checking whether debugging is enabled... " >&6; } + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then + enableval=$enable_debug; +else + enable_debug=no +fi + + + if test "x$enable_debug" = xyes; then + + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror" + DEBUG_CFLAGS="-DDEBUG -Werror" + DEBUG_SPL="_with_debug" + +else + + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG" + DEBUG_CFLAGS="-DNDEBUG" + DEBUG_SPL="_without_debug" + +fi + + + + + { $as_echo "$as_me:$LINENO: result: $enable_debug" >&5 +$as_echo "$enable_debug" >&6; } + + + # Check whether --enable-debug-log was given. +if test "${enable_debug_log+set}" = set; then + enableval=$enable_debug_log; +else + enable_debug_log=yes +fi + + + if test "x$enable_debug_log" = xyes; then + + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_LOG" + DEBUG_LOG="_with_debug_log" + +cat >>confdefs.h <<\_ACEOF +#define DEBUG_LOG 1 +_ACEOF + + +else + + DEBUG_LOG="_without_debug_log" + +fi + + + + { $as_echo "$as_me:$LINENO: checking whether basic debug logging is enabled" >&5 +$as_echo_n "checking whether basic debug logging is enabled... " >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_debug_log" >&5 +$as_echo "$enable_debug_log" >&6; } + + + # Check whether --enable-debug-kmem was given. +if test "${enable_debug_kmem+set}" = set; then + enableval=$enable_debug_kmem; +else + enable_debug_kmem=yes +fi + + + if test "x$enable_debug_kmem" = xyes; then + + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM" + DEBUG_KMEM="_with_debug_kmem" + +cat >>confdefs.h <<\_ACEOF +#define DEBUG_KMEM 1 +_ACEOF + + +else + + DEBUG_KMEM="_without_debug_kmem" + +fi + + + + { $as_echo "$as_me:$LINENO: checking whether basic kmem accounting is enabled" >&5 +$as_echo_n "checking whether basic kmem accounting is enabled... " >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem" >&5 +$as_echo "$enable_debug_kmem" >&6; } + + + # Check whether --enable-debug-kmem-tracking was given. +if test "${enable_debug_kmem_tracking+set}" = set; then + enableval=$enable_debug_kmem_tracking; +else + enable_debug_kmem_tracking=no +fi + + + if test "x$enable_debug_kmem_tracking" = xyes; then + + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_KMEM_TRACKING" + DEBUG_KMEM_TRACKING="_with_debug_kmem_tracking" + +cat >>confdefs.h <<\_ACEOF +#define DEBUG_KMEM_TRACKING 1 +_ACEOF + + +else + + DEBUG_KMEM_TRACKING="_without_debug_kmem_tracking" + +fi + + + + { $as_echo "$as_me:$LINENO: checking whether detailed kmem tracking is enabled" >&5 +$as_echo_n "checking whether detailed kmem tracking is enabled... " >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_debug_kmem_tracking" >&5 +$as_echo "$enable_debug_kmem_tracking" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether modules can be built" >&5 +$as_echo_n "checking whether modules can be built... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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; } + +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; } + if test "x$enable_linux_builtin" != xyes; then + { { $as_echo "$as_me:$LINENO: error: *** Unable to build an empty module." >&5 +$as_echo "$as_me: error: *** Unable to build an empty module." >&2;} + { (exit 1); exit 1; }; } + else + { { $as_echo "$as_me:$LINENO: error: + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree." >&5 +$as_echo "$as_me: error: + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree." >&2;} + { (exit 1); exit 1; }; } + fi + + + +fi + + rm -Rf build + + + + + # Check whether --enable-atomic-spinlocks was given. +if test "${enable_atomic_spinlocks+set}" = set; then + enableval=$enable_atomic_spinlocks; +else + enable_atomic_spinlocks=check +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) +{ + + atomic64_t *ptr __attribute__ ((unused)); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + + have_atomic64_t=yes + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ATOMIC64_T 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + have_atomic64_t=no + + + +fi + + rm -Rf build + + + + if test "x$enable_atomic_spinlocks" = xcheck; then + + if test "x$have_atomic64_t" = xyes; then + + enable_atomic_spinlocks=no + +else + + enable_atomic_spinlocks=yes + +fi + + +fi + + + if test "x$enable_atomic_spinlocks" = xyes; then + + +cat >>confdefs.h <<\_ACEOF +#define ATOMIC_SPINLOCK 1 +_ACEOF + + +else + + if test "x$have_atomic64_t" = xno; then + + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + +fi + + +fi + + + { $as_echo "$as_me:$LINENO: checking whether atomic types use spinlocks" >&5 +$as_echo_n "checking whether atomic types use spinlocks... " >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_atomic_spinlocks" >&5 +$as_echo "$enable_atomic_spinlocks" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_t" >&5 +$as_echo_n "checking whether kernel defines atomic64_t... " >&6; } + { $as_echo "$as_me:$LINENO: result: $have_atomic64_t" >&5 +$as_echo "$have_atomic64_t" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_cmpxchg" >&5 +$as_echo_n "checking whether kernel defines atomic64_cmpxchg... " >&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 + #include + +int +main (void) +{ + + atomic64_cmpxchg((atomic64_t *)NULL, 0, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_ATOMIC64_CMPXCHG 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 kernel defines atomic64_xchg" >&5 +$as_echo_n "checking whether kernel defines atomic64_xchg... " >&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) +{ + + atomic64_xchg((atomic64_t *)NULL, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_ATOMIC64_XCHG 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 kernel defines uintptr_t" >&5 +$as_echo_n "checking whether kernel defines uintptr_t... " >&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) +{ + + uintptr_t *ptr __attribute__ ((unused)); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_UINTPTR_T 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 INIT_WORK wants 3 args" >&5 +$as_echo_n "checking whether INIT_WORK 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 + +int +main (void) +{ + + struct work_struct work __attribute__ ((unused)); + INIT_WORK(&work, NULL, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_INIT_WORK 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 register_sysctl_table() wants 2 args" >&5 +$as_echo_n "checking whether register_sysctl_table() 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 + +int +main (void) +{ + + (void) register_sysctl_table(NULL, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_REGISTER_SYSCTL 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 set_shrinker() available" >&5 +$as_echo_n "checking whether set_shrinker() 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) +{ + + return set_shrinker(DEFAULT_SEEKS, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_SHRINKER 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 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 + + 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 && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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; } + + +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 nameidata nd __attribute__ ((unused)); + + nd.path.mnt = NULL; + nd.path.dentry = NULL; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_PATH_IN_NAMEIDATA 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 task_curr() is available" >&5 +$as_echo_n "checking whether task_curr() 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) +{ + + task_curr(NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]task_curr[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in kernel/sched.c; do + grep -q -E "EXPORT_SYMBOL.*(task_curr)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_TASK_CURR 1 +_ACEOF + + + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether unnumbered sysctl support exists" >&5 +$as_echo_n "checking whether unnumbered sysctl support 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) +{ + + #ifndef CTL_UNNUMBERED + #error CTL_UNNUMBERED undefined + #endif + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_CTL_UNNUMBERED 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 struct ctl_table has ctl_name" >&5 +$as_echo_n "checking whether struct ctl_table has ctl_name... " >&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 ctl_table ctl __attribute__ ((unused)); + ctl.ctl_name = 0; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_CTL_NAME 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 fls64() is available" >&5 +$as_echo_n "checking whether fls64() 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) +{ + + return fls64(0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_FLS64 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 device_create() is available" >&5 +$as_echo_n "checking whether device_create() is available... " >&6; } + + grep -q -E '[[:space:]]device_create[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in drivers/base/core.c; do + grep -q -E "EXPORT_SYMBOL.*(device_create)" \ + "$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_DEVICE_CREATE 1 +_ACEOF + + + fi + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DEVICE_CREATE 1 +_ACEOF + + + fi + + + + { $as_echo "$as_me:$LINENO: checking whether device_create() wants 5 args" >&5 +$as_echo_n "checking whether device_create() wants 5 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 + +int +main (void) +{ + + device_create(NULL, NULL, 0, NULL, "%d", 1); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_5ARGS_DEVICE_CREATE 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 class_device_create() is available" >&5 +$as_echo_n "checking whether class_device_create() 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) +{ + + class_device_create(NULL, NULL, 0, NULL, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]class_device_create[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in drivers/base/class.c; do + grep -q -E "EXPORT_SYMBOL.*(class_device_create)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_CLASS_DEVICE_CREATE 1 +_ACEOF + + + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is available as export" >&5 +$as_echo_n "checking whether set_normalized_timespec() is available as export... " >&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) +{ + + set_normalized_timespec(NULL, 0, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]set_normalized_timespec[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in kernel/time.c; do + grep -q -E "EXPORT_SYMBOL.*(set_normalized_timespec)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_SET_NORMALIZED_TIMESPEC_EXPORT 1 +_ACEOF + + + fi + fi + + + + { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is an inline" >&5 +$as_echo_n "checking whether set_normalized_timespec() is an inline... " >&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 + void set_normalized_timespec(struct timespec *ts, + time_t sec, long nsec) { } + +int +main (void) +{ + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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" >&5 +$as_echo "no" >&6; } + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SET_NORMALIZED_TIMESPEC_INLINE 1 +_ACEOF + + + + +fi + + rm -Rf build + + + + + { $as_echo "$as_me:$LINENO: checking whether timespec_sub() is available" >&5 +$as_echo_n "checking whether timespec_sub() 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 timespec a = { 0 }; + struct timespec b = { 0 }; + struct timespec c __attribute__ ((unused)); + c = timespec_sub(a, b); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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_TIMESPEC_SUB 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 init_utsname() is available" >&5 +$as_echo_n "checking whether init_utsname() 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 new_utsname *a __attribute__ ((unused)); + a = init_utsname(); ; return 0; @@ -16701,9 +19847,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16715,10 +19863,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - have_atomic64_t=yes + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ATOMIC64_T 1 +#define HAVE_INIT_UTSNAME 1 _ACEOF @@ -16726,7 +19875,8 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - have_atomic64_t=no + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } @@ -16736,60 +19886,9 @@ fi - if test "x$enable_atomic_spinlocks" = xcheck; then - - if test "x$have_atomic64_t" = xyes; then - - enable_atomic_spinlocks=no - -else - - enable_atomic_spinlocks=yes - -fi - - -fi - - - if test "x$enable_atomic_spinlocks" = xyes; then - - -cat >>confdefs.h <<\_ACEOF -#define ATOMIC_SPINLOCK 1 -_ACEOF - - -else - - if test "x$have_atomic64_t" = xno; then - - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: --disable-atomic-spinlocks given but required atomic64 support is unavailable -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - -fi - - -fi - - - { $as_echo "$as_me:$LINENO: checking whether atomic types use spinlocks" >&5 -$as_echo_n "checking whether atomic types use spinlocks... " >&6; } - { $as_echo "$as_me:$LINENO: result: $enable_atomic_spinlocks" >&5 -$as_echo "$enable_atomic_spinlocks" >&6; } - - { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_t" >&5 -$as_echo_n "checking whether kernel defines atomic64_t... " >&6; } - { $as_echo "$as_me:$LINENO: result: $have_atomic64_t" >&5 -$as_echo "$have_atomic64_t" >&6; } - { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_cmpxchg" >&5 -$as_echo_n "checking whether kernel defines atomic64_cmpxchg... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether header linux/fdtable.h exists" >&5 +$as_echo_n "checking whether header linux/fdtable.h exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -16800,14 +19899,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - atomic64_cmpxchg((atomic64_t *)NULL, 0, 0); + return 0; ; return 0; @@ -16816,9 +19914,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16830,13 +19930,14 @@ _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; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ATOMIC64_CMPXCHG 1 +#define HAVE_FDTABLE_HEADER 1 _ACEOF + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else $as_echo "$as_me: failed program was:" >&5 @@ -16847,14 +19948,17 @@ $as_echo "no" >&6; } + fi rm -Rf build - { $as_echo "$as_me:$LINENO: checking whether kernel defines atomic64_xchg" >&5 -$as_echo_n "checking whether kernel defines atomic64_xchg... " >&6; } + + + { $as_echo "$as_me:$LINENO: checking whether files_fdtable() is available" >&5 +$as_echo_n "checking whether files_fdtable() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -16865,13 +19969,19 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include + #ifdef HAVE_FDTABLE_HEADER + #include + #endif int main (void) { - atomic64_xchg((atomic64_t *)NULL, 0); + struct files_struct *files = current->files; + struct fdtable *fdt __attribute__ ((unused)); + fdt = files_fdtable(files); ; return 0; @@ -16880,9 +19990,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16898,7 +20010,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ATOMIC64_XCHG 1 +#define HAVE_FILES_FDTABLE 1 _ACEOF @@ -16917,8 +20029,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether kernel defines uintptr_t" >&5 -$as_echo_n "checking whether kernel defines uintptr_t... " >&6; } + + { $as_echo "$as_me:$LINENO: checking whether __clear_close_on_exec() is available" >&5 +$as_echo_n "checking whether __clear_close_on_exec() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -16929,13 +20042,16 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - uintptr_t *ptr __attribute__ ((unused)); + struct fdtable *fdt = NULL; + int fd = 0; + + __clear_close_on_exec(fd, fdt); ; return 0; @@ -16944,9 +20060,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16962,7 +20080,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_UINTPTR_T 1 +#define HAVE_CLEAR_CLOSE_ON_EXEC 1 _ACEOF @@ -16981,8 +20099,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether INIT_WORK wants 3 args" >&5 -$as_echo_n "checking whether INIT_WORK wants 3 args... " >&6; } + + { $as_echo "$as_me:$LINENO: checking whether header linux/uaccess.h exists" >&5 +$as_echo_n "checking whether header linux/uaccess.h exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -16993,14 +20112,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct work_struct work __attribute__ ((unused)); - INIT_WORK(&work, NULL, NULL); + return 0; ; return 0; @@ -17009,9 +20127,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17023,13 +20143,14 @@ _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; } cat >>confdefs.h <<\_ACEOF -#define HAVE_3ARGS_INIT_WORK 1 +#define HAVE_UACCESS_HEADER 1 _ACEOF + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else $as_echo "$as_me: failed program was:" >&5 @@ -17040,14 +20161,17 @@ $as_echo "no" >&6; } + fi rm -Rf build - { $as_echo "$as_me:$LINENO: checking whether register_sysctl_table() wants 2 args" >&5 -$as_echo_n "checking whether register_sysctl_table() wants 2 args... " >&6; } + + + { $as_echo "$as_me:$LINENO: checking whether kmalloc_node() is available" >&5 +$as_echo_n "checking whether kmalloc_node() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17058,13 +20182,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - (void) register_sysctl_table(NULL, 0); + void *a __attribute__ ((unused)); + a = kmalloc_node(1, GFP_KERNEL, 0); ; return 0; @@ -17073,9 +20198,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17091,7 +20218,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_REGISTER_SYSCTL 1 +#define HAVE_KMALLOC_NODE 1 _ACEOF @@ -17110,9 +20237,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether monotonic_clock() is available" >&5 +$as_echo_n "checking whether monotonic_clock() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether set_shrinker() available" >&5 -$as_echo_n "checking whether set_shrinker() available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17123,13 +20250,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - return set_shrinker(DEFAULT_SEEKS, NULL); + monotonic_clock(); ; return 0; @@ -17138,9 +20265,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17151,34 +20280,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_SHRINKER 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]monotonic_clock[[: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.*(monotonic_clock)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_MONOTONIC_CLOCK 1 +_ACEOF - rm -Rf build + fi + fi - { $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" + + { $as_echo "$as_me:$LINENO: checking whether struct inode has i_mutex" >&5 +$as_echo_n "checking whether struct inode has i_mutex... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17189,19 +20356,15 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - - int shrinker_cb(struct shrinker *, int, unsigned int); + #include + #include int main (void) { - struct shrinker cache_shrinker = { - .shrink = shrinker_cb, - .seeks = DEFAULT_SEEKS, - }; - register_shrinker(&cache_shrinker); + struct inode i; + mutex_init(&i.i_mutex); ; return 0; @@ -17210,9 +20373,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17228,7 +20393,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_3ARGS_SHRINKER_CALLBACK 1 +#define HAVE_INODE_I_MUTEX 1 _ACEOF @@ -17246,10 +20411,10 @@ 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; } + + { $as_echo "$as_me:$LINENO: checking whether struct mutex has owner" >&5 +$as_echo_n "checking whether struct mutex has owner... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17260,16 +20425,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct nameidata nd __attribute__ ((unused)); - - nd.path.mnt = NULL; - nd.path.dentry = NULL; + struct mutex mtx __attribute__ ((unused)); + mtx.owner = NULL; ; return 0; @@ -17278,9 +20441,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17296,7 +20461,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PATH_IN_NAMEIDATA 1 +#define HAVE_MUTEX_OWNER 1 _ACEOF @@ -17311,53 +20476,15 @@ $as_echo "no" >&6; } fi - rm -Rf build - - - - - { $as_echo "$as_me:$LINENO: checking whether symbol task_curr is exported" >&5 -$as_echo_n "checking whether symbol task_curr is exported... " >&6; } - grep -q -E '[[:space:]]task_curr[[:space:]]' \ - $LINUX_OBJ/Module*.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in kernel/sched.c; do - grep -q -E "EXPORT_SYMBOL.*(task_curr)" \ - "$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_TASK_CURR 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TASK_CURR 1 -_ACEOF + rm -Rf build - fi - { $as_echo "$as_me:$LINENO: checking whether unnumbered sysctl support exists" >&5 -$as_echo_n "checking whether unnumbered sysctl support exists... " >&6; } + + { $as_echo "$as_me:$LINENO: checking whether struct mutex owner is a task_struct" >&5 +$as_echo_n "checking whether struct mutex owner is a task_struct... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -17368,15 +20495,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - #ifndef CTL_UNNUMBERED - #error CTL_UNNUMBERED undefined - #endif + struct mutex mtx __attribute__ ((unused)); + mtx.owner = current; ; return 0; @@ -17385,9 +20511,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17403,7 +20531,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_CTL_UNNUMBERED 1 +#define HAVE_MUTEX_OWNER_TASK_STRUCT 1 _ACEOF @@ -17421,10 +20549,11 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:$LINENO: checking whether struct ctl_table has ctl_name" >&5 -$as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether mutex_lock_nested() is available" >&5 +$as_echo_n "checking whether mutex_lock_nested() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17435,14 +20564,15 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct ctl_table ctl __attribute__ ((unused)); - ctl.ctl_name = 0; + struct mutex mutex; + mutex_init(&mutex); + mutex_lock_nested(&mutex, 0); ; return 0; @@ -17451,9 +20581,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17469,7 +20601,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_CTL_NAME 1 +#define HAVE_MUTEX_LOCK_NESTED 1 _ACEOF @@ -17488,8 +20620,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether fls64() is available" >&5 -$as_echo_n "checking whether fls64() is available... " >&6; } + + { $as_echo "$as_me:$LINENO: checking whether on_each_cpu() wants 3 args" >&5 +$as_echo_n "checking whether on_each_cpu() wants 3 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17500,13 +20633,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - return fls64(0); + on_each_cpu(NULL, NULL, 0); ; return 0; @@ -17515,9 +20648,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17533,7 +20668,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_FLS64 1 +#define HAVE_3ARGS_ON_EACH_CPU 1 _ACEOF @@ -17552,52 +20687,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether kallsyms_lookup_name() is available" >&5 +$as_echo_n "checking whether kallsyms_lookup_name() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol device_create is exported" >&5 -$as_echo_n "checking whether symbol device_create is exported... " >&6; } - grep -q -E '[[:space:]]device_create[[:space:]]' \ - $LINUX_OBJ/Module*.symvers 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in drivers/base/core.c; do - grep -q -E "EXPORT_SYMBOL.*(device_create)" \ - "$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_DEVICE_CREATE 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DEVICE_CREATE 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether device_create() wants 5 args" >&5 -$as_echo_n "checking whether device_create() wants 5 args... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -17608,13 +20700,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - device_create(NULL, NULL, 0, NULL, "%d", 1); + kallsyms_lookup_name(NULL); ; return 0; @@ -17623,9 +20715,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17636,22 +20730,11 @@ _ACEOF 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_5ARGS_DEVICE_CREATE 1 -_ACEOF - - + rc=0 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; } - + rc=1 fi @@ -17659,93 +20742,124 @@ fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol class_device_create is exported" >&5 -$as_echo_n "checking whether symbol class_device_create is exported... " >&6; } - grep -q -E '[[:space:]]class_device_create[[:space:]]' \ + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]kallsyms_lookup_name[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in drivers/base/class.c; do - grep -q -E "EXPORT_SYMBOL.*(class_device_create)" \ + for file in ; do + grep -q -E "EXPORT_SYMBOL.*(kallsyms_lookup_name)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_CLASS_DEVICE_CREATE 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_CLASS_DEVICE_CREATE 1 +#define HAVE_KALLSYMS_LOOKUP_NAME 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether get_vmalloc_info() is available" >&5 +$as_echo_n "checking whether get_vmalloc_info() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether symbol set_normalized_timespec is exported" >&5 -$as_echo_n "checking whether symbol set_normalized_timespec is exported... " >&6; } - grep -q -E '[[:space:]]set_normalized_timespec[[:space:]]' \ + grep -q -E '[[:space:]]get_vmalloc_info[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in kernel/time.c; do - grep -q -E "EXPORT_SYMBOL.*(set_normalized_timespec)" \ + for file in ; do + grep -q -E "EXPORT_SYMBOL.*(get_vmalloc_info)" \ "$LINUX_OBJ/$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 + 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 + else : + + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_EXPORT 1 +#define HAVE_GET_VMALLOC_INFO 1 _ACEOF + fi - else + else : + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_EXPORT 1 +#define HAVE_GET_VMALLOC_INFO 1 _ACEOF + fi - { $as_echo "$as_me:$LINENO: checking whether set_normalized_timespec() is an inline" >&5 -$as_echo_n "checking whether set_normalized_timespec() is an inline... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether symbol *_pgdat exist" >&5 +$as_echo_n "checking whether symbol *_pgdat exist... " >&6; } + grep -q -E 'first_online_pgdat' $LINUX/include/linux/mmzone.h 2>/dev/null + rc=$? + if test $rc -eq 0; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PGDAT_HELPERS 1 +_ACEOF + + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:$LINENO: checking whether first_online_pgdat() is available" >&5 +$as_echo_n "checking whether first_online_pgdat() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -17756,14 +20870,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - void set_normalized_timespec(struct timespec *ts, - time_t sec, long nsec) { } + #include int main (void) { + first_online_pgdat(); + ; return 0; } @@ -17771,9 +20885,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17784,22 +20900,11 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - + rc=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SET_NORMALIZED_TIMESPEC_INLINE 1 -_ACEOF - - + rc=1 fi @@ -17807,78 +20912,60 @@ fi rm -Rf build + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:$LINENO: checking whether timespec_sub() is available" >&5 -$as_echo_n "checking whether timespec_sub() 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 timespec a = { 0 }; - struct timespec b = { 0 }; - struct timespec c __attribute__ ((unused)); - c = timespec_sub(a, b); - - ; - 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_TIMESPEC_SUB 1 -_ACEOF + else + if test "x$enable_linux_builtin" != xyes; then + grep -q -E '[[:space:]]first_online_pgdat[[: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.*(first_online_pgdat)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_FIRST_ONLINE_PGDAT 1 +_ACEOF - rm -Rf build + fi + fi + { $as_echo "$as_me:$LINENO: checking whether next_online_pgdat() is available" >&5 +$as_echo_n "checking whether next_online_pgdat() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether init_utsname() is available" >&5 -$as_echo_n "checking whether init_utsname() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17889,14 +20976,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct new_utsname *a __attribute__ ((unused)); - a = init_utsname(); + next_online_pgdat(NULL); ; return 0; @@ -17905,9 +20991,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17918,33 +21006,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_INIT_UTSNAME 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]next_online_pgdat[[: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.*(next_online_pgdat)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_NEXT_ONLINE_PGDAT 1 +_ACEOF - rm -Rf build + fi + fi + { $as_echo "$as_me:$LINENO: checking whether next_zone() is available" >&5 +$as_echo_n "checking whether next_zone() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether header linux/fdtable.h exists" >&5 -$as_echo_n "checking whether header linux/fdtable.h exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -17955,13 +21082,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - return 0; + next_zone(NULL); ; return 0; @@ -17970,9 +21097,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17983,36 +21112,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 -cat >>confdefs.h <<\_ACEOF -#define HAVE_FDTABLE_HEADER 1 -_ACEOF +fi - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]next_zone[[: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.*(next_zone)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else : -fi + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } - rm -Rf build +cat >>confdefs.h <<\_ACEOF +#define HAVE_NEXT_ZONE 1 +_ACEOF + fi + fi + { $as_echo "$as_me:$LINENO: checking whether pgdat_list is available" >&5 +$as_echo_n "checking whether pgdat_list is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether files_fdtable() is available" >&5 -$as_echo_n "checking whether files_fdtable() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18023,20 +21188,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include - #ifdef HAVE_FDTABLE_HEADER - #include - #endif + #include + pg_data_t *tmp = pgdat_list; int main (void) { - struct files_struct *files = current->files; - struct fdtable *fdt __attribute__ ((unused)); - fdt = files_fdtable(files); - ; return 0; } @@ -18044,9 +21202,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18057,33 +21217,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_FILES_FDTABLE 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]pgdat_list[[: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.*(pgdat_list)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_PGDAT_LIST 1 +_ACEOF - rm -Rf build + fi + fi - { $as_echo "$as_me:$LINENO: checking whether __clear_close_on_exec() is available" >&5 -$as_echo_n "checking whether __clear_close_on_exec() is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether global_page_state() is available" >&5 +$as_echo_n "checking whether global_page_state() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18094,16 +21293,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct fdtable *fdt = NULL; - int fd = 0; - - __clear_close_on_exec(fd, fdt); + unsigned long state __attribute__ ((unused)); + state = global_page_state(0); ; return 0; @@ -18112,9 +21309,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18130,7 +21329,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_CLEAR_CLOSE_ON_EXEC 1 +#define HAVE_GLOBAL_PAGE_STATE 1 _ACEOF @@ -18150,8 +21349,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether header linux/uaccess.h exists" >&5 -$as_echo_n "checking whether header linux/uaccess.h exists... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_FREE_PAGES is available" >&5 +$as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18162,13 +21361,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - return 0; + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_FREE_PAGES; ; return 0; @@ -18177,9 +21377,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18191,14 +21393,13 @@ _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; } cat >>confdefs.h <<\_ACEOF -#define HAVE_UACCESS_HEADER 1 +#define HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES 1 _ACEOF - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else $as_echo "$as_me: failed program was:" >&5 @@ -18209,7 +21410,6 @@ $as_echo "no" >&6; } - fi rm -Rf build @@ -18217,9 +21417,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether kmalloc_node() is available" >&5 -$as_echo_n "checking whether kmalloc_node() is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18230,14 +21429,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - void *a __attribute__ ((unused)); - a = kmalloc_node(1, GFP_KERNEL, 0); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_INACTIVE; ; return 0; @@ -18246,9 +21445,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18264,7 +21465,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_KMALLOC_NODE 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE 1 _ACEOF @@ -18283,50 +21484,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether symbol monotonic_clock is exported" >&5 -$as_echo_n "checking whether symbol monotonic_clock is exported... " >&6; } - grep -q -E '[[:space:]]monotonic_clock[[: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.*(monotonic_clock)" \ - "$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_MONOTONIC_CLOCK 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MONOTONIC_CLOCK 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether struct inode has i_mutex" >&5 -$as_echo_n "checking whether struct inode has i_mutex... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_ANON is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE_ANON is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18337,15 +21496,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - struct inode i; - mutex_init(&i.i_mutex); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_INACTIVE_ANON; ; return 0; @@ -18354,9 +21512,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18372,7 +21532,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_INODE_I_MUTEX 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON 1 _ACEOF @@ -18391,9 +21551,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether struct mutex has owner" >&5 -$as_echo_n "checking whether struct mutex has owner... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_FILE is available" >&5 +$as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18404,14 +21563,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct mutex mtx __attribute__ ((unused)); - mtx.owner = NULL; + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_INACTIVE_FILE; ; return 0; @@ -18420,9 +21579,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18438,7 +21599,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_MUTEX_OWNER 1 +#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE 1 _ACEOF @@ -18458,10 +21619,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether struct mutex owner is a task_struct" >&5 -$as_echo_n "checking whether struct mutex owner is a task_struct... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" + { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18472,14 +21631,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct mutex mtx __attribute__ ((unused)); - mtx.owner = current; + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE; ; return 0; @@ -18488,9 +21647,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18506,7 +21667,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_MUTEX_OWNER_TASK_STRUCT 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE 1 _ACEOF @@ -18524,11 +21685,9 @@ fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" - - { $as_echo "$as_me:$LINENO: checking whether mutex_lock_nested() is available" >&5 -$as_echo_n "checking whether mutex_lock_nested() is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_ANON is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18539,15 +21698,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct mutex mutex; - mutex_init(&mutex); - mutex_lock_nested(&mutex, 0); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE_ANON; ; return 0; @@ -18556,9 +21714,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18574,7 +21734,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_MUTEX_LOCK_NESTED 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON 1 _ACEOF @@ -18593,9 +21753,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether on_each_cpu() wants 3 args" >&5 -$as_echo_n "checking whether on_each_cpu() wants 3 args... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_FILE is available" >&5 +$as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18606,13 +21765,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - on_each_cpu(NULL, NULL, 0); + enum zone_stat_item zsi __attribute__ ((unused)); + zsi = NR_ACTIVE_FILE; ; return 0; @@ -18621,9 +21781,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18639,7 +21801,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_3ARGS_ON_EACH_CPU 1 +#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE 1 _ACEOF @@ -18659,272 +21821,80 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol kallsyms_lookup_name is exported" >&5 -$as_echo_n "checking whether symbol kallsyms_lookup_name is exported... " >&6; } - grep -q -E '[[:space:]]kallsyms_lookup_name[[: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.*(kallsyms_lookup_name)" \ - "$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_KALLSYMS_LOOKUP_NAME 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_KALLSYMS_LOOKUP_NAME 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol get_vmalloc_info is exported" >&5 -$as_echo_n "checking whether symbol get_vmalloc_info is exported... " >&6; } - grep -q -E '[[:space:]]get_vmalloc_info[[: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.*(get_vmalloc_info)" \ - "$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_GET_VMALLOC_INFO 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GET_VMALLOC_INFO 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol *_pgdat exist" >&5 -$as_echo_n "checking whether symbol *_pgdat exist... " >&6; } - grep -q -E 'first_online_pgdat' $LINUX/include/linux/mmzone.h 2>/dev/null - rc=$? - if test $rc -eq 0; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_PGDAT_HELPERS 1 -_ACEOF - - else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - fi - - - { $as_echo "$as_me:$LINENO: checking whether symbol first_online_pgdat is exported" >&5 -$as_echo_n "checking whether symbol first_online_pgdat is exported... " >&6; } - grep -q -E '[[:space:]]first_online_pgdat[[: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.*(first_online_pgdat)" \ - "$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_FIRST_ONLINE_PGDAT 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_FIRST_ONLINE_PGDAT 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol next_online_pgdat is exported" >&5 -$as_echo_n "checking whether symbol next_online_pgdat is exported... " >&6; } - grep -q -E '[[:space:]]next_online_pgdat[[: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.*(next_online_pgdat)" \ - "$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_NEXT_ONLINE_PGDAT 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ONLINE_PGDAT 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol next_zone is exported" >&5 -$as_echo_n "checking whether symbol next_zone is exported... " >&6; } - grep -q -E '[[:space:]]next_zone[[: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.*(next_zone)" \ - "$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 symbol get_zone_counts is needed" >&5 +$as_echo_n "checking whether symbol get_zone_counts is needed... " >&6; } - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEXT_ZONE 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_NEXT_ZONE 1 -_ACEOF - fi +int +main (void) +{ + #if !defined(HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES) + #error "global_page_state needs NR_FREE_PAGES" + #endif + #if !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE) + #error "global_page_state needs NR_ACTIVE*" + #endif - { $as_echo "$as_me:$LINENO: checking whether symbol pgdat_list is exported" >&5 -$as_echo_n "checking whether symbol pgdat_list is exported... " >&6; } - grep -q -E '[[:space:]]pgdat_list[[: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.*(pgdat_list)" \ - "$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; } + #if !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON) && \ + !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE) + #error "global_page_state needs NR_INACTIVE*" + #endif - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + ; + return 0; +} -cat >>confdefs.h <<\_ACEOF -#define HAVE_PGDAT_LIST 1 _ACEOF - fi - else + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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" >&5 +$as_echo "no" >&6; } + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PGDAT_LIST 1 +#define NEED_GET_ZONE_COUNTS 1 _ACEOF - fi - + { $as_echo "$as_me:$LINENO: checking whether get_zone_counts() is available" >&5 +$as_echo_n "checking whether get_zone_counts() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether global_page_state() is available" >&5 -$as_echo_n "checking whether global_page_state() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18935,14 +21905,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - unsigned long state __attribute__ ((unused)); - state = global_page_state(0); + get_zone_counts(NULL, NULL, NULL); ; return 0; @@ -18951,9 +21920,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18964,21 +21935,68 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]get_zone_counts[[: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.*(get_zone_counts)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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_GLOBAL_PAGE_STATE 1 +#define HAVE_GET_ZONE_COUNTS 1 _ACEOF -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + fi + fi - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -18988,9 +22006,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether user_path_dir() is available" >&5 +$as_echo_n "checking whether user_path_dir() is available... " >&6; } - { $as_echo "$as_me:$LINENO: checking whether page state NR_FREE_PAGES is available" >&5 -$as_echo_n "checking whether page state NR_FREE_PAGES is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -19001,14 +22019,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_FREE_PAGES; + user_path_dir(NULL, NULL); ; return 0; @@ -19017,9 +22035,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19030,33 +22050,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]user_path_at[[: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.*(user_path_at)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } -fi + else : - rm -Rf build + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_USER_PATH_DIR 1 +_ACEOF + fi + fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether set_fs_pwd() is available" >&5 +$as_echo_n "checking whether set_fs_pwd() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -19067,14 +22126,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE; + (void) set_fs_pwd; ; return 0; @@ -19083,9 +22142,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19096,32 +22157,71 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]set_fs_pwd[[: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.*(set_fs_pwd)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_SET_FS_PWD 1 +_ACEOF - rm -Rf build + fi + fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_ANON is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE_ANON is available... " >&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; } cat confdefs.h - <<_ACEOF >conftest.c @@ -19132,14 +22232,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE_ANON; + set_fs_pwd(NULL, NULL); ; return 0; @@ -19148,9 +22248,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19166,7 +22268,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON 1 +#define HAVE_2ARGS_SET_FS_PWD 1 _ACEOF @@ -19185,8 +22287,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_INACTIVE_FILE is available" >&5 -$as_echo_n "checking whether page state NR_INACTIVE_FILE is available... " >&6; } + { $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 @@ -19197,14 +22299,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_INACTIVE_FILE; + vfs_unlink(NULL, NULL); ; return 0; @@ -19213,9 +22314,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19231,7 +22334,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE 1 +#define HAVE_2ARGS_VFS_UNLINK 1 _ACEOF @@ -19250,9 +22353,8 @@ fi - - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE is available... " >&6; } + { $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 @@ -19263,14 +22365,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE; + vfs_rename(NULL, NULL, NULL, NULL); ; return 0; @@ -19279,9 +22380,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19297,7 +22400,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE 1 +#define HAVE_4ARGS_VFS_RENAME 1 _ACEOF @@ -19316,8 +22419,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_ANON is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE_ANON is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() is available" >&5 +$as_echo_n "checking whether vfs_fsync() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -19328,14 +22432,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE_ANON; + (void) vfs_fsync; ; return 0; @@ -19344,9 +22447,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19357,32 +22462,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON 1 -_ACEOF +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + grep -q -E '[[:space:]]vfs_fsync[[:space:]]' \ + $LINUX_OBJ/Module*.symvers 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/sync.c; do + grep -q -E "EXPORT_SYMBOL.*(vfs_fsync)" \ + "$LINUX_OBJ/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + fi + if test $rc -ne 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; } -fi +cat >>confdefs.h <<\_ACEOF +#define HAVE_VFS_FSYNC 1 +_ACEOF - rm -Rf build + + fi + fi - { $as_echo "$as_me:$LINENO: checking whether page state NR_ACTIVE_FILE is available" >&5 -$as_echo_n "checking whether page state NR_ACTIVE_FILE is available... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5 +$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -19393,14 +22538,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - enum zone_stat_item zsi __attribute__ ((unused)); - zsi = NR_ACTIVE_FILE; + vfs_fsync(NULL, 0); ; return 0; @@ -19409,9 +22553,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19427,7 +22573,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE 1 +#define HAVE_2ARGS_VFS_FSYNC 1 _ACEOF @@ -19447,8 +22593,10 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol get_zone_counts is needed" >&5 -$as_echo_n "checking whether symbol get_zone_counts is needed... " >&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; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -19459,26 +22607,15 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + #include + #include int main (void) { - #if !defined(HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES) - #error "global_page_state needs NR_FREE_PAGES" - #endif - - #if !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE) - #error "global_page_state needs NR_ACTIVE*" - #endif - - #if !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON) && \ - !defined(HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE) - #error "global_page_state needs NR_INACTIVE*" - #endif + struct fs_struct fs; + spin_lock_init(&fs.lock); ; return 0; @@ -19487,9 +22624,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19501,60 +22640,20 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define NEED_GET_ZONE_COUNTS 1 -_ACEOF - - - { $as_echo "$as_me:$LINENO: checking whether symbol get_zone_counts is exported" >&5 -$as_echo_n "checking whether symbol get_zone_counts is exported... " >&6; } - grep -q -E '[[:space:]]get_zone_counts[[: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.*(get_zone_counts)" \ - "$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_GET_ZONE_COUNTS 1 +#define HAVE_FS_STRUCT_SPINLOCK 1 _ACEOF - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GET_ZONE_COUNTS 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; } @@ -19563,91 +22662,11 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:$LINENO: checking whether symbol user_path_at is exported" >&5 -$as_echo_n "checking whether symbol user_path_at is exported... " >&6; } - grep -q -E '[[:space:]]user_path_at[[: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.*(user_path_at)" \ - "$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_USER_PATH_DIR 1 -_ACEOF - - fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_USER_PATH_DIR 1 -_ACEOF - - fi - - - - { $as_echo "$as_me:$LINENO: checking whether symbol set_fs_pwd is exported" >&5 -$as_echo_n "checking whether symbol set_fs_pwd is exported... " >&6; } - grep -q -E '[[:space:]]set_fs_pwd[[: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.*(set_fs_pwd)" \ - "$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_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; } + { $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 @@ -19658,14 +22677,14 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - set_fs_pwd(NULL, NULL); + struct cred *cr __attribute__ ((unused)); + cr = NULL; ; return 0; @@ -19674,9 +22693,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19692,7 +22713,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_SET_FS_PWD 1 +#define HAVE_CRED_STRUCT 1 _ACEOF @@ -19711,8 +22732,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 groups_search() is available" >&5 +$as_echo_n "checking whether groups_search() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -19723,13 +22745,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - vfs_unlink(NULL, NULL); + groups_search(NULL, 0); ; return 0; @@ -19738,9 +22760,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19751,32 +22775,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_VFS_UNLINK 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } -fi + else : - rm -Rf build + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +cat >>confdefs.h <<\_ACEOF +#define HAVE_GROUPS_SEARCH 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; } + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether __put_task_struct() is available" >&5 +$as_echo_n "checking whether __put_task_struct() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -19787,13 +22851,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - vfs_rename(NULL, NULL, NULL, NULL); + __put_task_struct(NULL); ; return 0; @@ -19802,9 +22866,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19815,22 +22881,11 @@ _ACEOF 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_4ARGS_VFS_RENAME 1 -_ACEOF - - + rc=0 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; } - + rc=1 fi @@ -19838,51 +22893,60 @@ fi rm -Rf build + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol vfs_fsync is exported" >&5 -$as_echo_n "checking whether symbol vfs_fsync is exported... " >&6; } - grep -q -E '[[:space:]]vfs_fsync[[:space:]]' \ + 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 fs/sync.c; do - grep -q -E "EXPORT_SYMBOL.*(vfs_fsync)" \ + 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 + 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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_VFS_FSYNC 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_VFS_FSYNC 1 +#define HAVE_PUT_TASK_STRUCT 1 _ACEOF + + fi fi - { $as_echo "$as_me:$LINENO: checking whether vfs_fsync() wants 2 args" >&5 -$as_echo_n "checking whether vfs_fsync() wants 2 args... " >&6; } + { $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 @@ -19893,13 +22957,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - vfs_fsync(NULL, 0); + proc_dostring(NULL, 0, NULL, NULL, NULL); ; return 0; @@ -19908,9 +22972,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19926,7 +22992,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_VFS_FSYNC 1 +#define HAVE_5ARGS_PROC_HANDLER 1 _ACEOF @@ -19945,11 +23011,9 @@ fi + { $as_echo "$as_me:$LINENO: checking whether kvasprintf() is available" >&5 +$as_echo_n "checking whether kvasprintf() is available... " >&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; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" cat confdefs.h - <<_ACEOF >conftest.c @@ -19960,15 +23024,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #include + #include int main (void) { - struct fs_struct fs; - spin_lock_init(&fs.lock); + kvasprintf(0, NULL, *((va_list*)NULL)); ; return 0; @@ -19977,9 +23039,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19990,34 +23054,72 @@ _ACEOF ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_FS_STRUCT_SPINLOCK 1 -_ACEOF +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + + if test $rc -ne 0; then : { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + 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 : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -fi + fi + if test $rc -ne 0; then : - rm -Rf build + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else : - EXTRA_KCFLAGS="$tmp_flags" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_KVASPRINTF 1 +_ACEOF - { $as_echo "$as_me:$LINENO: checking whether struct cred exists" >&5 -$as_echo_n "checking whether struct cred exists... " >&6; } + fi + fi + + + { $as_echo "$as_me:$LINENO: checking whether rwsem_is_locked() acquires sem->wait_lock" >&5 +$as_echo_n "checking whether rwsem_is_locked() acquires sem->wait_lock... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -20028,15 +23130,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + int rwsem_is_locked(struct rw_semaphore *sem) { return 0; } int main (void) { - struct cred *cr __attribute__ ((unused)); - cr = NULL; - ; return 0; } @@ -20044,9 +23144,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20057,22 +23159,11 @@ _ACEOF 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 - - + rc=0 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; } - + rc=1 fi @@ -20080,92 +23171,61 @@ fi rm -Rf build + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $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:]]' \ + 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 - 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 - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GROUPS_SEARCH 1 -_ACEOF - + if test $export -eq 0; then : + rc=1 + else : + rc=0 fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GROUPS_SEARCH 1 -_ACEOF - + else : + rc=0 fi + fi + if test $rc -ne 0; then : - - { $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 "$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 + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_PUT_TASK_STRUCT 1 +#define RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1 _ACEOF + + fi 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() is available" >&5 +$as_echo_n "checking whether invalidate_inodes() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -20176,13 +23236,13 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - proc_dostring(NULL, 0, NULL, NULL, NULL); + invalidate_inodes; ; return 0; @@ -20191,9 +23251,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20204,22 +23266,11 @@ _ACEOF 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_5ARGS_PROC_HANDLER 1 -_ACEOF - - + rc=0 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; } - + rc=1 fi @@ -20227,131 +23278,120 @@ fi rm -Rf build + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $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:]]' \ + 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.*(kvasprintf)" \ + grep -q -E "EXPORT_SYMBOL.*(invalidate_inodes)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_KVASPRINTF 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_KVASPRINTF 1 +#define HAVE_INVALIDATE_INODES 1 _ACEOF + + fi fi + { $as_echo "$as_me:$LINENO: checking whether invalidate_inodes_check() is available" >&5 +$as_echo_n "checking whether invalidate_inodes_check() is available... " >&6; } - { $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 +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 RWSEM_IS_LOCKED_TAKES_WAIT_LOCK 1 + #include + +int +main (void) +{ + + invalidate_inodes_check(NULL, 0); + + ; + return 0; +} + _ACEOF - fi + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + rm -Rf build - { $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; } + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_INVALIDATE_INODES 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } - 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 + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol invalidate_inodes_check is exported" >&5 -$as_echo_n "checking whether symbol invalidate_inodes_check is exported... " >&6; } grep -q -E '[[:space:]]invalidate_inodes_check[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -20361,25 +23401,28 @@ $as_echo_n "checking whether symbol invalidate_inodes_check is exported... " >&6 grep -q -E "EXPORT_SYMBOL.*(invalidate_inodes_check)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_INVALIDATE_INODES_CHECK 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -20387,6 +23430,8 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_INVALIDATE_INODES_CHECK 1 _ACEOF + + fi fi @@ -20417,9 +23462,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20454,9 +23501,69 @@ fi + { $as_echo "$as_me:$LINENO: checking whether shrink_dcache_memory() is available" >&5 +$as_echo_n "checking whether shrink_dcache_memory() 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) +{ + + shrink_dcache_memory(0, 0); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then - { $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=$? @@ -20466,38 +23573,103 @@ $as_echo_n "checking whether symbol shrink_dcache_memory is exported... " >&6; } 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 + 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 + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 + 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; } + fi + + + { $as_echo "$as_me:$LINENO: checking whether shrink_icache_memory() is available" >&5 +$as_echo_n "checking whether shrink_icache_memory() 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) +{ + + shrink_icache_memory(0, 0); + + ; + return 0; +} -cat >>confdefs.h <<\_ACEOF -#define HAVE_SHRINK_DCACHE_MEMORY 1 _ACEOF - fi + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then - { $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=$? @@ -20507,25 +23679,28 @@ $as_echo_n "checking whether symbol shrink_icache_memory is exported... " >&6; } 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 + 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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_SHRINK_ICACHE_MEMORY 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -20533,6 +23708,8 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_SHRINK_ICACHE_MEMORY 1 _ACEOF + + fi fi @@ -20544,10 +23721,10 @@ $as_echo_n "checking whether symbol kern_path_parent exists in header... " >&6; for file in include/linux/namei.h; do grep -q "int kern_path_parent(const char \*, struct nameidata \*)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - header=1 - break; - fi + if test $rc -eq 0; then + header=1 + break; + fi done if test $header -eq 0; then { $as_echo "$as_me:$LINENO: result: no" >&5 @@ -20564,9 +23741,69 @@ _ACEOF fi + { $as_echo "$as_me:$LINENO: checking whether kern_path_parent() is available" >&5 +$as_echo_n "checking whether kern_path_parent() 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) +{ + + kern_path_parent(NULL, NULL); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' + { (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 + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + +fi + + rm -Rf build + + + if test $rc -ne 0; then : + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then - { $as_echo "$as_me:$LINENO: checking whether symbol kern_path_parent is exported" >&5 -$as_echo_n "checking whether symbol kern_path_parent is exported... " >&6; } grep -q -E '[[:space:]]kern_path_parent[[:space:]]' \ $LINUX_OBJ/Module*.symvers 2>/dev/null rc=$? @@ -20576,25 +23813,28 @@ $as_echo_n "checking whether symbol kern_path_parent is exported... " >&6; } grep -q -E "EXPORT_SYMBOL.*(kern_path_parent)" \ "$LINUX_OBJ/$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; } + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + fi + if test $rc -ne 0; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_KERN_PATH_PARENT_SYMBOL 1 -_ACEOF + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + else : - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -20602,6 +23842,8 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_KERN_PATH_PARENT_SYMBOL 1 _ACEOF + + fi fi @@ -20632,9 +23874,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20700,9 +23944,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20769,9 +24015,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20848,9 +24096,11 @@ main (void) _ACEOF - rm -Rf build && mkdir -p build + rm -Rf build && mkdir -p build && touch build/conftest.mod.c 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' + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + 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 $modpost_flag' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20886,20 +24136,19 @@ fi - ;; + ;; srpm) ;; - *) - { $as_echo "$as_me:$LINENO: result: Error!" >&5 + *) + { $as_echo "$as_me:$LINENO: result: Error!" >&5 $as_echo "Error!" >&6; } - { { $as_echo "$as_me:$LINENO: error: Bad value \"$SPL_CONFIG\" for --with-config, - user kernel|user|all|srpm" >&5 + { { $as_echo "$as_me:$LINENO: error: Bad value \"$SPL_CONFIG\" for --with-config, + user kernel|user|all|srpm" >&5 $as_echo "$as_me: error: Bad value \"$SPL_CONFIG\" for --with-config, - user kernel|user|all|srpm" >&2;} + user kernel|user|all|srpm" >&2;} { (exit 1); exit 1; }; } ;; - esac + esac - if test "$SPL_CONFIG" = user || - test "$SPL_CONFIG" = all; then + if test "$SPL_CONFIG" = user -o "$SPL_CONFIG" = all; then CONFIG_USER_TRUE= CONFIG_USER_FALSE='#' else @@ -20907,8 +24156,8 @@ else CONFIG_USER_FALSE= fi - if test "$SPL_CONFIG" = kernel || - test "$SPL_CONFIG" = all; then + if test "$SPL_CONFIG" = kernel -o "$SPL_CONFIG" = all && + test "x$enable_linux_builtin" != xyes ; then CONFIG_KERNEL_TRUE= CONFIG_KERNEL_FALSE='#' else diff --git a/copy-builtin b/copy-builtin new file mode 100755 index 00000000..3277270d --- /dev/null +++ b/copy-builtin @@ -0,0 +1,122 @@ +#!/bin/bash + +set -e + +usage() +{ + echo "usage: $0 " >&2 + exit 1 +} + +[ "$#" -eq 1 ] || usage +KERNEL_DIR="$(readlink --canonicalize-existing "$1")" + +MODULES=() +for MODULE_DIR in module/* +do + [ -d "$MODULE_DIR" ] || continue + MODULES+=("${MODULE_DIR##*/}") +done + +if ! [ -e 'spl_config.h' ] +then + echo >&2 + echo " $0: you did not run configure, or you're not in the SPL source directory." >&2 + echo " $0: run configure with --with-linux=$KERNEL_DIR and --enable-linux-builtin." >&2 + echo >&2 + exit 1 +fi + +make clean || true + +rm -rf "$KERNEL_DIR/include/spl" "$KERNEL_DIR/spl" +cp --recursive include "$KERNEL_DIR/include/spl" +cp --recursive module "$KERNEL_DIR/spl" +cp spl_config.h "$KERNEL_DIR/" + +adjust_obj_paths() +{ + local FILE="$1" + local LINE OBJPATH + + while IFS='' read -r LINE + do + OBJPATH="${LINE#\$(MODULE)-objs += }" + if [ "$OBJPATH" = "$LINE" ] + then + echo "$LINE" + else + echo "\$(MODULE)-objs += ${OBJPATH##*/}" + fi + done < "$FILE" > "$FILE.new" + mv "$FILE.new" "$FILE" +} + +for MODULE in "${MODULES[@]}" +do + adjust_obj_paths "$KERNEL_DIR/spl/$MODULE/Makefile" +done + +cat > "$KERNEL_DIR/spl/Kconfig" <<"EOF" +config SPL + tristate "Solaris Porting Layer (SPL)" + help + This is the SPL library from the ZFS On Linux project. + + See http://zfsonlinux.org/ + + To compile this library as a module, choose M here. + + If unsure, say N. +EOF + +{ + cat <<-"EOF" + SPL_MODULE_CFLAGS = -I$(srctree)/include/spl + SPL_MODULE_CFLAGS += -include $(srctree)/spl_config.h + export SPL_MODULE_CFLAGS + + obj-$(CONFIG_SPL) := + EOF + + for MODULE in "${MODULES[@]}" + do + echo 'obj-$(CONFIG_SPL) += ' "$MODULE/" + done +} > "$KERNEL_DIR/spl/Kbuild" + +add_after() +{ + local FILE="$1" + local MARKER="$2" + local NEW="$3" + local LINE + + while IFS='' read -r LINE + do + echo "$LINE" + + if [ -n "$MARKER" -a "$LINE" = "$MARKER" ] + then + echo "$NEW" + MARKER='' + if IFS='' read -r LINE + then + [ "$LINE" != "$NEW" ] && echo "$LINE" + fi + fi + done < "$FILE" > "$FILE.new" + + mv "$FILE.new" "$FILE" +} + +add_after "$KERNEL_DIR/Kconfig" 'source "arch/$SRCARCH/Kconfig"' 'source "spl/Kconfig"' +# We must take care to build SPL before ZFS, else module initialization order will be wrong +sed -i 's#kernel/ mm/ fs/#kernel/ mm/ spl/ fs/#' "$KERNEL_DIR/Makefile" + +echo >&2 +echo " $0: done." >&2 +echo " $0: now you can build the kernel with SPL support." >&2 +echo " $0: make sure you enable SPL support (CONFIG_SPL) before building." >&2 +echo >&2 + diff --git a/module/Makefile.in b/module/Makefile.in index 0a7fd02a..d291951f 100644 --- a/module/Makefile.in +++ b/module/Makefile.in @@ -3,8 +3,12 @@ subdir-m += splat INSTALL=/usr/bin/install +SPL_MODULE_CFLAGS = -I@abs_top_srcdir@/include +SPL_MODULE_CFLAGS += -include @abs_top_builddir@/spl_config.h +export SPL_MODULE_CFLAGS + modules: - $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ $@ + $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ CONFIG_SPL=m $@ clean: @# Only cleanup the kernel build directories when CONFIG_KERNEL diff --git a/module/spl/Makefile.in b/module/spl/Makefile.in index 4f54f124..34b48012 100644 --- a/module/spl/Makefile.in +++ b/module/spl/Makefile.in @@ -1,29 +1,27 @@ # Makefile.in for spl kernel module -MODULES := spl -EXTRA_CFLAGS = @KERNELCPPFLAGS@ -EXTRA_CFLAGS += -I@abs_top_srcdir@/include -EXTRA_CFLAGS += -include @abs_top_builddir@/spl_config.h +MODULE := spl +EXTRA_CFLAGS = $(SPL_MODULE_CFLAGS) @KERNELCPPFLAGS@ # Solaris porting layer module -obj-m := spl.o +obj-$(CONFIG_SPL) := $(MODULE).o -spl-objs += @top_srcdir@/module/spl/spl-debug.o -spl-objs += @top_srcdir@/module/spl/spl-proc.o -spl-objs += @top_srcdir@/module/spl/spl-kmem.o -spl-objs += @top_srcdir@/module/spl/spl-thread.o -spl-objs += @top_srcdir@/module/spl/spl-taskq.o -spl-objs += @top_srcdir@/module/spl/spl-rwlock.o -spl-objs += @top_srcdir@/module/spl/spl-vnode.o -spl-objs += @top_srcdir@/module/spl/spl-err.o -spl-objs += @top_srcdir@/module/spl/spl-time.o -spl-objs += @top_srcdir@/module/spl/spl-kobj.o -spl-objs += @top_srcdir@/module/spl/spl-generic.o -spl-objs += @top_srcdir@/module/spl/spl-atomic.o -spl-objs += @top_srcdir@/module/spl/spl-mutex.o -spl-objs += @top_srcdir@/module/spl/spl-kstat.o -spl-objs += @top_srcdir@/module/spl/spl-condvar.o -spl-objs += @top_srcdir@/module/spl/spl-xdr.o -spl-objs += @top_srcdir@/module/spl/spl-cred.o -spl-objs += @top_srcdir@/module/spl/spl-tsd.o -spl-objs += @top_srcdir@/module/spl/spl-zlib.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-debug.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-proc.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-kmem.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-thread.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-taskq.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-rwlock.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-vnode.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-err.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-time.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-kobj.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-generic.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-atomic.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-mutex.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-kstat.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-condvar.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-xdr.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-cred.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-tsd.o +$(MODULE)-objs += @top_srcdir@/module/spl/spl-zlib.o diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c index 13f42673..cc276645 100644 --- a/module/spl/spl-generic.c +++ b/module/spl/spl-generic.c @@ -546,11 +546,29 @@ hostid_exec(void) uint32_t zone_get_hostid(void *zone) { + static int first = 1; unsigned long hostid; + int rc; /* Only the global zone is supported */ ASSERT(zone == NULL); + if (first) { + first = 0; + + /* + * Get the hostid if it was not passed as a module parameter. + * Try reading the /etc/hostid file directly, and then fall + * back to calling the /usr/bin/hostid utility. + */ + if ((spl_hostid == HW_INVALID_HOSTID) && + (rc = hostid_read()) && (rc = hostid_exec())) + return HW_INVALID_HOSTID; + + printk(KERN_NOTICE "SPL: using hostid 0x%08x\n", + (unsigned int) spl_hostid); + } + if (ddi_strtoul(hw_serial, NULL, HW_HOSTID_LEN-1, &hostid) != 0) return HW_INVALID_HOSTID; @@ -632,16 +650,6 @@ __init spl_init(void) if ((rc = spl_zlib_init())) SGOTO(out9, rc); - /* - * Get the hostid if it was not passed as a module parameter. Try - * reading the /etc/hostid file directly, and then fall back to calling - * the /usr/bin/hostid utility. - */ - - if (spl_hostid == HW_INVALID_HOSTID - && (rc = hostid_read()) && (rc = hostid_exec())) - SGOTO(out10, rc = -EADDRNOTAVAIL); - #ifndef HAVE_KALLSYMS_LOOKUP_NAME if ((rc = set_kallsyms_lookup_name())) SGOTO(out10, rc = -EADDRNOTAVAIL); @@ -653,9 +661,8 @@ __init spl_init(void) if ((rc = spl_vn_init_kallsyms_lookup())) SGOTO(out10, rc); - printk(KERN_NOTICE "SPL: Loaded module v%s-%s%s, using hostid " - "0x%08x\n", SPL_META_VERSION, SPL_META_RELEASE, SPL_DEBUG_STR, - (unsigned int) spl_hostid); + printk(KERN_NOTICE "SPL: Loaded module v%s-%s%s\n", SPL_META_VERSION, + SPL_META_RELEASE, SPL_DEBUG_STR); SRETURN(rc); out10: spl_zlib_fini(); diff --git a/module/spl/spl-mutex.c b/module/spl/spl-mutex.c index 983245dc..d452681b 100644 --- a/module/spl/spl-mutex.c +++ b/module/spl/spl-mutex.c @@ -51,7 +51,7 @@ * unavailable we provide a standard mutex. */ -#ifndef HAVE_MUTEX_OWNER +#if !defined(HAVE_MUTEX_OWNER) || !defined(CONFIG_SMP) || defined(CONFIG_DEBUG_MUTEXES) #ifdef HAVE_TASK_CURR /* * mutex_spin_max = { 0, -1, 1-MAX_INT } diff --git a/module/splat/Makefile.in b/module/splat/Makefile.in index 8340b703..f4065196 100644 --- a/module/splat/Makefile.in +++ b/module/splat/Makefile.in @@ -1,27 +1,25 @@ # Makefile.in for splat kernel module -MODULES := splat -EXTRA_CFLAGS = @KERNELCPPFLAGS@ -EXTRA_CFLAGS += -I@abs_top_srcdir@/include -EXTRA_CFLAGS += -include @abs_top_builddir@/spl_config.h +MODULE := splat +EXTRA_CFLAGS = $(SPL_MODULE_CFLAGS) @KERNELCPPFLAGS@ # Solaris Porting LAyer Tests -obj-m := splat.o +obj-$(CONFIG_SPL) := $(MODULE).o -splat-objs += @top_srcdir@/module/splat/splat-ctl.o -splat-objs += @top_srcdir@/module/splat/splat-kmem.o -splat-objs += @top_srcdir@/module/splat/splat-taskq.o -splat-objs += @top_srcdir@/module/splat/splat-random.o -splat-objs += @top_srcdir@/module/splat/splat-mutex.o -splat-objs += @top_srcdir@/module/splat/splat-condvar.o -splat-objs += @top_srcdir@/module/splat/splat-thread.o -splat-objs += @top_srcdir@/module/splat/splat-rwlock.o -splat-objs += @top_srcdir@/module/splat/splat-time.o -splat-objs += @top_srcdir@/module/splat/splat-vnode.o -splat-objs += @top_srcdir@/module/splat/splat-kobj.o -splat-objs += @top_srcdir@/module/splat/splat-atomic.o -splat-objs += @top_srcdir@/module/splat/splat-list.o -splat-objs += @top_srcdir@/module/splat/splat-generic.o -splat-objs += @top_srcdir@/module/splat/splat-cred.o -splat-objs += @top_srcdir@/module/splat/splat-zlib.o -splat-objs += @top_srcdir@/module/splat/splat-linux.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-ctl.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-kmem.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-taskq.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-random.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-mutex.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-condvar.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-thread.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-rwlock.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-time.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-vnode.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-kobj.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-atomic.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-list.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-generic.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-cred.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-zlib.o +$(MODULE)-objs += @top_srcdir@/module/splat/splat-linux.o diff --git a/spl_config.h.in b/spl_config.h.in index 1b4a129b..4ee1b335 100644 --- a/spl_config.h.in +++ b/spl_config.h.in @@ -210,7 +210,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H -/* task_curr() exported */ +/* task_curr() is available */ #undef HAVE_TASK_CURR /* timespec_sub() is available */