• Atsushi Nemoto's avatar
    kbuild: make better section mismatch reports on i386, arm and mips · f892b7d4
    Atsushi Nemoto authored
    On i386, ARM and MIPS, warn_sec_mismatch() sometimes fails to show
    usefull symbol name.  This is because empty 'refsym' due to 0 r_addend
    value.  This patch is to adjust r_addend value, consulting with
    apply_relocate() routine in kernel code.
    
    Without this patch:
      MODPOST vmlinux
    WARNING: init/built-in.o - Section mismatch: reference to .init.text: from .text between 'rest_init' (at offset 0xf4) and 'try_name'
    WARNING: mm/built-in.o - Section mismatch: reference to .init.text: from .text between 'kmem_cache_create' (at offset 0x18a39) and 'cache_reap'
    WARNING: mm/built-in.o - Section mismatch: reference to .init.text: from .text between 'kmem_cache_create' (at offset 0x18a6b) and 'cache_reap'
    
    With this patch:
      MODPOST vmlinux
    WARNING: mm/built-in.o - Section mismatch: reference to .init.text:set_up_list3s from .text between 'kmem_cache_create' (at offset 0x18a39) and 'cache_reap'
    WARNING: mm/built-in.o - Section mismatch: reference to .init.text:set_up_list3s from .text between 'kmem_cache_create' (at offset 0x18a6b) and 'cache_reap'
    
    Now modpost can detect "kernel_init" name (and whitelist it) and show
    "set_up_list3s" name.
    Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
    Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    f892b7d4
modpost.c 42.8 KB