• Masahiro Yamada's avatar
    modpost: do not set ->preloaded for symbols from Module.symvers · e4b26c9f
    Masahiro Yamada authored
    Now that there is no overwrap between symbols from ELF files and
    ones from Module.symvers.
    
    So, the 'exported twice' warning should be reported irrespective
    of where the symbol in question came from.
    
    The exceptional case is external module; in some cases, we build
    an external module to provide a different version/variant of the
    corresponding in-kernel module, overriding the same set of exported
    symbols.
    
    You can see this use-case in upstream; tools/testing/nvdimm/libnvdimm.ko
    replaces drivers/nvdimm/libnvdimm.ko in order to link it against mocked
    version of core kernel symbols.
    
    So, let's relax the 'exported twice' warning when building external
    modules. The multiple export from external modules is warned only
    when the previous one is from vmlinux or itself.
    
    With this refactoring, the ugly preloading goes away.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    e4b26c9f
modpost.c 69.5 KB