kernel: Make KERNEL_MAKEOPTS recursively expanded
authorHauke Mehrtens <hmehrtens@maxlinear.com>
Wed, 14 Dec 2022 15:29:16 +0000 (16:29 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 17 Dec 2022 19:12:31 +0000 (20:12 +0100)
KERNEL_MAKEOPTS will get expanded when it is used and not when it is
defined in the kernel.mk file now. This fixes problems finding dependent
kernel modules when it is used by a kernel module package.

Without this change the build of packages which depend on other out of
tree modules failed when they used KERNEL_MAKE because some symbols could
not be found. This happened because KERNEL_MAKE_FLAGS which contains a
"if $(__package_mk)" was  evaluated where KERNEL_MAKEOPTS was defined
and not when the KERNEL_MAKE was used. For packages which included
kernel.mk before package.mk we saw this problem. One workaround
was to use the correct include order and the other one was to not
use KERNEL_MAKE_FLAGS, but copy its content.

Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
include/kernel.mk

index 2efa3bf8f8e483fccb87955cffa6d007027c4f17..c657bf5d82e7f02ad07bb5f3faa820f8dae90909 100644 (file)
@@ -130,7 +130,7 @@ ifneq ($(HOST_OS),Linux)
   export SKIP_STACK_VALIDATION:=1
 endif
 
-KERNEL_MAKEOPTS := -C $(LINUX_DIR) $(KERNEL_MAKE_FLAGS)
+KERNEL_MAKEOPTS = -C $(LINUX_DIR) $(KERNEL_MAKE_FLAGS)
 
 ifdef CONFIG_USE_SPARSE
   KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse