Upgrade to Glibc-2.16.0. Fixes #3131.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9922 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Matthew Burgess 2012-08-05 14:25:02 +00:00
parent 36ba266b6f
commit f1c177f958
25 changed files with 104 additions and 68 deletions

View File

@ -37,6 +37,16 @@
--> -->
<listitem>
<para>2012-08-05</para>
<itemizedlist>
<listitem>
<para>[matthew] - Upgrade to Glibc-2.16.0. Fixes
<ulink url="&lfs-ticket-root;3131">#3131</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem> <listitem>
<para>2012-07-25</para> <para>2012-07-25</para>
<itemizedlist> <itemizedlist>

View File

@ -231,14 +231,6 @@
<para>&coreutils-i18n-patch;</para> <para>&coreutils-i18n-patch;</para>
</listitem> </listitem>
<listitem>
<para>&glibc-fixes-patch;</para>
</listitem>
<listitem>
<para>&glibc-gcc_fix-patch;</para>
</listitem>
<listitem> <listitem>
<para>&kbd-fixes-patch;</para> <para>&kbd-fixes-patch;</para>
</listitem> </listitem>

View File

@ -58,22 +58,6 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>Glibc Fixes Patch - <token>&glibc-fixes-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&glibc-fixes-patch;"/></para>
<para>MD5 sum: <literal>&glibc-fixes-patch-md5;</literal></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Glibc GCC Fix Patch - <token>&glibc-gcc_fix-patch-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&patches-root;&glibc-gcc_fix-patch;"/></para>
<para>MD5 sum: <literal>&glibc-gcc_fix-patch-md5;</literal></para>
</listitem>
</varlistentry>
<!-- <!--
<varlistentry> <varlistentry>
<term>GRUB Disk Geometry Patch - <token>&grub-geometry-patch-size;</token>:</term> <term>GRUB Disk Geometry Patch - <token>&grub-geometry-patch-size;</token>:</term>

View File

@ -43,6 +43,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Diffutils</title> <title>Installation of Diffutils</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' lib/stdio.in.h</userinput></screen>
<para>Prepare Diffutils for compilation:</para> <para>Prepare Diffutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>

View File

@ -99,6 +99,12 @@ done</userinput></screen>
prevents unexpected changes to the original files in case the commands are prevents unexpected changes to the original files in case the commands are
inadvertently run twice. </para> inadvertently run twice. </para>
<para>GCC doesn't detect stack protection correctly, which causes problems
for the build of Glibc-&glibc-version;, so fix that by issuing the following
command:</para>
<screen><userinput remap="pre">sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure</userinput></screen>
<para>The GCC documentation recommends building GCC outside of the <para>The GCC documentation recommends building GCC outside of the
source directory in a dedicated build directory:</para> source directory in a dedicated build directory:</para>

View File

@ -46,6 +46,10 @@
<para>For our temporary set of tools, we only need to build and install <para>For our temporary set of tools, we only need to build and install
one binary from Gettext.</para> one binary from Gettext.</para>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gettext-*/*/stdio.in.h</userinput></screen>
<para>Prepare Gettext for compilation:</para> <para>Prepare Gettext for compilation:</para>
<screen><userinput remap="configure">cd gettext-tools <screen><userinput remap="configure">cd gettext-tools

View File

@ -43,18 +43,6 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Glibc</title> <title>Installation of Glibc</title>
<para>Address a header check that fails due to an incomplete build
environment at this point:</para>
<screen><userinput remap="pre">sed -i 's#$ac_includes_default#\n\n#' sysdeps/i386/configure</userinput></screen>
<para>Fix a path that is hardcoded:</para>
<screen><userinput remap="pre">sed -i 's#/var/db#/tools/var/db#' Makeconfig</userinput></screen>
<para>Fix a bug that prevents Glibc from building with GCC-&gcc-version;:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-gcc_fix-patch;</userinput></screen>
<para>The Glibc documentation recommends building Glibc outside of the source <para>The Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:</para> directory in a dedicated build directory:</para>
@ -75,6 +63,10 @@ cd ../glibc-build</userinput></screen>
i?86) echo "CFLAGS += -march=i486 -mtune=native" &gt; configparms ;; i?86) echo "CFLAGS += -march=i486 -mtune=native" &gt; configparms ;;
esac</userinput></screen> esac</userinput></screen>
<para>Fix an issue when building Glibc-&glibc-version; with GCC-&gcc-version;:</para>
<screen><userinput remap="pre">sed -i 's/ -lgcc_s//' ../glibc-&glibc-version;/Makeconfig</userinput></screen>
<para>Next, prepare Glibc for compilation:</para> <para>Next, prepare Glibc for compilation:</para>
<screen><userinput remap="configure">../glibc-&glibc-version;/configure \ <screen><userinput remap="configure">../glibc-&glibc-version;/configure \

View File

@ -43,6 +43,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of M4</title> <title>Installation of M4</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' lib/stdio.in.h</userinput></screen>
<para>Prepare M4 for compilation:</para> <para>Prepare M4 for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>

View File

@ -43,6 +43,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Tar</title> <title>Installation of Tar</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gnu/stdio.in.h</userinput></screen>
<para>Prepare Tar for compilation:</para> <para>Prepare Tar for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>

View File

@ -105,7 +105,7 @@
<para>Now run the tests:</para> <para>Now run the tests:</para>
<screen><userinput remap="test">su nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen> <screen><userinput remap="test">su nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes -k check || true"</userinput></screen>
<para>Remove the temporary group:</para> <para>Remove the temporary group:</para>

View File

@ -41,6 +41,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Diffutils</title> <title>Installation of Diffutils</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' lib/stdio.in.h</userinput></screen>
<para>Prepare Diffutils for compilation:</para> <para>Prepare Diffutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>

View File

@ -113,7 +113,7 @@ cd build</userinput></screen>
<para>To test the results, issue:</para> <para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen> <screen><userinput remap="test">make -k check</userinput></screen>
<para>One of the E2fsprogs tests will attempt to allocate 256 MB <para>One of the E2fsprogs tests will attempt to allocate 256 MB
of memory. If you do not have significantly more RAM than this, it of memory. If you do not have significantly more RAM than this, it

View File

@ -43,6 +43,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Gettext</title> <title>Installation of Gettext</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gettext-*/*/stdio.in.h</userinput></screen>
<para>Prepare Gettext for compilation:</para> <para>Prepare Gettext for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -72,7 +72,11 @@
<screen><userinput remap="pre">sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen> <screen><userinput remap="pre">sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen>
--> -->
<para>When running <command>make install</command>, a script called <para>Fix a bug that causes the build to fail:</para>
<screen><userinput remap="pre">sed -i 's#&lt;rpc/types.h&gt;#"rpc/types.h"#' sunrpc/rpc_clntout.c</userinput></screen>
<!-- <para>When running <command>make install</command>, a script called
<filename>test-installation.pl</filename> performs a small sanity test on <filename>test-installation.pl</filename> performs a small sanity test on
our newly installed Glibc. However, because our toolchain still points to our newly installed Glibc. However, because our toolchain still points to
the <filename class="directory">/tools</filename> directory, the sanity the <filename class="directory">/tools</filename> directory, the sanity
@ -82,15 +86,14 @@
<screen><userinput remap="pre">DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p') <screen><userinput remap="pre">DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')
sed -i &quot;s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|&quot; \ sed -i &quot;s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|&quot; \
scripts/test-installation.pl scripts/test-installation.pl
unset DL</userinput></screen> unset DL</userinput></screen>-->
<para>In addition, there is a bug in the <para>When running <command>make install</command>, a script called
<filename>test-installation.pl</filename> script in that it tries to link <filename>test-installation.pl</filename> performs a small sanity test on
a test program to a library that isn't installed by our newly installed Glibc. However, it contains a bug that causes it to
<command>make install</command>. Issue the following <command>sed</command> fail, so prevent it from running by issuing the following command:</para>
command to fix it:</para>
<screen><userinput remap="pre">sed -i -e 's/"db1"/&amp; \&amp;\&amp; $name ne "nss_test1"/' scripts/test-installation.pl</userinput></screen> <screen><userinput remap="pre">sed -i '/test-installation.pl/d' Makefile</userinput></screen>
<para>The <command>ldd</command> shell script contains Bash-specific <para>The <command>ldd</command> shell script contains Bash-specific
syntax. Change its default program interpreter to <command>/bin/bash</command> syntax. Change its default program interpreter to <command>/bin/bash</command>
@ -100,12 +103,6 @@ unset DL</userinput></screen>
<screen><userinput remap="pre">sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in</userinput></screen> <screen><userinput remap="pre">sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in</userinput></screen>
<para>Fix a bug that causes several BLFS packages to segfault:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fixes-patch;</userinput></screen>
<para>Fix a bug that prevents Glibc from building with GCC-&gcc-version;:</para>
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-gcc_fix-patch;</userinput></screen>
<para>The Glibc documentation recommends building Glibc outside of the source <para>The Glibc documentation recommends building Glibc outside of the source
directory in a dedicated build directory:</para> directory in a dedicated build directory:</para>
@ -315,6 +312,16 @@ rpc: files
# End /etc/nsswitch.conf</literal> # End /etc/nsswitch.conf</literal>
EOF</userinput></screen> EOF</userinput></screen>
<para>Install timezone data:</para>
<screen><userinput>tar -xf ../tzdata&tzdata-version;.tar.gz
for tz in etcetera southamerica northamerica europe africa antarctica \
asia australasia backward pacificnew solar87 solar88 solar89 systemv; do
zic -L leapseconds -d /usr/share/zoneinfo -y "sh yearistype.sh" ${tz}
done</userinput></screen>
<para>One way to determine the local time zone, run the following <para>One way to determine the local time zone, run the following
script:</para> script:</para>

