Masahiro Yamada
2018-07-12 01:26:48 UTC
Hello GNU Make folks,
I am a Linux kernel developer.
I think the following commit broke
the parallel building of Linux kernel.
commit 2b8e3bb23f96c2458818f011593557d3353dade3
Author: Paul Smith <***@gnu.org>
Date: Mon Jan 2 14:08:54 2017 -0500
Clean up close-on-exec, particularly with jobserver pipes.
How to reproduce the problem
----------------------------
You can get the Linux kernel source code by
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ git checkout v4.17
At the top of the Linux kernel source tree, run
$ make -j8 defconfig all
This worked fine with GNU Make prior to that commit.
If you use GNU Make with that commit,
'jobserver unavailable: using -j1. Add '+' to parent make rule'
is displayed, then the whole build process of Linux kernel
is serialized.
$ make -j8 defconfig all
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'x86_64_defconfig'
#
# configuration written to .config
#
scripts/kconfig/conf --syncconfig Kconfig
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent
make rule.
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
The commit subject says 'Clean up', but
I think this is accidental breakage.
Any clue?
I am a Linux kernel developer.
I think the following commit broke
the parallel building of Linux kernel.
commit 2b8e3bb23f96c2458818f011593557d3353dade3
Author: Paul Smith <***@gnu.org>
Date: Mon Jan 2 14:08:54 2017 -0500
Clean up close-on-exec, particularly with jobserver pipes.
How to reproduce the problem
----------------------------
You can get the Linux kernel source code by
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ git checkout v4.17
At the top of the Linux kernel source tree, run
$ make -j8 defconfig all
This worked fine with GNU Make prior to that commit.
If you use GNU Make with that commit,
'jobserver unavailable: using -j1. Add '+' to parent make rule'
is displayed, then the whole build process of Linux kernel
is serialized.
$ make -j8 defconfig all
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'x86_64_defconfig'
#
# configuration written to .config
#
scripts/kconfig/conf --syncconfig Kconfig
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent
make rule.
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
The commit subject says 'Clean up', but
I think this is accidental breakage.
Any clue?
--
Best Regards
Masahiro Yamada
Best Regards
Masahiro Yamada