forked from mirrors/linux
		
	kbuild: Add new Kbuild variable KBUILD_EXTRA_SYMBOLS
This patch adds a new (Kbuild) Makefile variable KBUILD_EXTRA_SYMBOLS. The space separated list of file names assigned to KBUILD_EXTRA_SYMBOLS is used when calling scripts/mod/modpost during stage 2 of the Kbuild process for non-kernel-tree modules. Signed-off-by: Richard Hacker <lerichi@gmx.net> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
		
							parent
							
								
									2d04b5ae1b
								
							
						
					
					
						commit
						0d96fb20b7
					
				
					 2 changed files with 16 additions and 1 deletions
				
			
		|  | @ -486,7 +486,7 @@ Module.symvers contains a list of all exported symbols from a kernel build. | |||
| 	Sometimes, an external module uses exported symbols from another | ||||
| 	external module. Kbuild needs to have full knowledge on all symbols | ||||
| 	to avoid spitting out warnings about undefined symbols. | ||||
| 	Two solutions exist to let kbuild know all symbols of more than | ||||
| 	Three solutions exist to let kbuild know all symbols of more than | ||||
| 	one external module. | ||||
| 	The method with a top-level kbuild file is recommended but may be | ||||
| 	impractical in certain situations. | ||||
|  | @ -523,6 +523,13 @@ Module.symvers contains a list of all exported symbols from a kernel build. | |||
| 		containing the sum of all symbols defined and not part of the | ||||
| 		kernel. | ||||
| 
 | ||||
| 	Use make variable KBUILD_EXTRA_SYMBOLS in the Makefile | ||||
| 		If it is impractical to copy Module.symvers from another | ||||
| 		module, you can assign a space separated list of files to | ||||
| 		KBUILD_EXTRA_SYMBOLS in your Makfile. These files will be | ||||
| 		loaded by modpost during the initialisation of its symbol | ||||
| 		tables. | ||||
| 
 | ||||
| === 8. Tips & Tricks | ||||
| 
 | ||||
| --- 8.1 Testing for CONFIG_FOO_BAR | ||||
|  |  | |||
|  | @ -42,6 +42,13 @@ _modpost: __modpost | |||
| 
 | ||||
| include include/config/auto.conf | ||||
| include scripts/Kbuild.include | ||||
| 
 | ||||
| ifneq ($(KBUILD_EXTMOD),) | ||||
| # Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS | ||||
| include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \ | ||||
|              $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile) | ||||
| endif | ||||
| 
 | ||||
| include scripts/Makefile.lib | ||||
| 
 | ||||
| kernelsymfile := $(objtree)/Module.symvers | ||||
|  | @ -69,6 +76,7 @@ modpost = scripts/mod/modpost                    \ | |||
|  $(if $(CONFIG_MODULE_SRCVERSION_ALL),-a,)       \ | ||||
|  $(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile)   \ | ||||
|  $(if $(KBUILD_EXTMOD),-I $(modulesymfile))      \ | ||||
|  $(if $(iKBUILD_EXTRA_SYMBOLS), $(patsubst %, -e %,$(EXTRA_SYMBOLS))) \ | ||||
|  $(if $(KBUILD_EXTMOD),-o $(modulesymfile))      \ | ||||
|  $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S)      \ | ||||
|  $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \ | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Richard Hacker
						Richard Hacker