X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel.m4;h=87c49a82ce5a9c02b4e73cd4344e9d7c9e66d393;hb=76659dc110ef2ada13bcb8e4e2ec60d8216c6836;hp=492fbab14c4ec4935ec65f475574114dbd712601;hpb=45066d1f20a582fc8229776503b1cdd554d7fde4;p=zfs.git diff --git a/config/kernel.m4 b/config/kernel.m4 index 492fbab..87c49a8 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -34,6 +34,13 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL_XATTR_HANDLER_SET ZFS_AC_KERNEL_FSYNC_2ARGS ZFS_AC_KERNEL_EVICT_INODE + ZFS_AC_KERNEL_INSERT_INODE_LOCKED + ZFS_AC_KERNEL_D_OBTAIN_ALIAS + ZFS_AC_KERNEL_CHECK_DISK_SIZE_CHANGE + ZFS_AC_KERNEL_TRUNCATE_SETSIZE + ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY + ZFS_AC_KERNEL_MOUNT_NODEV + ZFS_AC_KERNEL_BDI if test "$LINUX_OBJ" != "$LINUX"; then KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" @@ -43,6 +50,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other dnl # compiler options are added by the kernel build system. + KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" @@ -61,6 +69,14 @@ AC_DEFUN([ZFS_AC_MODULE_SYMVERS], [ else LINUX_SYMBOLS=Module.symvers fi + + if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then + AC_MSG_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.]) + fi else LINUX_SYMBOLS=NONE fi @@ -274,6 +290,12 @@ AC_DEFUN([ZFS_AC_SPL], [ ]) dnl # +dnl # Certain kernel build options are not supported. These must be +dnl # detected at configure time and cause a build failure. Otherwise +dnl # modules may be successfully built that behave incorrectly. +dnl # +dnl # CONFIG_PREEMPT - Preempt kernels require special handling. +dnl # dnl # There are certain kernel build options which when enabled are dnl # completely incompatible with non GPL kernel modules. It is best dnl # to detect these at configure time and fail with a clear error @@ -283,6 +305,11 @@ dnl # CONFIG_DEBUG_LOCK_ALLOC - Maps mutex_lock() to mutex_lock_nested() dnl # AC_DEFUN([ZFS_AC_KERNEL_CONFIG], [ + ZFS_LINUX_CONFIG([PREEMPT], + AC_MSG_ERROR([ + *** Kernel built with CONFIG_PREEMPT which is not supported. + ** You must rebuild your kernel without this option.]), []) + if test "$ZFS_META_LICENSE" = CDDL; then ZFS_LINUX_CONFIG([DEBUG_LOCK_ALLOC], AC_MSG_ERROR([ @@ -354,9 +381,7 @@ dnl # AC_DEFUN([ZFS_LINUX_CONFIG], [AC_MSG_CHECKING([whether Linux was built with CONFIG_$1]) ZFS_LINUX_TRY_COMPILE([ - #ifndef AUTOCONF_INCLUDED - #include - #endif + #include ],[ #ifndef CONFIG_$1 #error CONFIG_$1 not #defined