aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Labastie <pierre.labastie@neuf.fr>2023-11-17 13:18:12 +0100
committerPierre Labastie <pierre.labastie@neuf.fr>2023-11-17 13:18:12 +0100
commit078ef3cf122130dfc69fd1c1948a5583104986ce (patch)
treede9e243e899ee45975a5b4ee4031e03ce7bcb86c
parent249d4ade208ff645ee5d5d409a4dba6f08561fa4 (diff)
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.
-rw-r--r--LFS/lfs.xsl5
1 files changed, 5 insertions, 0 deletions
diff --git a/LFS/lfs.xsl b/LFS/lfs.xsl
index 49fbdf2cec..26982b0b2f 100644
--- a/LFS/lfs.xsl
+++ b/LFS/lfs.xsl
@@ -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