lkml.org 
[lkml]   [2006]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 05/46] kbuild: warn about duplicate exported symbols
Date
From
In modpost introduce a check for symbols exported twice.
This check caught only one victim (inet_bind_bucket_create) for
which a patch is already sent to netdev.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

---

scripts/mod/modpost.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)

8e70c45887a6bbe40393342ea5b426b0dd836dff
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 976adf1..d901095 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -117,6 +117,7 @@ struct symbol {
unsigned int vmlinux:1; /* 1 if symbol is defined in vmlinux */
unsigned int kernel:1; /* 1 if symbol is from kernel
* (only for external modules) **/
+ unsigned int preloaded:1; /* 1 if symbol from Module.symvers */
char name[0];
};

@@ -186,9 +187,17 @@ static struct symbol *sym_add_exported(c
{
struct symbol *s = find_symbol(name);

- if (!s)
+ if (!s) {
s = new_symbol(name, mod);
-
+ } else {
+ if (!s->preloaded) {
+ warn("%s: duplicate symbol '%s' previous definition "
+ "was in %s%s\n", mod->name, name,
+ s->module->name,
+ is_vmlinux(s->module->name) ?"":".ko");
+ }
+ }
+ s->preloaded = 0;
s->vmlinux = is_vmlinux(mod->name);
s->kernel = 0;
return s;
@@ -706,7 +715,8 @@ static void read_dump(const char *fname,
mod->skip = 1;
}
s = sym_add_exported(symname, mod);
- s->kernel = kernel;
+ s->kernel = kernel;
+ s->preloaded = 1;
sym_update_crc(symname, mod, crc);
}
return;
--
1.0.GIT

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-03-21 17:33    [W:1.085 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site