From: Richard Hacker <lerichi@gmx.net>
To: kai@germaschewski.name, sam@ravnborg.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 002/002] scripts/Makefile.modpost: New Kbuild variable EXTRA_SYMBOLS
Date: Thu, 28 Feb 2008 09:40:58 +0100 [thread overview]
Message-ID: <200802280940.58916.lerichi@gmx.net> (raw)
This patch adds a new (Kbuild) Makefile variable EXTRA_SYMBOLS. The
space separated list of files assigned to EXTRA_SYMBOLS is used when
calling scripts/mod/modpost during stage 2 of the Kbuild process for
non-kernel-tree modules. When the previous patch 001/002 is applied to
modpost.c, modpost loads these files during initialisation of its symbol
table.
Signed-off-by: Richard Hacker <lerichi@gmx.net>
---
The previous patch in this series (001/002) added a new command line
argument -E to scripts/mod/modpost.c, instructing modpost to process
the symbols in that file during initialisation of its symbol tables.
This patch introduces a new make variable EXTRA_SYMBOLS. The space
separated list of files assigned to this variable is passed to modpost
using the the new -E command line argument. This introduces the possibility
to supply a set of Modules.symvers for modpost to load during initialisation
of it symbol tables.
I hope this patch is useful and finds its way into the kernel.
o Changes from the previous attempt:
- Documentation update
diff -uprN -X linux-2.6.24/Documentation/dontdiff
linux-2.6.24-vanilla/Documentation/kbuild/modules.txt
linux-2.6.24/Documentation/kbuild/modules.txt
--- linux-2.6.24-vanilla/Documentation/kbuild/modules.txt 2008-01-18
22:43:41.000000000 +0100
+++ linux-2.6.24/Documentation/kbuild/modules.txt 2008-02-28
09:30:55.000000000 +0100
@@ -486,7 +486,7 @@ Module.symvers contains a list of all ex
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,12 @@ Module.symvers contains a list of all ex
containing the sum of all symbols defined and not part of the
kernel.
+ Use make variable 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
+ 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
diff -uprN -X linux-2.6.24/Documentation/dontdiff
linux-2.6.24-vanilla/scripts/Makefile.modpost
linux-2.6.24/scripts/Makefile.modpost
--- linux-2.6.24-vanilla/scripts/Makefile.modpost 2008-01-18
22:47:09.000000000 +0100
+++ linux-2.6.24/scripts/Makefile.modpost 2008-02-27 21:14:36.000000000 +0100
@@ -41,6 +41,12 @@ _modpost: __modpost
include include/config/auto.conf
include scripts/Kbuild.include
+
+ifneq ($(KBUILD_EXTMOD),)
+# Include the module's Makefile to find EXTRA_SYMBOLS
+include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), $(KBUILD_EXTMOD)/Kbuild,
$(KBUILD_EXTMOD)/Makefile)
+endif
+
include scripts/Makefile.lib
kernelsymfile := $(objtree)/Module.symvers
@@ -61,6 +67,7 @@ modpost = scripts/mod/modpost
$(if $(CONFIG_MODULE_SRCVERSION_ALL),-a,) \
$(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \
$(if $(KBUILD_EXTMOD),-I $(modulesymfile)) \
+ $(if $(EXTRA_SYMBOLS), $(patsubst %, -E %,$(EXTRA_SYMBOLS))) \
$(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \
$(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w)
reply other threads:[~2008-02-28 8:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200802280940.58916.lerichi@gmx.net \
--to=lerichi@gmx.net \
--cc=kai@germaschewski.name \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox