- 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