mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-03-06 06:14:47 +00:00
Add a patch to binutils to enable LTO with gcc-4.9.0.
Remove omit-frame-pointer in gcc-pass2 and Chapter 6 gcc. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10561 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
f6fe5000d7
commit
6206f72d67
@ -38,6 +38,11 @@
|
||||
<listitem>
|
||||
<para>2014-05-11</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Add a patch to binutils to enable LTO
|
||||
with gcc-4.9.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3569">#3569</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update bootscripts for eudev.</para>
|
||||
</listitem>
|
||||
@ -45,8 +50,8 @@
|
||||
<para>[bdubbs] - Add gcc patch for upstream changes.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Change explanation for using
|
||||
omit-frame-pointer in gcc-pass2. Fixes
|
||||
<para>[bdubbs] - Remove omit-frame-pointer in gcc-pass2
|
||||
and Chapter 6 gcc. Fixes
|
||||
<ulink url="&lfs-ticket-root;3562">#3562</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -238,6 +238,9 @@
|
||||
<listitem>
|
||||
<para>&bc-memory-leak-patch;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>&binutils-lto-patch;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>&coreutils-shuf-segfault-patch;</para>
|
||||
</listitem>
|
||||
|
@ -34,6 +34,14 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Binutils LTO Patch - <token>&binutils-lto-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&binutils-lto-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&binutils-lto-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bzip2 Documentation Patch - <token>&bzip2-docs-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
|
@ -57,15 +57,15 @@
|
||||
|
||||
<screen><userinput remap="pre">cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
|
||||
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h</userinput></screen>
|
||||
|
||||
<!--
|
||||
<para>For x86 machines, the limited number of registers is a bottleneck
|
||||
for the system. Free one up by not using a fram pointer that is not
|
||||
for the system. Free one up by not using a frame pointer that is not
|
||||
needed:</para>
|
||||
|
||||
<screen><userinput remap="pre">case `uname -m` in
|
||||
i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;;
|
||||
esac</userinput></screen>
|
||||
|
||||
-->
|
||||
<para>Once again, change the location of GCC's default dynamic linker to
|
||||
use the one installed in <filename
|
||||
class="directory">/tools</filename>.</para>
|
||||
|
@ -64,6 +64,11 @@ Ask your system administrator to create more.</computeroutput></screen>
|
||||
<screen><userinput remap="pre">rm -fv etc/standards.info
|
||||
sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in</userinput></screen>
|
||||
|
||||
<para>Add an upstream patch to use gcc's link time optimization (LTO)
|
||||
the default:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&binutils-lto-patch;</userinput></screen>
|
||||
|
||||
<para>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
@ -114,15 +119,9 @@ cd ../binutils-build</userinput></screen>
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
|
||||
<!--
|
||||
<para>Install the <filename class="headerfile">libiberty</filename> header
|
||||
file that is needed by some packages:</para>
|
||||
|
||||
<screen><userinput remap="install">cp -v ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen>
|
||||
-->
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-binutils" role="content">
|
||||
<title>Contents of Binutils</title>
|
||||
|
||||
|
@ -45,7 +45,7 @@
|
||||
programs to fail:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&gcc-upstream-patch;</userinput></screen>
|
||||
|
||||
<!--
|
||||
<para>As in <xref linkend="ch-tools-gcc-pass2"/>, apply the following
|
||||
<command>sed</command> to force the build to use the
|
||||
<option>-fomit-frame-pointer</option> compiler flag in order to ensure
|
||||
@ -54,7 +54,7 @@
|
||||
<screen><userinput remap="pre">case `uname -m` in
|
||||
i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;;
|
||||
esac</userinput></screen>
|
||||
|
||||
-->
|
||||
<para>The GCC documentation recommends building GCC outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
@ -150,6 +150,14 @@ cd ../gcc-build</userinput></screen>
|
||||
|
||||
<screen><userinput remap="install">ln -sv gcc /usr/bin/cc</userinput></screen>
|
||||
|
||||
<para>Add a compatibility symlink to enable building programs with
|
||||
Link Time Optimization (LTO):</para>
|
||||
|
||||
<screen><userinput remap="install">install -dm755 /usr/lib/bfd-plugins
|
||||
pushd /usr/lib/bfd-plugins
|
||||
ln -sfv ../../libexec/gcc/x86_64-unknown-linux-gnu/&gcc-version;/liblto_plugin.so
|
||||
popd</userinput></screen>
|
||||
|
||||
<para>Now that our final toolchain is in place, it is important to again ensure
|
||||
that compiling and linking will work as expected. We do this by performing
|
||||
the same sanity checks as we did earlier in the chapter:</para>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!ENTITY version "SVN-20140510">
|
||||
<!ENTITY version "SVN-20140511">
|
||||
<!ENTITY short-version "svn"> <!-- Used in dbus chapter, change to x.y for release -->
|
||||
<!ENTITY releasedate "May 10, 2014">
|
||||
<!ENTITY releasedate "May 11, 2014">
|
||||
<!ENTITY copyrightdate "1999-2014"><!-- jhalfs needs a literal dash, not – -->
|
||||
<!ENTITY milestone "8.0">
|
||||
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
|
||||
|
@ -6,6 +6,10 @@
|
||||
<!ENTITY bash-fixes-patch-md5 "749b4b520708300b64f8166ba2b1b4a0">
|
||||
<!ENTITY bash-fixes-patch-size "14 KB">
|
||||
|
||||
<!ENTITY binutils-lto-patch "binutils-&binutils-version;-load_gcc_lto_plugin_by_default-1.patch">
|
||||
<!ENTITY binutils-lto-patch-md5 "48e4e96a60bfed41804aaecf4944f5d9">
|
||||
<!ENTITY binutils-lto-patch-size "2.0 KB">
|
||||
|
||||
<!ENTITY bc-memory-leak-patch "bc-&bc-version;-memory_leak-1.patch">
|
||||
<!ENTITY bc-memory-leak-patch-md5 "877e81fba316fe487ec23501059d54b8">
|
||||
<!ENTITY bc-memory-leak-patch-size "1.4 KB">
|
||||
|
Loading…
Reference in New Issue
Block a user