aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kbuild/modules.txt9
-rw-r--r--scripts/Makefile.modpost8
2 files changed, 16 insertions, 1 deletions
diff --git a/Documentation/kbuild/modules.txt b/Documentation/kbuild/modules.txt
index 1d247d59ad56..1821c077b435 100644
--- a/Documentation/kbuild/modules.txt
+++ b/Documentation/kbuild/modules.txt
@@ -486,7 +486,7 @@ Module.symvers contains a list of all exported symbols from a kernel build.
486 Sometimes, an external module uses exported symbols from another 486 Sometimes, an external module uses exported symbols from another
487 external module. Kbuild needs to have full knowledge on all symbols 487 external module. Kbuild needs to have full knowledge on all symbols
488 to avoid spitting out warnings about undefined symbols. 488 to avoid spitting out warnings about undefined symbols.
489 Two solutions exist to let kbuild know all symbols of more than 489 Three solutions exist to let kbuild know all symbols of more than
490 one external module. 490 one external module.
491 The method with a top-level kbuild file is recommended but may be 491 The method with a top-level kbuild file is recommended but may be
492 impractical in certain situations. 492 impractical in certain situations.
@@ -523,6 +523,13 @@ Module.symvers contains a list of all exported symbols from a kernel build.
523 containing the sum of all symbols defined and not part of the 523 containing the sum of all symbols defined and not part of the
524 kernel. 524 kernel.
525 525
526 Use make variable KBUILD_EXTRA_SYMBOLS in the Makefile
527 If it is impractical to copy Module.symvers from another
528 module, you can assign a space separated list of files to
529 KBUILD_EXTRA_SYMBOLS in your Makfile. These files will be
530 loaded by modpost during the initialisation of its symbol
531 tables.
532
526=== 8. Tips & Tricks 533=== 8. Tips & Tricks
527 534
528--- 8.1 Testing for CONFIG_FOO_BAR 535--- 8.1 Testing for CONFIG_FOO_BAR
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
index 2d20640854b7..24b3c8fe6bca 100644
--- a/scripts/Makefile.modpost
+++ b/scripts/Makefile.modpost
@@ -42,6 +42,13 @@ _modpost: __modpost
42 42
43include include/config/auto.conf 43include include/config/auto.conf
44include scripts/Kbuild.include 44include scripts/Kbuild.include
45
46ifneq ($(KBUILD_EXTMOD),)
47# Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS
48include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \
49 $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile)
50endif
51
45include scripts/Makefile.lib 52include scripts/Makefile.lib
46 53
47kernelsymfile := $(objtree)/Module.symvers 54kernelsymfile := $(objtree)/Module.symvers
@@ -69,6 +76,7 @@ modpost = scripts/mod/modpost \
69 $(if $(CONFIG_MODULE_SRCVERSION_ALL),-a,) \ 76 $(if $(CONFIG_MODULE_SRCVERSION_ALL),-a,) \
70 $(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \ 77 $(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \
71 $(if $(KBUILD_EXTMOD),-I $(modulesymfile)) \ 78 $(if $(KBUILD_EXTMOD),-I $(modulesymfile)) \
79 $(if $(iKBUILD_EXTRA_SYMBOLS), $(patsubst %, -e %,$(EXTRA_SYMBOLS))) \
72 $(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \ 80 $(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \
73 $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \ 81 $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \
74 $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \ 82 $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \