diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2009-01-14 15:38:20 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2009-01-14 15:38:20 -0500 |
commit | 2ea038917bbdd51a7ae4a898c6a04641324dd033 (patch) | |
tree | 6a6f8b1db4d097d260449f88c267e39ab9d2bb3f /scripts/kallsyms.c | |
parent | a6525042bfdfcab128bd91fad264de10fd24a55e (diff) |
Revert "kbuild: strip generated symbols from *.ko"
This reverts commit ad7a953c522ceb496611d127e51e278bfe0ff483.
And commit: ("allow stripping of generated symbols under CONFIG_KALLSYMS_ALL")
9bb482476c6c9d1ae033306440c51ceac93ea80c
These stripping patches has caused a set of issues:
1) People have reported compatibility issues with binutils due to
lack of support for `--strip-unneeded-symbols' with objcopy 2.15.92.0.2
Reported by: Wenji
2) ccache and distcc no longer works as expeced
Reported by: Ted, Roland, + others
3) The installed modules increased a lot in size
Reported by: Ted, Davej + others
Reported-by: Wenji Huang <wenji.huang@oracle.com>
Reported-by: "Theodore Ts'o" <tytso@mit.edu>
Reported-by: Dave Jones <davej@redhat.com>
Reported-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/kallsyms.c')
-rw-r--r-- | scripts/kallsyms.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 92758120a767..ad2434b26970 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
@@ -130,9 +130,18 @@ static int read_symbol(FILE *in, struct sym_entry *s) | |||
130 | static int symbol_valid(struct sym_entry *s) | 130 | static int symbol_valid(struct sym_entry *s) |
131 | { | 131 | { |
132 | /* Symbols which vary between passes. Passes 1 and 2 must have | 132 | /* Symbols which vary between passes. Passes 1 and 2 must have |
133 | * identical symbol lists. | 133 | * identical symbol lists. The kallsyms_* symbols below are only added |
134 | * after pass 1, they would be included in pass 2 when --all-symbols is | ||
135 | * specified so exclude them to get a stable symbol list. | ||
134 | */ | 136 | */ |
135 | static char *special_symbols[] = { | 137 | static char *special_symbols[] = { |
138 | "kallsyms_addresses", | ||
139 | "kallsyms_num_syms", | ||
140 | "kallsyms_names", | ||
141 | "kallsyms_markers", | ||
142 | "kallsyms_token_table", | ||
143 | "kallsyms_token_index", | ||
144 | |||
136 | /* Exclude linker generated symbols which vary between passes */ | 145 | /* Exclude linker generated symbols which vary between passes */ |
137 | "_SDA_BASE_", /* ppc */ | 146 | "_SDA_BASE_", /* ppc */ |
138 | "_SDA2_BASE_", /* ppc */ | 147 | "_SDA2_BASE_", /* ppc */ |
@@ -164,9 +173,7 @@ static int symbol_valid(struct sym_entry *s) | |||
164 | } | 173 | } |
165 | 174 | ||
166 | /* Exclude symbols which vary between passes. */ | 175 | /* Exclude symbols which vary between passes. */ |
167 | if (strstr((char *)s->sym + offset, "_compiled.") || | 176 | if (strstr((char *)s->sym + offset, "_compiled.")) |
168 | strncmp((char*)s->sym + offset, "__compound_literal.", 19) == 0 || | ||
169 | strncmp((char*)s->sym + offset, "__compound_literal$", 19) == 0) | ||
170 | return 0; | 177 | return 0; |
171 | 178 | ||
172 | for (i = 0; special_symbols[i]; i++) | 179 | for (i = 0; special_symbols[i]; i++) |
@@ -543,10 +550,8 @@ int main(int argc, char **argv) | |||
543 | usage(); | 550 | usage(); |
544 | 551 | ||
545 | read_map(stdin); | 552 | read_map(stdin); |
546 | if (table_cnt) { | 553 | sort_symbols(); |
547 | sort_symbols(); | 554 | optimize_token_table(); |
548 | optimize_token_table(); | ||
549 | } | ||
550 | write_src(); | 555 | write_src(); |
551 | 556 | ||
552 | return 0; | 557 | return 0; |