[PATCH v1 0/2] kbuild: Give jobserver-exec recipes the jobserver

From: Kees Cook

Date: Fri Oct 09 2026 - 02:31:17 EST


Hi!

Paul reported a build failure on CentOS Stream 9 with linux-next[1]: the
kernel builds, but scripts/jobserver-exec prints

WARNING: Unable to reopen jobserver read-side pipe: FileNotFoundError(2, 'No such file or directory')

and rcutorture's build check counts the "Error" in that line. CentOS's
make 4.3 carries a backport of the fix for GNU Make bug 58232, so
sub-makes, like the top-level make, give the jobserver pipe only to
recipes marked recursive, while MAKEFLAGS still names it. The new pigz
step (1/2) and the older Clang LTO initcall ordering step (2/2) run
jobserver-exec from recipes without "+", so pigz gets one thread and the
initcall script caps its children at the CPU count instead of the free
job slots. Mark both recipes recursive, as was done for rustc.

Thanks!

-Kees

[1] https://lore.kernel.org/all/0ddb5e5e-f801-444c-aa98-0cfe814a3026@paulmck-laptop/

Kees Cook (2):
kbuild: Mark the kernel image gzip recipes as recursive
kbuild: Mark the initcall ordering recipe as recursive

arch/alpha/boot/Makefile | 4 ++--
arch/arc/boot/Makefile | 2 +-
arch/arm64/boot/Makefile | 2 +-
arch/microblaze/boot/Makefile | 2 +-
arch/mips/boot/Makefile | 2 +-
arch/nios2/boot/Makefile | 2 +-
arch/parisc/boot/compressed/Makefile | 2 +-
arch/riscv/boot/Makefile | 2 +-
arch/s390/boot/Makefile | 2 +-
arch/sh/boot/Makefile | 2 +-
arch/sh/boot/compressed/Makefile | 2 +-
arch/sparc/boot/Makefile | 4 ++--
arch/x86/boot/compressed/Makefile | 2 +-
arch/xtensa/boot/Makefile | 2 +-
scripts/Makefile.vmlinux_o | 2 +-
15 files changed, 17 insertions(+), 17 deletions(-)

--
2.55.0