• Quentin Perret's avatar
    kbuild: allow symbol whitelisting with TRIM_UNUSED_KSYMS · 1518c633
    Quentin Perret authored
    CONFIG_TRIM_UNUSED_KSYMS currently removes all unused exported symbols
    from ksymtab. This works really well when using in-tree drivers, but
    cannot be used in its current form if some of them are out-of-tree.
    
    Indeed, even if the list of symbols required by out-of-tree drivers is
    known at compile time, the only solution today to guarantee these don't
    get trimmed is to set CONFIG_TRIM_UNUSED_KSYMS=n. This not only wastes
    space, but also makes it difficult to control the ABI usable by vendor
    modules in distribution kernels such as Android. Being able to control
    the kernel ABI surface is particularly useful to ship a unique Generic
    Kernel Image (GKI) for all vendors, which is a first step in the
    direction of getting all vendors to contribute their code upstream.
    
    As such, attempt to improve the situation by enabling users to specify a
    symbol 'whitelist' at compile time. Any symbol specified in this
    whitelist will be kept exported when CONFIG_TRIM_UNUSED_KSYMS is set,
    even if it has no in-tree user. The whitelist is defined as a simple
    text file, listing symbols, one per line.
    Acked-by: default avatarJessica Yu <jeyu@kernel.org>
    Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
    Tested-by: default avatarMatthias Maennich <maennich@google.com>
    Reviewed-by: default avatarMatthias Maennich <maennich@google.com>
    Signed-off-by: default avatarQuentin Perret <qperret@google.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    1518c633
Kconfig 72.8 KB