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:
Родитель
2d04b5ae1b
Коммит
0d96fb20b7
|
@ -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)) \
|
||||
|
|
Загрузка…
Ссылка в новой задаче