From b1723622b88e693cac1d65bc317188f256a82558 Mon Sep 17 00:00:00 2001 From: James Simmons Date: Wed, 25 Aug 2021 11:17:51 -0600 Subject: [PATCH] LU-14776 zfs: fix Ubuntu 20 HWE build issues With newer Ubuntu systems using ZFS dkms have the following build errors: In file included from zfs/2.0.2/source/include/sys/arc.h:32, from lustre/osd-zfs/osd_internal.h:50, from lustre/osd-zfs/osd_handler.c:51: zfs/2.0.2/source/include/sys/zfs_context.h:45:10: fatal error: sys/types.h: No such file or directory 45 | #include | ^~~~~~~~~~~~~ compilation terminated. This is due to layout of the tree containing the needed headers. Include those paths in build system. Test-Parameters: trivial Change-Id: I453830c4111ad88ec655d3d7d0ee51627331cb0b Signed-off-by: James Simmons Reviewed-on: https://review.whamcloud.com/44749 Reviewed-by: Andreas Dilger Tested-by: jenkins Reviewed-by: Jian Yu Tested-by: Maloo Reviewed-by: Olaf Faaland-LLNL Reviewed-by: Brian Behlendorf Reviewed-by: Oleg Drokin --- config/lustre-build-linux.m4 | 2 +- lustre/osd-zfs/Makefile.in | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index f39b010..3df513c 100644 --- a/config/lustre-build-linux.m4 +++ b/config/lustre-build-linux.m4 @@ -589,7 +589,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/include } ${ZFS:+-I$ZFS -I$ZFS/include -I${SPL:-$ZFS/include/spl}} -include $CONFIG_INCLUDE" KBUILD_EXTRA_SYMBOLS="${ZFS_OBJ:+$ZFS_OBJ/Module.symvers} $KBUILD_EXTRA_SYMBOLS" -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$ZFS/include/os/linux/kernel -I$ZFS/include/os/linux/spl -I$ZFS/include/os/linux/zfs -I${SPL:-$ZFS/include/spl}} -include $CONFIG_INCLUDE" KBUILD_EXTRA_SYMBOLS="${ZFS_OBJ:+$ZFS_OBJ/Module.symvers} $KBUILD_EXTRA_SYMBOLS" -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]) diff --git a/lustre/osd-zfs/Makefile.in b/lustre/osd-zfs/Makefile.in index a43df42..ea3e255 100644 --- a/lustre/osd-zfs/Makefile.in +++ b/lustre/osd-zfs/Makefile.in @@ -6,6 +6,8 @@ osd_zfs-objs += osd_scrub.o @SPL_ENABLED_TRUE@EXTRA_PRE_CFLAGS += -include @SPL_OBJ@/spl_config.h @SPL_ENABLED_TRUE@EXTRA_PRE_CFLAGS += -I@SPL@ -I@SPL@/include EXTRA_PRE_CFLAGS += -include @ZFS_OBJ@/zfs_config.h +EXTRA_PRE_CFLAGS += -I@ZFS@/include/os/linux/kernel +EXTRA_PRE_CFLAGS += -I@ZFS@/include/os/linux/spl -I@ZFS@/include/os/linux/zfs EXTRA_PRE_CFLAGS += -I@ZFS@ -I@ZFS@/include @SPL_ENABLED_FALSE@EXTRA_PRE_CFLAGS += -I@ZFS@/include/spl -- 1.8.3.1