From d45f50d26d9d0861d96f46d9cb5261f5a731d498 Mon Sep 17 00:00:00 2001
From: Xi Ruoyao <xry111@xry111.site>
Date: Tue, 1 Nov 2022 10:47:28 +0800
Subject: [PATCH] glibc: fix parallel build issue with make-4.4

We only need a one-line change in upstream fix (because we don't use
"make --shuffle").  Add it as a sed for both Chapter 5 and Chapter 8.

Note that the "minimal" sed would be '/MAEKFLAGS :=/s/r/ -r/'.  I
included an additional ')' so it won't modify "-r" again to "- -r".

Tested "make" and "make check" on a x86_64 with -j8 and an arm64 with
-j24.

Link: https://sourceware.org/git/?p=glibc.git;a=commit;h=2d7ed98add14
---
 chapter05/glibc.xml |  5 +++++
 chapter08/glibc.xml | 14 +++++---------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 6b78031bc..a8834cc19 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -64,6 +64,11 @@ esac</userinput></screen>
       </para>
     </note>
 
+    <para>Fix an issue building Glibc with parallel jobs and make-4.4
+    or later:</para>
+
+<screen><userinput remap="pre">sed '/MAKEFLAGS :=/s/)r/) -r/' -i Makerules</userinput></screen>
+
     <para>Some of the Glibc programs use the non-FHS-compliant
     <filename class="directory">/var/db</filename> directory to store their
     runtime data. Apply the following patch to make such programs store their
diff --git a/chapter08/glibc.xml b/chapter08/glibc.xml
index fc7b96dfe..0bc9a5dcf 100644
--- a/chapter08/glibc.xml
+++ b/chapter08/glibc.xml
@@ -43,12 +43,11 @@
   <sect2 role="installation">
     <title>Installation of Glibc</title>
 
-<!-- applied in 2.35 (commit b805aebd42364fe696e417808a700fdb9800c9e8)
-    <para>First, fix a security problem identified upstream:</para>
+    <para>First, fix an issue building Glibc with parallel jobs and make-4.4
+    or later:</para>
+
+<screen><userinput remap="pre">sed '/MAKEFLAGS :=/s/)r/) -r/' -i Makerules</userinput></screen>
 
-    <screen><userinput remap="pre">sed -e '/NOTIFY_REMOVED)/s/)/ \&amp;\&amp; data.attr != NULL)/' \
-    -i sysdeps/unix/sysv/linux/mq_notify.c</userinput></screen>
--->
     <para>Some of the Glibc programs use the non-FHS compliant
     <filename class="directory">/var/db</filename> directory to store
     their runtime data. Apply the following patch to make such programs
@@ -127,10 +126,7 @@ cd       build</userinput></screen>
 
     <para>Compile the package:</para>
 
-<!-- With make-4.4, glibc consistently failed at -j22, but passed at -j1.
-     I will inverstigate to see if I can find a better alternative.
-     It seems like a race condition. -->
-<screen><userinput remap="make">make -j1</userinput></screen>
+<screen><userinput remap="make">make</userinput></screen>
 
     <important>
       <para>In this section, the test suite for Glibc is considered critical.