kernel: collect module symvers for external modules
Collect module symvers for all external modules to make them available for modpost. This fixes dependencies for most external modules. Example: Before: root@LEDE:/# modinfo mt76 module: /lib/modules/4.4.74/mt76.ko license: Dual BSD/GPL depends: After: root@LEDE:/# modinfo mt76 module: /lib/modules/4.4.74/mt76.ko license: Dual BSD/GPL depends: mac80211,cfg80211 Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
This commit is contained in:
		| @@ -123,6 +123,32 @@ ifdef CONFIG_USE_SPARSE | |||||||
|   KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse |   KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  | PKG_EXTMOD_SUBDIRS ?= . | ||||||
|  |  | ||||||
|  | define populate_module_symvers | ||||||
|  | 	cat /dev/null > $(PKG_INFO_DIR)/$(PKG_NAME).symvers; \ | ||||||
|  | 	for subdir in $(PKG_EXTMOD_SUBDIRS); do \ | ||||||
|  | 		cat $(PKG_INFO_DIR)/*.symvers 2>/dev/null > $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers; \ | ||||||
|  | 	done | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define collect_module_symvers | ||||||
|  | 	for subdir in $(PKG_EXTMOD_SUBDIRS); do \ | ||||||
|  | 		grep -F $(PKG_BUILD_DIR) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \ | ||||||
|  | 	done; \ | ||||||
|  | 	sort -u $(PKG_BUILD_DIR)/Module.symvers.tmp > $(PKG_BUILD_DIR)/Module.symvers; \ | ||||||
|  | 	mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_INFO_DIR)/$(PKG_NAME).symvers | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/hooks | ||||||
|  |   ifneq ($(PKG_NAME),kernel) | ||||||
|  |     Hooks/Compile/Pre += populate_module_symvers | ||||||
|  |     Hooks/Compile/Post += collect_module_symvers | ||||||
|  |   endif | ||||||
|  |   define KernelPackage/hooks | ||||||
|  |   endef | ||||||
|  | endef | ||||||
|  |  | ||||||
| define KernelPackage/Defaults | define KernelPackage/Defaults | ||||||
|   FILES:= |   FILES:= | ||||||
|   AUTOLOAD:= |   AUTOLOAD:= | ||||||
| @@ -230,6 +256,7 @@ $(call KernelPackage/$(1)/config) | |||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   $(call KernelPackage/depends) |   $(call KernelPackage/depends) | ||||||
|  |   $(call KernelPackage/hooks) | ||||||
|  |  | ||||||
|   ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),) |   ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),) | ||||||
|     ifneq ($(strip $(FILES)),) |     ifneq ($(strip $(FILES)),) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jonas Gorski
					Jonas Gorski