Pass sanitized MAKEFLAGS to scriptlets

Now that we have MAKEFLAGS in the environment, "make" in chroot
is run with MAKEFLAGS set. This cause it to pass the -j value
into MAKEFLAGS to inferiors (scriptlets), but it is passed with
a --jobserver-auth value added. If we do not precede the command
running the scriptlet with a +, it passes --jobserver-auth=-2,-2
meaning that the jobserver is disabled, and "make" in the scriptlet
understands that it should only run one job at a time (defeating
the value of the -j flag). But even if we do precede the command
running the scriptlet with a +, it passes --jobserver-auth=3,4,
which shows it is running, but this jobserver will authorize only
one job at a time since the parent make contains the target
.NOTPARALLEL!
To work around this problem, tje only solution is to change the
MAKEFLAGS at the beginning of the scriptlet. Fortunately, lfs.xsl
knows what we want as job number (either $(nproc) or a fixed number),
so use it to set MAKEFLAGS.
This commit is contained in:
Pierre Labastie 2023-11-17 13:18:12 +01:00
parent 249d4ade20
commit 078ef3cf12
1 changed files with 5 additions and 0 deletions

View File

@ -1249,6 +1249,11 @@ tar -xf $PACKAGE
cd $PKGDIR
</xsl:text>
</xsl:if>
<xsl:text>
export MAKEFLAGS="-j</xsl:text>
<xsl:value-of select="$jobs"/>
<xsl:text>"
</xsl:text>
<xsl:text>SECONDS=${PREV_SEC}
# Start of LFS book script