[PATCH v3 0/7] kbuild: various cleanups

Masahiro Yamada posted 7 patches 3 years, 6 months ago
Documentation/kbuild/makefiles.rst          |  27 +----
Kbuild                                      |  24 ++++
Makefile                                    | 119 +++++++++++---------
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                   |  23 ++--
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                |  20 ++--
arch/riscv/Makefile                         |   2 -
arch/riscv/kernel/Makefile                  |   2 +-
arch/s390/Makefile                          |   2 -
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/kernel/Makefile                    |  10 +-
arch/xtensa/Makefile                        |   2 -
arch/xtensa/kernel/Makefile                 |   4 +-
scripts/Makefile.lib                        |   2 +
scripts/Makefile.modfinal                   |   2 +-
scripts/Makefile.modpost                    | 112 ++++++++----------
scripts/Makefile.package                    |   5 +-
scripts/Makefile.vmlinux_o                  |   6 +-
scripts/clang-tools/gen_compile_commands.py |  19 +---
scripts/head-object-list.txt                |  53 +++++++++
scripts/link-vmlinux.sh                     |  34 +-----
55 files changed, 273 insertions(+), 314 deletions(-)
create mode 100644 scripts/head-object-list.txt
[PATCH v3 0/7] kbuild: various cleanups
Posted by Masahiro Yamada 3 years, 6 months ago
 - Link vmlinux and modules in parallel
 - Remove head-y syntax


Masahiro Yamada (7):
  kbuild: hard-code KBUILD_ALLDIRS in scripts/Makefile.package
  kbuild: list sub-directories in ./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                                      |  24 ++++
 Makefile                                    | 119 +++++++++++---------
 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                   |  23 ++--
 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                |  20 ++--
 arch/riscv/Makefile                         |   2 -
 arch/riscv/kernel/Makefile                  |   2 +-
 arch/s390/Makefile                          |   2 -
 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/kernel/Makefile                    |  10 +-
 arch/xtensa/Makefile                        |   2 -
 arch/xtensa/kernel/Makefile                 |   4 +-
 scripts/Makefile.lib                        |   2 +
 scripts/Makefile.modfinal                   |   2 +-
 scripts/Makefile.modpost                    | 112 ++++++++----------
 scripts/Makefile.package                    |   5 +-
 scripts/Makefile.vmlinux_o                  |   6 +-
 scripts/clang-tools/gen_compile_commands.py |  19 +---
 scripts/head-object-list.txt                |  53 +++++++++
 scripts/link-vmlinux.sh                     |  34 +-----
 55 files changed, 273 insertions(+), 314 deletions(-)
 create mode 100644 scripts/head-object-list.txt

-- 
2.34.1
Re: [PATCH v3 0/7] kbuild: various cleanups
Posted by Nick Desaulniers 3 years, 6 months ago
On Sat, Sep 24, 2022 at 11:20 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
>  - Link vmlinux and modules in parallel

I was curious if this resulted in an observable improvement. N=1

Mainline:
$ /usr/bin/time -v make ARCH=arm64 LLVM=1 -j128 -s
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:15.68


With this series:
$ /usr/bin/time -v make ARCH=arm64 LLVM=1 -j128 -s
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:12.22

I'll take it!
Tested-by: Nick Desaulniers <ndesaulniers@google.com>


>  - Remove head-y syntax
>
>
> Masahiro Yamada (7):
>   kbuild: hard-code KBUILD_ALLDIRS in scripts/Makefile.package
>   kbuild: list sub-directories in ./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                                      |  24 ++++
>  Makefile                                    | 119 +++++++++++---------
>  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                   |  23 ++--
>  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                |  20 ++--
>  arch/riscv/Makefile                         |   2 -
>  arch/riscv/kernel/Makefile                  |   2 +-
>  arch/s390/Makefile                          |   2 -
>  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/kernel/Makefile                    |  10 +-
>  arch/xtensa/Makefile                        |   2 -
>  arch/xtensa/kernel/Makefile                 |   4 +-
>  scripts/Makefile.lib                        |   2 +
>  scripts/Makefile.modfinal                   |   2 +-
>  scripts/Makefile.modpost                    | 112 ++++++++----------
>  scripts/Makefile.package                    |   5 +-
>  scripts/Makefile.vmlinux_o                  |   6 +-
>  scripts/clang-tools/gen_compile_commands.py |  19 +---
>  scripts/head-object-list.txt                |  53 +++++++++
>  scripts/link-vmlinux.sh                     |  34 +-----
>  55 files changed, 273 insertions(+), 314 deletions(-)
>  create mode 100644 scripts/head-object-list.txt
>
> --
> 2.34.1
>


-- 
Thanks,
~Nick Desaulniers