diff options
| author | Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de> | 2002-12-04 01:17:02 -0600 |
|---|---|---|
| committer | Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de> | 2002-12-04 01:17:02 -0600 |
| commit | 6802d702761dfdd910e37da40ba95fa71fd06dd7 (patch) | |
| tree | 3f211031708e5c04c4cf79e5ce28a3e306bf031b /kernel | |
| parent | a596e9e84c2ccafe145565195cee7eeae57da5b8 (diff) | |
kbuild: Speed up kallsyms generation
This patch basically just replaces the scripts/kallsyms script by
a scripts/kallsyms.c C program, which does the same thing much faster.
It also removes duplicates and entries which are not between _stext and
_etext, as they would not get used anyway. This saves about 290KB in
vmlinux with my .config, more than 50% of the kallsyms bloat ;)
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kallsyms.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 0335cc7fe4a1..bb880ba4e776 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -45,14 +45,11 @@ const char *kallsyms_lookup(unsigned long addr, for (i = 0; i < best; i++) name += strlen(name)+1; - /* Base symbol size on next symbol, but beware aliases. */ - symbol_end = (unsigned long)_etext; - for (i = best+1; i < kallsyms_num_syms; i++) { - if (kallsyms_addresses[i] != kallsyms_addresses[best]){ - symbol_end = kallsyms_addresses[i]; - break; - } - } + /* Base symbol size on next symbol. */ + if (best + 1 < kallsyms_num_syms) + symbol_end = kallsyms_addresses[best + 1]; + else + symbol_end = (unsigned long)_etext; *symbolsize = symbol_end - kallsyms_addresses[best]; *modname = NULL; |
