Bladeren bron

Add notes to the gcc and binutils sections in Chapter 6
about "link time optimization" and the extra files built by gcc.


git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10024 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Bruce Dubbs 12 jaren geleden
bovenliggende
commit
e0901b3e48
3 gewijzigde bestanden met toevoegingen van 66 en 1 verwijderingen
  1. 6 0
      chapter01/changelog.xml
  2. 7 0
      chapter06/binutils.xml
  3. 53 1
      chapter06/gcc.xml

+ 6 - 0
chapter01/changelog.xml

@@ -39,6 +39,12 @@
     <listitem>
       <para>2012-10-15</para>
       <itemizedlist>
+        <listitem>
+          <para>[bdubbs] - Add notes to the gcc and binutils
+           sections in Chapter 6 about "link time optimization" 
+           and the extra files built by gcc.  Fixes
+          <ulink url="&lfs-ticket-root;3200">#3200</ulink>.</para>
+        </listitem>
         <listitem>
           <para>[bdubbs] - Upgrade to tzdata-2012f.  Fixes
           <ulink url="&lfs-ticket-root;3205">#3205</ulink>.</para>

+ 7 - 0
chapter06/binutils.xml

@@ -78,6 +78,13 @@ cd ../binutils-build</userinput></screen>
 
 <screen><userinput remap="configure">../binutils-&binutils-version;/configure --prefix=/usr --enable-shared</userinput></screen>
 
+    <note><para>There is an optional argument to <command>configure</command>,
+    <option>--enable-lto</option>, that can be used to allow the
+    <command>ar</command>, <command>nm</command>, and <command>ranlib</command>
+    commands to accept a <option>--plugin</option> parameter.  This is used to
+    allow <command>gcc</command> to do "link time optimization" if specified.
+    No packages in LFS or BLFS currently use this capability.</para></note>
+
     <para>Compile the package:</para>
 
 <screen><userinput remap="make">make tooldir=/usr</userinput></screen>

+ 53 - 1
chapter06/gcc.xml

@@ -96,6 +96,16 @@ cd ../gcc-build</userinput></screen>
       </varlistentry>
     </variablelist>
 
+    <note>
+      <para>There is an optional argument to <command>configure</command>,
+      <option>--enable-lto</option>, that can be used to allow
+      <command>gcc</command> to do do "link time optimization" if specified.  No
+      packages in LFS or BLFS currently use this capability.</para>
+    
+      <para>To use this feature, it must also be enabled in
+      <application>binutils</application>.</para> 
+    </note>
+
     <para>Compile the package:</para>
 
 <screen><userinput remap="make">make</userinput></screen>
@@ -301,11 +311,14 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</userinput></screen>
       <segtitle>Installed directories</segtitle>
 
       <seglistitem>
-        <seg>c++, cc (link to gcc), cpp, g++, gcc, gccbug, and gcov</seg>
+        <seg>c++, cc (link to gcc), cpp, g++, gcc, 
+        gcc-ar, gcc-nm, gcc-ranlib, gccbug, and gcov</seg>
+
         <seg>libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so},
         liblto_plugin.so, libmudflap.{a,so}, libmudflapth.{a,so},
         libquadmath.{a,so}, libssp.{a,so},
         libssp_nonshared.a, libstdc++.{a,so} and libsupc++.a</seg>
+        
         <seg>/usr/include/c++, /usr/lib/gcc, /usr/share/gcc-&gcc-version;</seg>
       </seglistitem>
     </segmentedlist>
@@ -366,6 +379,45 @@ mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</userinput></screen>
         </listitem>
       </varlistentry>
 
+      <varlistentry id="gcc-ar">
+        <term><command>gcc-ar</command></term>
+        <listitem>
+          <para>A wrapper around <command>ar</command> that adds a
+          plugin to the command line.  This program is only used
+          to add "link time optization" and is not useful with the
+          default build options.</para>
+          <indexterm zone="ch-system-gcc gcc-ar">
+            <primary sortas="b-gcc-ar">gc-ar</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gcc-nm">
+        <term><command>gcc-nm</command></term>
+        <listitem>
+          <para>A wrapper around <command>nm</command> that adds a
+          plugin to the command line.  This program is only used
+          to add "link time optization" and is not useful with the
+          default build options.</para>
+          <indexterm zone="ch-system-gcc gcc-nm">
+            <primary sortas="b-gcc-nm">gc-nm</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gcc-ranlib">
+        <term><command>gcc-ranlib</command></term>
+        <listitem>
+          <para>A wrapper around <command>ranlib</command> that adds a
+          plugin to the command line.  This program is only used
+          to add "link time optization" and is not useful with the
+          default build options.</para>
+          <indexterm zone="ch-system-gcc gcc-ranlib">
+            <primary sortas="b-gcc-ranlib">gc-ranlib</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
       <varlistentry id="gccbug">
         <term><command>gccbug</command></term>
         <listitem>