Selaa lähdekoodia

Add a sed to glibc to fix the constants passed to futex(2) in 32-bit builds. Seems to fix testsuite hangs (the tst-mutex9 process never exits, for instance).

This change is in upstream git, so this can be reverted once we upgrade glibc.



git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8944 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Bryan Kadzban 16 vuotta sitten
vanhempi
commit
2594b0a146
3 muutettua tiedostoa jossa 29 lisäystä ja 0 poistoa
  1. 11 0
      chapter01/changelog.xml
  2. 10 0
      chapter05/glibc.xml
  3. 8 0
      chapter06/glibc.xml

+ 11 - 0
chapter01/changelog.xml

@@ -37,6 +37,17 @@
 
 -->
 
+    <listitem>
+      <para>2009-06-11</para>
+      <itemizedlist>
+        <listitem>
+          <para>[bryan] - Add a sed to glibc to fix the constants passed
+          to futex(2) in 32-bit builds with certain --enable-kernel values,
+          including our 2.6.18.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2009-06-06</para>
       <itemizedlist>

+ 10 - 0
chapter05/glibc.xml

@@ -43,6 +43,16 @@
   <sect2 role="installation">
     <title>Installation of Glibc</title>
 
+    <!-- This sed can be removed for any glibc newer than 2.10.1 (along with the
+         matching sed in chapter 6).  See glibc bug 10262. -->
+    <para>Fix an error in the constants that get passed to the futex system
+    call in some cases, causing certain pthread_mutex operations to fail:</para>
+
+<screen><userinput remap="pre">cp nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S{,.orig}
+sed -e 's/FUTEX_WAIT\( | FUTEX_CLOCK_REALTIME, reg\)/FUTEX_WAIT_BITSET\1/' \
+        &lt;nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S.orig \
+        &gt;nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S</userinput></screen>
+
     <para>The Glibc documentation recommends building Glibc outside of the source
     directory in a dedicated build directory:</para>
 

+ 8 - 0
chapter06/glibc.xml

@@ -108,6 +108,14 @@ unset DL</userinput></screen>
 sed -i '/tst-fgetws-ENV/ a\
 tst-fgetwc-ENV = LOCPATH=$(common-objpfx)localedata' libio/Makefile</userinput></screen>
 
+    <!-- This sed can be removed for any glibc newer than 2.10.1 (along with the
+         matching sed in chapter 5).  See glibc bug 10262. -->
+    <para>Fix an error in the constants that get passed to the futex system
+    call in some cases, causing certain pthread_mutex operations to fail:</para>
+
+<screen><userinput remap="pre">sed -i -e 's/FUTEX_WAIT\( | FUTEX_CLOCK_REALTIME, reg\)/FUTEX_WAIT_BITSET\1/' \
+        nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S</userinput></screen>
+
     <para>The Glibc documentation recommends building Glibc outside of the source
     directory in a dedicated build directory:</para>