Skip to content
  • Nicolas Pitre's avatar
    kbuild: record needed exported symbols for modules · 9895c03d
    Nicolas Pitre authored
    
    
    Kernel modules are partially linked object files with some undefined
    symbols that are expected to be matched with EXPORT_SYMBOL() entries
    from elsewhere.
    
    Each .tmp_versions/*.mod file currently contains two line of text
    separated by a newline character. The first line has the actual module
    file name while the second line has a list of object files constituting
    that module. Those files are parsed by modpost (scripts/mod/sumversion.c),
    scripts/Makefile.modpost, scripts/Makefile.modsign, etc.  Only the
    modpost utility cares about the second line while the others retrieve
    only the first line.
    
    Therefore we can add a third line to record the list of undefined symbols
    aka required EXPORT_SYMBOL() entries for each module into that file
    without breaking anything. Like for the second line, symbols are separated
    by a blank and the list is terminated with a newline character.
    
    To avoid needless build overhead, the undefined symbols extraction is
    performed only when CONFIG_TRIM_UNUSED_KSYMS is selected.
    
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    9895c03d