summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-12-04 01:17:02 -0600
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-12-04 01:17:02 -0600
commit6802d702761dfdd910e37da40ba95fa71fd06dd7 (patch)
tree3f211031708e5c04c4cf79e5ce28a3e306bf031b /kernel
parenta596e9e84c2ccafe145565195cee7eeae57da5b8 (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.c13
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;