• Paul Mundt's avatar
    module: fix up CONFIG_KALLSYMS=n build. · 3ae91c21
    Paul Mundt authored
    Starting from commit 4a496226 "reduce
    symbol table for loaded modules (v2)", the kernel/module.c build is broken
    with CONFIG_KALLSYMS disabled.
    
      CC      kernel/module.o
    kernel/module.c:1995: warning: type defaults to 'int' in declaration of 'Elf_Hdr'
    kernel/module.c:1995: error: expected ';', ',' or ')' before '*' token
    kernel/module.c: In function 'load_module':
    kernel/module.c:2203: error: 'strmap' undeclared (first use in this function)
    kernel/module.c:2203: error: (Each undeclared identifier is reported only once
    kernel/module.c:2203: error: for each function it appears in.)
    kernel/module.c:2239: error: 'symoffs' undeclared (first use in this function)
    kernel/module.c:2239: error: implicit declaration of function 'layout_symtab'
    kernel/module.c:2240: error: 'stroffs' undeclared (first use in this function)
    make[1]: *** [kernel/module.o] Error 1
    make: *** [kernel/module.o] Error 2
    
    There are three different issues:
    
        - layout_symtab() takes a const Elf_Ehdr
    
        - layout_symtab() needs to return a value
    
        - symoffs/stroffs/strmap are referenced by the load_module() code
          despite being ifdefed out, which seems unnecessary given the noop
          behaviour of layout_symtab()/add_kallsyms() in the case of
          CONFIG_KALLSYMS=n.
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    Acked-by: default avatarJan Beulich <jbeulich@novell.com>
    Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3ae91c21
module.c 80.2 KB