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
This commit is contained in:
Xi Ruoyao 2022-11-01 10:47:28 +08:00
parent 3f4304998a
commit d45f50d26d
No known key found for this signature in database
GPG Key ID: ACAAD20E19E710E3
2 changed files with 10 additions and 9 deletions

View File

@ -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

View File

@ -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.