mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	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:
		
							parent
							
								
									75021e9411
								
							
						
					
					
						commit
						2e496876c6
					
				@ -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)),)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user