LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Richard Hacker <lerichi@gmx.net>
To: kai@germaschewski.name, sam@ravnborg.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 001/002] scripts/mod/modpost.c: New option -E to load extra symbols
Date: Thu, 28 Feb 2008 09:40:52 +0100 [thread overview]
Message-ID: <200802280940.53020.lerichi@gmx.net> (raw)
This patch adds a new command line option -E to modpost, expecting a symbol
file as an argument which is read prior to symbol processing. -E can be
supplied multiple times for as many files as is needed.
Signed-off-by: Richard Hacker <lerichi@gmx.net>
---
When building kernel modules that depend on other modules not in the main
kernel tree, modpost complains about undefined symbols:
# make -C /path/to/linux/kernel M=/path/to/my/module
...
Building modules, stage 2.
....
WARNING: "rt_copy_buf" [/home/rich/osc_etl_rtw/osc_kmod.ko] undefined!
...etc
This situation occurs when modpost processes the new module's symbols. When
it finds symbols not exported by the mainline kernel, it issues this warning.
The patch adds a new command line option -E to modpost which expects a symbol
file as an argument. The symbols listed in this file are added to modpost's
symbol tables during startup. -E can be supplied as often as required.
This patch works together with the second patch. It introduces a new make
variable, EXTRA_SYMBOLS, which is used when calling modpost.
I hope this patch is useful and finds its way into the kernel.
o Changes from the previous attempt:
- patches kernel version 2.6.24
- patches for scripts/mod/modpost.c and scripts/Makefile.modpost are
separated
- the argument to -E is now a single file, not a comma separated list
any more. To pass more than one file, -E is used as often as required
- patch 002/002 in this series introduces the Kbuild variable EXTRA_SYMBOLS
to scripts/Makefile.modpost that in turn calls modpost with the correct
-E command line arguments.
--- linux-2.6.24-vanilla/scripts/mod/modpost.c 2008-02-27 21:10:24.000000000
+0100
+++ linux-2.6.24/scripts/mod/modpost.c 2008-02-27 21:14:36.000000000 +0100
@@ -1658,8 +1658,12 @@ int main(int argc, char **argv)
char *dump_write = NULL;
int opt;
int err;
+ struct ext_sym_list {
+ struct ext_sym_list *next;
+ const char *file;
+ } *extsym_start = NULL, *extsym_iter;
- while ((opt = getopt(argc, argv, "i:I:mso:aw")) != -1) {
+ while ((opt = getopt(argc, argv, "i:I:E:mso:aw")) != -1) {
switch(opt) {
case 'i':
kernel_read = optarg;
@@ -1668,6 +1672,14 @@ int main(int argc, char **argv)
module_read = optarg;
external_module = 1;
break;
+ case 'E':
+ external_module = 1;
+ extsym_iter =
+ NOFAIL(malloc(sizeof(*extsym_iter)));
+ extsym_iter->next = extsym_start;
+ extsym_iter->file = optarg;
+ extsym_start = extsym_iter;
+ break;
case 'm':
modversions = 1;
break;
@@ -1692,6 +1704,12 @@ int main(int argc, char **argv)
read_dump(kernel_read, 1);
if (module_read)
read_dump(module_read, 0);
+ while (extsym_start) {
+ read_dump(extsym_start->file, 0);
+ extsym_iter = extsym_start->next;
+ free(extsym_start);
+ extsym_start = extsym_iter;
+ }
while (optind < argc) {
read_symbols(argv[optind++]);
next reply other threads:[~2008-02-28 8:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-28 8:40 Richard Hacker [this message]
2008-02-28 9:18 ` Sam Ravnborg
2008-02-28 10:42 ` Richard Hacker
2008-04-25 18:57 ` Sam Ravnborg
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.53020.lerichi@gmx.net \
--to=lerichi@gmx.net \
--cc=kai@germaschewski.name \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
--subject='Re: [PATCH 001/002] scripts/mod/modpost.c: New option -E to load extra symbols' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).