Messages in this thread Patch in this message | | | Date | Fri, 31 Dec 2004 19:25:50 +0200 | From | Paul Mundt <> | Subject | sh: inconsistent kallsyms data |
| |
Building 2.6.10 for sh results in inconsistent kallsyms data. Turning on CONFIG_KALLSYMS_ALL fixes it, as does CONFIG_KALLSYMS_EXTRA_PASS.
The symbols that seem to be problematic between the second and third pass are all kallsyms special symbols. With only CONFIG_KALLSYMS set we see:
--- System.map 2004-12-31 10:53:10.278567522 -0600 +++ .tmp_System.map 2004-12-31 10:53:10.347558024 -0600 @@ -6868,9 +6868,9 @@ 8817c4d0 D kallsyms_addresses 88182660 D kallsyms_num_syms 88182670 D kallsyms_names -88190630 D kallsyms_markers -881906a0 D kallsyms_token_table -88190b50 D kallsyms_token_index +881906a0 D kallsyms_markers +88190710 D kallsyms_token_table +88190bc0 D kallsyms_token_index 88191000 D irq_desc 88191000 A __per_cpu_end 88191000 A __per_cpu_start So for some reason we have a 0x70 variance between these, and only these. Running with --all-symbols this seems to work fine.
Looking at scripts/kallsyms.c:symbol_valid, we see:
/* Symbols which vary between passes. Passes 1 and 2 must have * 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. */ Going by this it's not entirely clear if there is a problem or not. If these symbols are supposed to be excluded due to being "special", then it doesn't seem like verify_kallsyms in the top-level Makefile is doing the right thing by just doing a blind cmp -s. This comment also seems to be a bit outdated or just generally inaccurate, as --all-symbols isn't the default behaviour unless CONFIG_KALLSYMS_ALL is set. [unhandled content-type:application/pgp-signature] | |