[PATCH 00/15] kbuild: various cleanups

From: Masahiro Yamada
Date: Sat Aug 27 2022 - 22:40:53 EST


- Avoid updating init/built-in.a twice
- Run modpost just once instead of twice
- Link vmlinux and modules in parallel
- Remove head-y syntax

These are ground works to make the further refactoring possible.

This patch set is applicable after the following series:
https://patchwork.kernel.org/project/linux-kbuild/list/?series=669437


Masahiro Yamada (15):
kbuild: remove duplicated dependency between modules and modules_check
kbuild: refactor single builds of *.ko
kbuild: move 'PHONY += modules_prepare' to the common part
init/version.c: remove #include <linux/version.h>
kbuild: build init/built-in.a just once
kbuild: generate include/generated/compile.h in top Makefile
scripts/mkcompile_h: move LC_ALL=C to '$LD -v'
Revert "kbuild: Make scripts/compile.h when sh != bash"
kbuild: rename modules.order in sub-directories to .modules.order
kbuild: move core-y in top Makefile to ./Kbuild
kbuild: move .vmlinux.objs rule to Makefile.modpost
kbuild: move vmlinux.o rule to the top Makefile
kbuild: unify two modpost invocations
kbuild: use obj-y instead extra-y for objects placed at the head
kbuild: remove head-y syntax

Documentation/kbuild/makefiles.rst | 27 +----
Kbuild | 16 +++
Makefile | 120 ++++++++++++--------
arch/alpha/Makefile | 2 -
arch/alpha/kernel/Makefile | 4 +-
arch/arc/Makefile | 2 -
arch/arc/kernel/Makefile | 4 +-
arch/arm/Makefile | 3 -
arch/arm/kernel/Makefile | 4 +-
arch/arm64/Makefile | 3 -
arch/arm64/kernel/Makefile | 4 +-
arch/csky/Makefile | 2 -
arch/csky/kernel/Makefile | 4 +-
arch/hexagon/Makefile | 2 -
arch/hexagon/kernel/Makefile | 3 +-
arch/ia64/Makefile | 1 -
arch/ia64/kernel/Makefile | 4 +-
arch/loongarch/Makefile | 2 -
arch/loongarch/kernel/Makefile | 4 +-
arch/m68k/68000/Makefile | 2 +-
arch/m68k/Makefile | 9 --
arch/m68k/coldfire/Makefile | 2 +-
arch/m68k/kernel/Makefile | 21 ++--
arch/microblaze/Makefile | 1 -
arch/microblaze/kernel/Makefile | 4 +-
arch/mips/Makefile | 2 -
arch/mips/kernel/Makefile | 4 +-
arch/nios2/Makefile | 1 -
arch/nios2/kernel/Makefile | 2 +-
arch/openrisc/Makefile | 2 -
arch/openrisc/kernel/Makefile | 4 +-
arch/parisc/Makefile | 2 -
arch/parisc/kernel/Makefile | 4 +-
arch/powerpc/Makefile | 12 --
arch/powerpc/kernel/Makefile | 22 ++--
arch/riscv/Makefile | 2 -
arch/riscv/kernel/Makefile | 2 +-
arch/s390/Makefile | 2 -
arch/s390/boot/version.c | 1 +
arch/s390/kernel/Makefile | 4 +-
arch/sh/Makefile | 2 -
arch/sh/kernel/Makefile | 4 +-
arch/sparc/Makefile | 2 -
arch/sparc/kernel/Makefile | 3 +-
arch/x86/Makefile | 5 -
arch/x86/boot/compressed/kaslr.c | 1 +
arch/x86/boot/version.c | 1 +
arch/x86/kernel/Makefile | 10 +-
arch/xtensa/Makefile | 2 -
arch/xtensa/kernel/Makefile | 4 +-
init/Makefile | 55 ++++++---
init/build-version | 10 ++
init/version-timestamp.c | 31 +++++
init/version.c | 37 +++---
scripts/Makefile.build | 20 ++--
scripts/Makefile.lib | 8 +-
scripts/Makefile.modfinal | 2 +-
scripts/Makefile.modpost | 112 ++++++++----------
scripts/Makefile.vmlinux_o | 6 +-
scripts/clang-tools/gen_compile_commands.py | 19 +---
scripts/head-object-list.txt | 53 +++++++++
scripts/link-vmlinux.sh | 51 ++-------
scripts/mkcompile_h | 96 ++--------------
63 files changed, 393 insertions(+), 457 deletions(-)
create mode 100755 init/build-version
create mode 100644 init/version-timestamp.c
create mode 100644 scripts/head-object-list.txt

--
2.34.1