[PATCH 00/13] kbuild: refactoring after Clang LTO

From: Masahiro Yamada
Date: Wed Aug 18 2021 - 20:58:42 EST

The introduction of Clang LTO, the kbuild code became much
uglier due to CONFIG_LTO_CLANG conditionals.

It is painful to maintain the messed-up code, and to review
code changed on top of that.

Masahiro Yamada (13):
kbuild: move objtool_args back to scripts/Makefile.build
gen_compile_commands: extract compiler command from a series of
kbuild: detect objtool changes correctly and remove .SECONDEXPANSION
kbuild: remove unused quiet_cmd_update_lto_symversions
kbuild: remove stale *.symversions
kbuild: merge vmlinux_link() between the ordinary link and Clang LTO
kbuild: do not remove 'linux' link in scripts/link-vmlinux.sh
kbuild: merge vmlinux_link() between ARCH=um and other architectures
kbuild: do not create built-in.a.symversions or lib.a.symversions
kbuild: build modules in the same way with/without Clang LTO
kbuild: always postpone CRC links for module versioning
kbuild: merge cmd_modversions_c and cmd_modversions_S
kbuild: merge cmd_ar_builtin and cmd_ar_module

scripts/Makefile.build | 196 ++++++++------------
scripts/Makefile.lib | 28 +--
scripts/Makefile.modfinal | 4 +-
scripts/Makefile.modpost | 7 +-
scripts/clang-tools/gen_compile_commands.py | 2 +-
scripts/link-vmlinux.sh | 125 +++++++------
scripts/mod/modpost.c | 6 +-
scripts/mod/sumversion.c | 6 +-
8 files changed, 164 insertions(+), 210 deletions(-)