Fix up host tools includes
Don't include device kernel headers when building host tools. They
should not be used for user space tools at all and for sure not for host
tools. Maybe it didn't break on older hosts but on current Ubuntu 22.04
this breaks compilation:
HOSTCC scripts/mod/modpost.o
clang-11: warning: argument unused during compilation: '-L/usr/lib' [-Wunused-command-line-argument]
clang-11: warning: argument unused during compilation: '-L/usr/lib/x86_64-linux-gnu' [-Wunused-command-line-argument]
clang-11: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
In file included from /develop/fp4-a11/kernel/msm-4.19/scripts/mod/modpost.c:21:
In file included from /develop/fp4-a11/kernel/msm-4.19/scripts/mod/modpost.h:7:
In file included from /usr/include/x86_64-linux-gnu/sys/stat.h:465:
In file included from /usr/include/x86_64-linux-gnu/bits/statx.h:31:
In file included from /develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/stat.h:5:
/develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/types.h:10:2: warning: "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" [-W#warnings]
^
In file included from /develop/fp4-a11/kernel/msm-4.19/scripts/mod/modpost.c:21:
In file included from /develop/fp4-a11/kernel/msm-4.19/scripts/mod/modpost.h:7:
In file included from /usr/include/x86_64-linux-gnu/sys/stat.h:465:
In file included from /usr/include/x86_64-linux-gnu/bits/statx.h:31:
In file included from /develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/stat.h:5:
In file included from /develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/types.h:14:
In file included from /develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/posix_types.h:5:
/develop/fp4-a11/kernel/msm-4.19/include/uapi/linux/stddef.h:2:10: fatal error: 'linux/compiler_types.h' file not found
The workaround here is very specific to the FP4 Android 11 source tree
setup, but good enough for now.
Issue: FP4-INT#14
Issue: FP4-A14#256
Change-Id: I9e8b9abd70e1ddf796fe9ff6737cce064e9d8791
diff --git a/buildkernel.sh b/buildkernel.sh
index f3ce5c3..91c96f6 100755
--- a/buildkernel.sh
+++ b/buildkernel.sh
@@ -49,6 +49,11 @@
PRIMARY_KERN_BINS=${KERNEL_PREBUILT_DIR}/primary_kernel
SECONDARY_KERN_BINS=${KERNEL_PREBUILT_DIR}/secondary_kernel
+target_includes_without_device_kernel()
+{
+ echo -n "${TARGET_INCLUDES}" | tr ' ' '\n' | grep -vF 'kernel/msm-4.19/include/uapi' | tr '\n' ' '
+}
+
debugfs_disable()
{
if [ ${TARGET_BUILD_VARIANT} == "user" ]; then
@@ -56,7 +61,7 @@
(cd ${KERNEL_DIR} && \
ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} \
./scripts/kconfig/merge_config.sh ./arch/${ARCH}/configs/$DEFCONFIG ./arch/$ARCH/configs/vendor/debugfs.config
- ${MAKE_PATH}make ${MAKE_ARGS} HOSTCFLAGS="${TARGET_INCLUDES}" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} savedefconfig
+ ${MAKE_PATH}make ${MAKE_ARGS} HOSTCFLAGS="$(target_includes_without_device_kernel)" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} savedefconfig
mv defconfig ./arch/${ARCH}/configs/$DEFCONFIG
${MAKE_PATH}make mrproper)
else
@@ -76,7 +81,7 @@
echo "Building defconfig"
set -x
(cd ${KERNEL_DIR} && \
- ${MAKE_PATH}make O=${OUT_DIR} ${MAKE_ARGS} HOSTCFLAGS="${TARGET_INCLUDES}" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} ${DEFCONFIG})
+ ${MAKE_PATH}make O=${OUT_DIR} ${MAKE_ARGS} HOSTCFLAGS="$(target_includes_without_device_kernel)" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} ${DEFCONFIG})
set +x
fi
}
@@ -88,7 +93,7 @@
echo "Installing kernel headers"
set -x
(cd ${OUT_DIR} && \
- ${MAKE_PATH}make HOSTCFLAGS="${TARGET_INCLUDES}" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} O=${OUT_DIR} ${CC_ARG} ${MAKE_ARGS} headers_install)
+ ${MAKE_PATH}make HOSTCFLAGS="$(target_includes_without_device_kernel)" HOSTLDFLAGS="${TARGET_LINCLUDES}" ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} O=${OUT_DIR} ${CC_ARG} ${MAKE_ARGS} headers_install)
set +x
}
@@ -99,7 +104,7 @@
echo "Building kernel"
set -x
(cd ${OUT_DIR} && \
- ${MAKE_PATH}make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} HOSTCFLAGS="${TARGET_INCLUDES}" HOSTLDFLAGS="${TARGET_LINCLUDES}" O=${OUT_DIR} ${CC_ARG} ${MAKE_ARGS} -j$(nproc))
+ ${MAKE_PATH}make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} HOSTCFLAGS="$(target_includes_without_device_kernel)" HOSTLDFLAGS="${TARGET_LINCLUDES}" O=${OUT_DIR} ${CC_ARG} ${MAKE_ARGS} -j$(nproc))
set +x
}