View File

@ -40,6 +40,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of GRUB</title> <title>Installation of GRUB</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' grub-core/gnulib/stdio.in.h</userinput></screen>
<para>Prepare GRUB for compilation:</para> <para>Prepare GRUB for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -40,6 +40,12 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Inetutils</title> <title>Installation of Inetutils</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' lib/stdio.in.h</userinput></screen>
<para>Prepare Inetutils for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \
--libexecdir=/usr/sbin \ --libexecdir=/usr/sbin \
--localstatedir=/var \ --localstatedir=/var \

View File

@ -41,6 +41,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Libpipeline</title> <title>Installation of Libpipeline</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gnulib/lib/stdio.in.h</userinput></screen>
<para>Prepare Libpipeline for compilation:</para> <para>Prepare Libpipeline for compilation:</para>
<screen><userinput remap="configure">PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr</userinput></screen> <screen><userinput remap="configure">PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr</userinput></screen>

View File

@ -40,6 +40,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of M4</title> <title>Installation of M4</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' lib/stdio.in.h</userinput></screen>
<para>Prepare M4 for compilation:</para> <para>Prepare M4 for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen> <screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>

View File

@ -41,6 +41,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Man-DB</title> <title>Installation of Man-DB</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gnulib/lib/stdio.in.h</userinput></screen>
<para>Prepare Man-DB for compilation:</para> <para>Prepare Man-DB for compilation:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \ <screen><userinput remap="configure">./configure --prefix=/usr \

View File

@ -57,7 +57,7 @@
<para>To test the results, issue:</para> <para>To test the results, issue:</para>
<screen><userinput remap="test">make check</userinput></screen> <screen><userinput remap="test">make -k check</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -107,13 +107,17 @@
</variablelist> </variablelist>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i '/test-installation.pl/d' Makefile</userinput></screen>
<para>Compile the package:</para> <para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen> <screen><userinput remap="make">make</userinput></screen>
<para>To test the results (approximately 2.5 SBU), issue:</para> <para>To test the results (approximately 2.5 SBU), issue:</para>
<screen><userinput remap="test">make test</userinput></screen> <screen><userinput remap="test">make -k test</userinput></screen>
<para>Install the package:</para> <para>Install the package:</para>

