sh: inconsistent kallsyms data

From: Paul Mundt (lethal_at_linux-sh.org)
Date: 12/31/04

  • Next message: Linus Torvalds: "Re: ptrace single-stepping change breaks Wine"
    Date:	Fri, 31 Dec 2004 19:25:50 +0200
    To: linux-kernel@vger.kernel.org
    
    
    

    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.

    
    

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/



  • Next message: Linus Torvalds: "Re: ptrace single-stepping change breaks Wine"

    Relevant Pages