diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-22 01:55:26 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-22 01:55:26 +0300 |
commit | eddecbb601c9ea3fab7e67d7892010fc9426d1e6 (patch) | |
tree | 4bfa4740ae554e5c5a8468e74b39531a6153ce9f /scripts/mod | |
parent | 0bf8c869701039b12c3520cb1bb1689595ab108b (diff) | |
parent | f2c23f65f63fe0dd83fc94efdfae0364c74458b8 (diff) | |
download | linux-eddecbb601c9ea3fab7e67d7892010fc9426d1e6.tar.xz |
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6
* 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
kbuild: Make DEBUG_SECTION_MISMATCH selectable, but not on by default
genksyms: Regenerate lexer and parser
genksyms: Track changes to enum constants
genksyms: simplify usage of find_symbol()
genksyms: Add helpers for building string lists
genksyms: Simplify printing of symbol types
genksyms: Simplify lexer
genksyms: Do not paste the bison header file to lex.c
modpost: fix trailing comma
KBuild: silence "'scripts/unifdef' is up to date."
kbuild: Add extra gcc checks
kbuild: reenable section mismatch analysis
unifdef: update to upstream version 2.5
Diffstat (limited to 'scripts/mod')
-rw-r--r-- | scripts/mod/modpost.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index e8fba959fffb..cd104afcc5f2 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1248,6 +1248,19 @@ static int is_function(Elf_Sym *sym) return -1; } +static void print_section_list(const char * const list[20]) +{ + const char *const *s = list; + + while (*s) { + fprintf(stderr, "%s", *s); + s++; + if (*s) + fprintf(stderr, ", "); + } + fprintf(stderr, "\n"); +} + /* * Print a warning about a section mismatch. * Try to find symbols near it so user can find it. @@ -1304,7 +1317,6 @@ static void report_sec_mismatch(const char *modname, break; case DATA_TO_ANY_INIT: { prl_to = sec2annotation(tosec); - const char *const *s = mismatch->symbol_white_list; fprintf(stderr, "The variable %s references\n" "the %s %s%s%s\n" @@ -1312,9 +1324,7 @@ static void report_sec_mismatch(const char *modname, "variable with __init* or __refdata (see linux/init.h) " "or name the variable:\n", fromsym, to, prl_to, tosym, to_p); - while (*s) - fprintf(stderr, "%s, ", *s++); - fprintf(stderr, "\n"); + print_section_list(mismatch->symbol_white_list); free(prl_to); break; } @@ -1329,7 +1339,6 @@ static void report_sec_mismatch(const char *modname, break; case DATA_TO_ANY_EXIT: { prl_to = sec2annotation(tosec); - const char *const *s = mismatch->symbol_white_list; fprintf(stderr, "The variable %s references\n" "the %s %s%s%s\n" @@ -1337,9 +1346,7 @@ static void report_sec_mismatch(const char *modname, "variable with __exit* (see linux/init.h) or " "name the variable:\n", fromsym, to, prl_to, tosym, to_p); - while (*s) - fprintf(stderr, "%s, ", *s++); - fprintf(stderr, "\n"); + print_section_list(mismatch->symbol_white_list); free(prl_to); break; } |