[PATCH 0/4] kbuild: build speed improvment of CONFIG_TRIM_UNUSED_KSYMS

Masahiro Yamada
2021-02-25T16:04:55Z

Now CONFIG_TRIM_UNUSED_KSYMS is revived, but Linus is still unhappy
about the build speed.

I re-implemented this feature, and the build time cost is now
almost unnoticeable level.

I hope this makes Linus happy.

Masahiro Yamada (4):
kbuild: fix UNUSED_KSYMS_WHITELIST for Clang LTO
export.h: make __ksymtab_strings per-symbol section
kbuild: separate out vmlinux.lds generation
kbuild: re-implement CONFIG_TRIM_UNUSED_KSYMS to make it work in
one-pass

Makefile | 34 ++++++------
arch/alpha/kernel/Makefile | 3 +-
arch/arc/kernel/Makefile | 3 +-
arch/arm/kernel/Makefile | 3 +-
arch/arm64/kernel/Makefile | 3 +-
arch/csky/kernel/Makefile | 3 +-
arch/h8300/kernel/Makefile | 2 +-
arch/hexagon/kernel/Makefile | 3 +-
arch/ia64/kernel/Makefile | 3 +-
arch/m68k/kernel/Makefile | 2 +-
arch/microblaze/kernel/Makefile | 3 +-
arch/mips/kernel/Makefile | 3 +-
arch/nds32/kernel/Makefile | 3 +-
arch/nios2/kernel/Makefile | 2 +-
arch/openrisc/kernel/Makefile | 3 +-
arch/parisc/kernel/Makefile | 3 +-
arch/powerpc/kernel/Makefile | 2 +-
arch/riscv/kernel/Makefile | 2 +-
arch/s390/kernel/Makefile | 3 +-
arch/sh/kernel/Makefile | 3 +-
arch/sparc/kernel/Makefile | 2 +-
arch/um/kernel/Makefile | 2 +-
arch/x86/kernel/Makefile | 2 +-
arch/xtensa/kernel/Makefile | 3 +-
include/asm-generic/export.h | 25 +--------
include/asm-generic/vmlinux.lds.h | 29 +++++++++--
include/linux/export.h | 56 +++++---------------
init/Kconfig | 4 +-
scripts/Makefile.build | 7 +--
scripts/adjust_autoksyms.sh | 76 ---------------------------
scripts/gen-keep-ksyms.sh | 86 +++++++++++++++++++++++++++++++
scripts/gen_autoksyms.sh | 55 --------------------
scripts/gen_ksymdeps.sh | 25 ---------
scripts/lto-used-symbollist.txt | 5 --
scripts/module.lds.S | 38 ++++++++++----
35 files changed, 210 insertions(+), 291 deletions(-)
delete mode 100755 scripts/adjust_autoksyms.sh
create mode 100755 scripts/gen-keep-ksyms.sh
delete mode 100755 scripts/gen_autoksyms.sh
delete mode 100755 scripts/gen_ksymdeps.sh
delete mode 100644 scripts/lto-used-symbollist.txt

--
2.27.0