Revert "kbuild: strip generated symbols from *.ko"
This reverts commitad7a953c52
. And commit: ("allow stripping of generated symbols under CONFIG_KALLSYMS_ALL")9bb482476c
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>
This commit is contained in:
@@ -130,9 +130,18 @@ static int read_symbol(FILE *in, struct sym_entry *s)
|
||||
static int symbol_valid(struct sym_entry *s)
|
||||
{
|
||||
/* Symbols which vary between passes. Passes 1 and 2 must have
|
||||
* identical symbol lists.
|
||||
* identical symbol lists. The kallsyms_* symbols below are only added
|
||||
* after pass 1, they would be included in pass 2 when --all-symbols is
|
||||
* specified so exclude them to get a stable symbol list.
|
||||
*/
|
||||
static char *special_symbols[] = {
|
||||
"kallsyms_addresses",
|
||||
"kallsyms_num_syms",
|
||||
"kallsyms_names",
|
||||
"kallsyms_markers",
|
||||
"kallsyms_token_table",
|
||||
"kallsyms_token_index",
|
||||
|
||||
/* Exclude linker generated symbols which vary between passes */
|
||||
"_SDA_BASE_", /* ppc */
|
||||
"_SDA2_BASE_", /* ppc */
|
||||
@@ -164,9 +173,7 @@ static int symbol_valid(struct sym_entry *s)
|
||||
}
|
||||
|
||||
/* Exclude symbols which vary between passes. */
|
||||
if (strstr((char *)s->sym + offset, "_compiled.") ||
|
||||
strncmp((char*)s->sym + offset, "__compound_literal.", 19) == 0 ||
|
||||
strncmp((char*)s->sym + offset, "__compound_literal$", 19) == 0)
|
||||
if (strstr((char *)s->sym + offset, "_compiled."))
|
||||
return 0;
|
||||
|
||||
for (i = 0; special_symbols[i]; i++)
|
||||
@@ -543,10 +550,8 @@ int main(int argc, char **argv)
|
||||
usage();
|
||||
|
||||
read_map(stdin);
|
||||
if (table_cnt) {
|
||||
sort_symbols();
|
||||
optimize_token_table();
|
||||
}
|
||||
sort_symbols();
|
||||
optimize_token_table();
|
||||
write_src();
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user