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 steps (1/2), for the kernel image, the built-in initramfs, and the other gzip rules, 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 these recipes recursive, as was done for rustc. Thanks! -Kees v2: - 1/2: also mark the gzip rules that choose gzip through a variable, including the built-in initramfs in usr/Makefile, which rcutorture's kvm.sh builds and v1 missed (Paul) - 1/2: update the gzip entry in Documentation/kbuild/makefiles.rst (Nicolas) - 2/2: cite Masahiro's earlier version of this change and say when the script gets more than one archive (Nicolas) - v1..v2 diff: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/diff/?id=dev/next-20261001/pigz-recursive/v2&id2=dev/next-20261001/pigz-recursive/v1 v1: https://lore.kernel.org/all/[email protected]/ [1] https://lore.kernel.org/all/0ddb5e5e-f801-444c-aa98-0cfe814a3026@paulmck-laptop/ Kees Cook (2): kbuild: Mark the gzip recipes as recursive kbuild: Mark the initcall ordering recipe as recursive arch/alpha/boot/Makefile | 4 ++-- arch/arc/boot/Makefile | 2 +- arch/arm/boot/compressed/Makefile | 2 +- arch/arm64/boot/Makefile | 2 +- arch/csky/boot/Makefile | 2 +- arch/microblaze/boot/Makefile | 2 +- arch/mips/boot/Makefile | 2 +- arch/mips/boot/compressed/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 +- usr/Makefile | 2 +- drivers/firmware/efi/libstub/Makefile.zboot | 2 +- scripts/Makefile.vmlinux_o | 2 +- Documentation/kbuild/makefiles.rst | 7 +++++-- 21 files changed, 27 insertions(+), 24 deletions(-) -- 2.55.0

