X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=config%2Flustre-build-linux.m4;h=8ce66b861f0dee7343340b132f77389259951d44;hb=f765c6ceb8a4a2415a7956498f7fdaefa477ba55;hp=e1b46a374080a2c1b37d62246dc74f697c884470;hpb=8bf31b5fe7f0b89685a8fcec5d6f036e048f838d;p=fs%2Flustre-release.git diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index e1b46a3..8ce66b8 100644 --- a/config/lustre-build-linux.m4 +++ b/config/lustre-build-linux.m4 @@ -8,26 +8,35 @@ KMODEXT=".ko" AC_SUBST(KMODEXT) makerule="$PWD/build" -AC_CACHE_CHECK([for external module build target], lb_cv_module_target, [ -lb_cv_module_target="" -MODULE_TARGET="SUBDIRS" -rm -f build/conftest.i -LB_LINUX_TRY_MAKE([], [], - [$makerule LUSTRE_KERNEL_TEST=conftest.i], - [test -s build/conftest.i], - [lb_cv_module_target="SUBDIRS"], [ - MODULE_TARGET="M" - makerule="_module_$PWD/build" - LB_LINUX_TRY_MAKE([], [], - [$makerule LUSTRE_KERNEL_TEST=conftest.i], - [test -s build/conftest.i], - [lb_cv_module_target="M"], [ - AC_MSG_ERROR([unknown; check config.log for details]) - ]) - ]) +AC_CACHE_CHECK([for external module build target], lb_cv_module_target, +[ + lb_cv_module_target="" + MODULE_TARGET="SUBDIRS" + rm -f build/conftest.i + LB_LINUX_TRY_MAKE([], [], + [$makerule LUSTRE_KERNEL_TEST=conftest.i], + [test -s build/conftest.i], + [lb_cv_module_target="SUBDIRS"],[ + MODULE_TARGET="M" + makerule="$PWD/build/" + LB_LINUX_TRY_MAKE([], [], + [$makerule LUSTRE_KERNEL_TEST=conftest.i], + [test -s build/conftest.i], + [lb_cv_module_target="M54"], [ + MODULE_TARGET="M" + makerule="_module_$PWD/build" + LB_LINUX_TRY_MAKE([], [], + [$makerule LUSTRE_KERNEL_TEST=conftest.i], + [test -s build/conftest.i], + [lb_cv_module_target="M"], [ + AC_MSG_ERROR([kernel module make failed; check config.log for details]) + ])])]) ]) AS_IF([test -z "$lb_cv_module_target"], [AC_MSG_ERROR([unknown external module build target])], +[test "x$lb_cv_module_target" = "xM54"], + [makerule="$PWD/build" + lb_cv_module_target="M"], [test "x$lb_cv_module_target" = "xM"], [makerule="_module_$PWD/build"]) MODULE_TARGET=$lb_cv_module_target @@ -135,6 +144,24 @@ AC_DEFUN([LB_LINUX_RELEASE], [ ]) ]) + # Check for a ELRepo -ml kernel on RHEL 7/8 + AS_IF([test "x$KERNEL_FOUND" = "xno"], [ + AC_CACHE_CHECK([for ELRepo -ml kernel signature on CentOS], + lb_cv_mainline_kernel_sig, [ + lb_cv_mainline_kernel_sig="no" + AS_IF([fgrep -q '.el7.' $LINUX_OBJ/include/generated/utsrelease.h], [ + lb_cv_mainline_kernel_sig="yes" + ]) + AS_IF([fgrep -q '.el8.' $LINUX_OBJ/include/generated/utsrelease.h], [ + lb_cv_mainline_kernel_sig="yes" + ]) + ]) + AS_IF([test "x$lb_cv_mainline_kernel_sig" = "xyes"], [ + MAINLINE_KERNEL="yes" + KERNEL_FOUND="yes" + ]) + ]) + # If still no kernel was found, a warning is issued AS_IF([test "x$KERNEL_FOUND" = "xno"], [ AC_MSG_WARN([Kernel Distro seems to be neither RedHat, SuSE, Ubuntu nor Debian]) @@ -147,10 +174,11 @@ AC_DEFUN([LB_LINUX_RELEASE], [ [KMP_MODDIR=$withval IN_KERNEL=''],[ AS_IF([test x$RHEL_KERNEL = xyes], [KMP_MODDIR="extra/kernel"], - [test x$SUSE_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], - [test x$UBUNTU_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], - [test x$DEBIAN_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], - [AC_MSG_WARN([Kernel Distro seems to be neither RedHat, SuSE, Ubuntu nor Debian])] + [test x$MAINLINE_KERNEL = xyes], [KMP_MODDIR="extra/kernel"], + [test x$SUSE_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], + [test x$UBUNTU_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], + [test x$DEBIAN_KERNEL = xyes], [KMP_MODDIR="updates/kernel"], + [AC_MSG_WARN([Kernel Distro seems to be neither RedHat, SuSE, Ubuntu nor Debian])] ) IN_KERNEL="${PACKAGE}"]) AC_MSG_RESULT($KMP_MODDIR) @@ -544,7 +572,7 @@ AC_DEFUN([LB_LINUX_COMPILE_IFELSE], [m4_ifvaln([$1], [AC_LANG_CONFTEST([AC_LANG_SOURCE([$1])])])dnl rm -f build/conftest.o build/conftest.mod.c build/conftest.ko SUBARCH=$(echo $target_cpu | sed -e 's/powerpc.*/powerpc/' -e 's/ppc.*/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/' -e 's/k1om/x86/' -e 's/aarch64.*/arm64/' -e 's/armv7.*/arm/') -AS_IF([AC_TRY_COMMAND(cp conftest.c build && make -d [$2] LDFLAGS= ${LD:+LD="$LD"} CC="$CC" -f $PWD/build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_CHECK_INCLUDE -I$LINUX/arch/$SUBARCH/include -Iinclude -Iarch/$SUBARCH/include/generated -I$LINUX/include -Iinclude2 -I$LINUX/include/uapi -Iinclude/generated -I$LINUX/arch/$SUBARCH/include/uapi -Iarch/$SUBARCH/include/generated/uapi -I$LINUX/include/uapi -Iinclude/generated/uapi ${SPL_OBJ:+-include $SPL_OBJ/spl_config.h} ${ZFS_OBJ:+-include $ZFS_OBJ/zfs_config.h} ${SPL:+-I$SPL -I$SPL/include } ${ZFS:+-I$ZFS -I$ZFS/include} -include $CONFIG_INCLUDE" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $MODULE_TARGET=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], +AS_IF([AC_TRY_COMMAND(cp conftest.c build && make -d [$2] LDFLAGS= ${LD:+LD="$LD"} CC="$CC" -f $PWD/build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_CHECK_INCLUDE -I$LINUX/arch/$SUBARCH/include -Iinclude -Iarch/$SUBARCH/include/generated -I$LINUX/include -Iinclude2 -I$LINUX/include/uapi -Iinclude/generated -I$LINUX/arch/$SUBARCH/include/uapi -Iarch/$SUBARCH/include/generated/uapi -I$LINUX/include/uapi -Iinclude/generated/uapi ${SPL_OBJ:+-include $SPL_OBJ/spl_config.h} ${ZFS_OBJ:+-include $ZFS_OBJ/zfs_config.h} ${SPL:+-I$SPL/include } ${ZFS:+-I$ZFS -I$ZFS/include -I${SPL:-$ZFS/include/spl}} -include $CONFIG_INCLUDE" KBUILD_EXTRA_SYMBOLS=${ZFS_OBJ:+$ZFS_OBJ/Module.symvers} -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $MODULE_TARGET=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], [$4], [_AC_MSG_LOG_CONFTEST m4_ifvaln([$5],[$5])dnl])