View File

@ -40,6 +40,10 @@
<sect2 role="installation"> <sect2 role="installation">
<title>Installation of Tar</title> <title>Installation of Tar</title>
<para>Fix an incompatibility between this package and Glibc-&glibc-version;:</para>
<screen><userinput remap="pre">sed -i -e '/gets is a/d' gnu/stdio.in.h</userinput></screen>
<para>Prepare Tar for compilation:</para> <para>Prepare Tar for compilation:</para>
<screen><userinput remap="configure">FORCE_UNSAFE_CONFIGURE=1 \ <screen><userinput remap="configure">FORCE_UNSAFE_CONFIGURE=1 \

View File

@ -1,5 +1,5 @@
<!ENTITY version "SVN-20120725"> <!ENTITY version "SVN-20120805">
<!ENTITY releasedate "July 25, 2012"> <!ENTITY releasedate "August 3, 2012">
<!ENTITY copyrightdate "1999-2012"><!-- jhalfs needs a literal dash, not &ndash; --> <!ENTITY copyrightdate "1999-2012"><!-- jhalfs needs a literal dash, not &ndash; -->
<!ENTITY milestone "7.2"> <!ENTITY milestone "7.2">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" --> <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->

View File

@ -198,10 +198,10 @@
<!ENTITY gettext-ch6-du "125 MB"> <!ENTITY gettext-ch6-du "125 MB">
<!ENTITY gettext-ch6-sbu "5.8 SBU"> <!ENTITY gettext-ch6-sbu "5.8 SBU">
<!ENTITY glibc-version "2.15"> <!ENTITY glibc-version "2.16.0">
<!ENTITY glibc-size "10,039 KB"> <!ENTITY glibc-size "9,756 KB">
<!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz"> <!ENTITY glibc-url "&gnu;glibc/glibc-&glibc-version;.tar.xz">
<!ENTITY glibc-md5 "4f9f3b0e780a8c7179a372d34e9452bc"> <!ENTITY glibc-md5 "80b181b02ab249524ec92822c0174cf7">
<!ENTITY glibc-home "&gnu-software;libc/"> <!ENTITY glibc-home "&gnu-software;libc/">
<!ENTITY glibc-ch5-du "501 MB"> <!ENTITY glibc-ch5-du "501 MB">
<!ENTITY glibc-ch5-sbu "5.5 SBU"> <!ENTITY glibc-ch5-sbu "5.5 SBU">

View File

@ -37,15 +37,6 @@
<!ENTITY gcc-startfiles-patch-size "1.5 KB"> <!ENTITY gcc-startfiles-patch-size "1.5 KB">
<!ENTITY glibc-fixes-patch "glibc-&glibc-version;-fixes-1.patch">
<!ENTITY glibc-fixes-patch-md5 "78659b024e7175dcc28e9fc4552b1a27">
<!ENTITY glibc-fixes-patch-size "6.5 KB">
<!ENTITY glibc-gcc_fix-patch "glibc-&glibc-version;-gcc_fix-1.patch">
<!ENTITY glibc-gcc_fix-patch-md5 "d1f28cb98acb9417fe52596908bbb9fd">
<!ENTITY glibc-gcc_fix-patch-size "2.5 KB">
<!ENTITY grub-inode-patch "grub-&grub-version;-256byte_inode-1.patch"> <!ENTITY grub-inode-patch "grub-&grub-version;-256byte_inode-1.patch">
<!ENTITY grub-inode-patch-md5 "2482bef9c1866b4045767a56268ba673"> <!ENTITY grub-inode-patch-md5 "2482bef9c1866b4045767a56268ba673">
<!ENTITY grub-inode-patch-size "4.8 KB"> <!ENTITY grub-inode-patch-size "4.8 KB">