build: pass KBUILD_EXTRA_SYMBOLS with symvers files for kernel module packages
This replaces the previous (deprecated) method of collecting symvers data in $(PKG_BUILD_DIR)/Module.symvers, which does not work on newer kernels Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -136,6 +136,7 @@ define BuildKernel | |||||||
|   $(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig |   $(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig | ||||||
|   $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE |   $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE | ||||||
| 	$(Kernel/CompileModules) | 	$(Kernel/CompileModules) | ||||||
|  | 	mkdir -p $(PKG_SYMVERS_DIR) | ||||||
| 	touch $$@ | 	touch $$@ | ||||||
|  |  | ||||||
|   $(LINUX_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST) |   $(LINUX_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST) | ||||||
|   | |||||||
| @@ -118,7 +118,8 @@ KERNEL_MAKE_FLAGS = \ | |||||||
| 	CONFIG_SHELL="$(BASH)" \ | 	CONFIG_SHELL="$(BASH)" \ | ||||||
| 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | ||||||
| 	$(if $(PKG_BUILD_ID),LDFLAGS_MODULE=--build-id=0x$(PKG_BUILD_ID)) \ | 	$(if $(PKG_BUILD_ID),LDFLAGS_MODULE=--build-id=0x$(PKG_BUILD_ID)) \ | ||||||
| 	cmd_syscalls= | 	cmd_syscalls= \ | ||||||
|  | 	$(if $(__package_mk),KBUILD_EXTRA_SYMBOLS="$(wildcard $(PKG_SYMVERS_DIR)/*.symvers)") | ||||||
|  |  | ||||||
| ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) | ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) | ||||||
|   KERNEL_MAKE_FLAGS += \ |   KERNEL_MAKE_FLAGS += \ | ||||||
| @@ -140,14 +141,6 @@ PKG_EXTMOD_SUBDIRS ?= . | |||||||
|  |  | ||||||
| PKG_SYMVERS_DIR = $(KERNEL_BUILD_DIR)/symvers | PKG_SYMVERS_DIR = $(KERNEL_BUILD_DIR)/symvers | ||||||
|  |  | ||||||
| define populate_module_symvers |  | ||||||
| 	@mkdir -p $(PKG_SYMVERS_DIR) |  | ||||||
| 	cat /dev/null > $(PKG_SYMVERS_DIR)/$(PKG_NAME).symvers; \ |  | ||||||
| 	for subdir in $(PKG_EXTMOD_SUBDIRS); do \ |  | ||||||
| 		cat $(PKG_SYMVERS_DIR)/*.symvers 2>/dev/null > $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers; \ |  | ||||||
| 	done |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define collect_module_symvers | define collect_module_symvers | ||||||
| 	for subdir in $(PKG_EXTMOD_SUBDIRS); do \ | 	for subdir in $(PKG_EXTMOD_SUBDIRS); do \ | ||||||
| 		realdir=$$$$(readlink -f $(PKG_BUILD_DIR)); \ | 		realdir=$$$$(readlink -f $(PKG_BUILD_DIR)); \ | ||||||
| @@ -161,7 +154,6 @@ endef | |||||||
|  |  | ||||||
| define KernelPackage/hooks | define KernelPackage/hooks | ||||||
|   ifneq ($(PKG_NAME),kernel) |   ifneq ($(PKG_NAME),kernel) | ||||||
|     Hooks/Compile/Pre += populate_module_symvers |  | ||||||
|     Hooks/Compile/Post += collect_module_symvers |     Hooks/Compile/Post += collect_module_symvers | ||||||
|   endif |   endif | ||||||
|   define KernelPackage/hooks |   define KernelPackage/hooks | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau