Changeset 73c180db for chapter06/gcc.xml


Ignore:
Timestamp:
02/04/2006 01:37:25 PM (19 years ago)
Author:
Manuel Canales Esparcia <manuel@…>
Children:
3a0a57c
Parents:
fa994c9
Message:

Ported r7344 from trunk to alphabetical branch.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter06/gcc.xml

    rfa994c9 r73c180db  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
     2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
     3  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
    34  <!ENTITY % general-entities SYSTEM "../general.ent">
    45  %general-entities;
    56]>
     7
    68<sect1 id="ch-system-gcc" role="wrap">
    7 <title>GCC-&gcc-version;</title>
    8 <?dbhtml filename="gcc.html"?>
    9 
    10 <indexterm zone="ch-system-gcc"><primary sortas="a-GCC">GCC</primary></indexterm>
    11 
    12 <sect2 role="package"><title/>
    13 <para>The GCC package contains the GNU compiler collection, which includes
    14 the C and C++ compilers.</para>
    15 
    16 <segmentedlist>
    17 <segtitle>&buildtime;</segtitle>
    18 <segtitle>&diskspace;</segtitle>
    19 <seglistitem><seg>11.7 SBU</seg><seg>451 MB</seg></seglistitem>
    20 </segmentedlist>
    21 
    22 <segmentedlist>
    23 <segtitle>&dependencies;</segtitle>
    24 <seglistitem><seg>Bash, Binutils, Coreutils, DejaGNU, Diffutils, Findutils,
    25 Expect, Gawk, Gettext, Glibc, Grep, Make, Patch, Perl, Sed, Tcl, and
    26 Texinfo</seg></seglistitem>
    27 </segmentedlist>
    28 </sect2>
    29 
    30 <sect2 role="installation">
    31 <title>Installation of GCC</title>
    32 
    33 <para>Apply a <command>sed</command> substitution that will suppress the
    34 installation of <filename class="libraryfile">libiberty.a</filename>. The
    35 version of <filename class="libraryfile">libiberty.a</filename> provided by
    36 Binutils will be used instead:</para>
     9  <?dbhtml filename="gcc.html"?>
     10
     11  <title>GCC-&gcc-version;</title>
     12
     13  <indexterm zone="ch-system-gcc">
     14    <primary sortas="a-GCC">GCC</primary>
     15  </indexterm>
     16
     17  <sect2 role="package">
     18    <title/>
     19
     20    <para>The GCC package contains the GNU compiler collection, which includes
     21    the C and C++ compilers.</para>
     22
     23    <segmentedlist>
     24      <segtitle>&buildtime;</segtitle>
     25      <segtitle>&diskspace;</segtitle>
     26
     27      <seglistitem>
     28        <seg>11.7 SBU</seg>
     29        <seg>451 MB</seg>
     30      </seglistitem>
     31    </segmentedlist>
     32
     33    <segmentedlist>
     34      <segtitle>&dependencies;</segtitle>
     35
     36      <seglistitem>
     37        <seg>Bash, Binutils, Coreutils, DejaGNU, Diffutils, Findutils, Expect,
     38        Gawk, Gettext, Glibc, Grep, Make, Patch, Perl, Sed, Tcl, and Texinfo</seg>
     39      </seglistitem>
     40    </segmentedlist>
     41
     42  </sect2>
     43
     44  <sect2 role="installation">
     45    <title>Installation of GCC</title>
     46
     47    <para>Apply a <command>sed</command> substitution that will suppress the
     48    installation of <filename class="libraryfile">libiberty.a</filename>. The
     49    version of <filename class="libraryfile">libiberty.a</filename> provided by
     50    Binutils will be used instead:</para>
    3751
    3852<screen><userinput>sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen>
    3953
    40 <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/>
    41 built GCC with the <option>-fomit-frame-pointer</option> compiler flag.
    42 Non-bootstrap builds omit this flag by default, so apply the following
    43 <command>sed</command> to use it in order to ensure consistent compiler builds.
    44 </para>
     54    <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/>
     55    built GCC with the <option>-fomit-frame-pointer</option> compiler flag.
     56    Non-bootstrap builds omit this flag by default, so apply the following
     57    <command>sed</command> to use it in order to ensure consistent compiler
     58    builds.</para>
    4559
    4660<screen><userinput>sed -i 's/^XCFLAGS =$/&amp; -fomit-frame-pointer/' gcc/Makefile.in</userinput></screen>
    4761
    48 <para>The <command>fixincludes</command> script is known to occasionally
    49 erroneously attempt to &quot;fix&quot; the system headers installed so far. As
    50 the headers installed by GCC-&gcc-version; and Glibc-&glibc-version; are known
    51 to not require fixing, issue the following command to prevent the
    52 <command>fixincludes</command> script from running:</para>
     62    <para>The <command>fixincludes</command> script is known to occasionally
     63    erroneously attempt to &quot;fix&quot; the system headers installed so far. As
     64    the headers installed by GCC-&gcc-version; and Glibc-&glibc-version; are known
     65    to not require fixing, issue the following command to prevent the
     66    <command>fixincludes</command> script from running:</para>
    5367
    5468<screen><userinput>sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in</userinput></screen>
    5569
    56 <para>GCC provides a <command>gccbug</command> script which detects at
    57 compile time whether mktemp is present, and hardcodes the result in a test.
    58 This will cause the script to fall back to using less random names for
    59 temporary files.  We will be installing mktemp later, so the following sed
    60 will simulate its presence.</para>
     70    <para>GCC provides a <command>gccbug</command> script which detects at
     71    compile time whether mktemp is present, and hardcodes the result in a test.
     72    This will cause the script to fall back to using less random names for
     73    temporary files.  We will be installing mktemp later, so the following sed
     74    will simulate its presence.</para>
    6175
    6276<screen>sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in</screen>
    6377
    64 <para>The GCC documentation recommends building GCC outside of the source
    65 directory in a dedicated build directory:</para>
     78    <para>The GCC documentation recommends building GCC outside of the source
     79    directory in a dedicated build directory:</para>
    6680
    6781<screen><userinput>mkdir -v ../gcc-build
    6882cd ../gcc-build</userinput></screen>
    6983
    70 <para>Prepare GCC for compilation:</para>
     84    <para>Prepare GCC for compilation:</para>
    7185
    7286<screen><userinput>../gcc-&gcc-version;/configure --prefix=/usr \
     
    7589    --enable-clocale=gnu --enable-languages=c,c++</userinput></screen>
    7690
    77 <para>Compile the package:</para>
     91    <para>Compile the package:</para>
    7892
    7993<screen><userinput>make</userinput></screen>
    8094
    81 <important><para>In this section, the test suite for GCC is considered
    82 critical. Do not skip it under any circumstance.</para></important>
    83 
    84 <para>Test the results, but do not stop at errors:</para>
     95    <important>
     96      <para>In this section, the test suite for GCC is considered
     97      critical. Do not skip it under any circumstance.</para>
     98    </important>
     99
     100    <para>Test the results, but do not stop at errors:</para>
    85101
    86102<screen><userinput>make -k check</userinput></screen>
    87103
    88 <para>Some of the errors are known issues and were noted in the
    89 previous chapter. The test suite notes from <xref
    90 linkend="ch-tools-gcc-pass2" role=","/> are still relevant here. Be sure to
    91 refer back to them as necessary.</para>
    92 
    93 <para>Install the package:</para>
     104    <para>Some of the errors are known issues and were noted in the
     105    previous chapter. The test suite notes from <xref
     106    linkend="ch-tools-gcc-pass2" role=","/> are still relevant here. Be sure to
     107    refer back to them as necessary.</para>
     108
     109    <para>Install the package:</para>
    94110
    95111<screen><userinput>make install</userinput></screen>
    96112
    97 <para>Some packages expect the C preprocessor to be installed in the
    98 <filename class="directory">/lib</filename> directory.
    99 To support those packages, create this symlink:</para>
     113    <para>Some packages expect the C preprocessor to be installed in the
     114    <filename class="directory">/lib</filename> directory.
     115    To support those packages, create this symlink:</para>
    100116
    101117<screen><userinput>ln -sv ../usr/bin/cpp /lib</userinput></screen>
    102118
    103 <para>Many packages use the name <command>cc</command> to call the C
    104 compiler. To satisfy those packages, create a symlink:</para>
     119    <para>Many packages use the name <command>cc</command> to call the C
     120    compiler. To satisfy those packages, create a symlink:</para>
    105121
    106122<screen><userinput>ln -sv gcc /usr/bin/cc</userinput></screen>
    107123
    108 <note><para>At this point, it is strongly recommended to repeat the
    109 sanity check performed earlier in this chapter. Refer back to <xref
    110 linkend="ch-system-readjusting" role=","/> and repeat the check. If the results
    111 are in error, then the most likely reason is that the GCC Specs patch
    112 from <xref linkend="chapter-temporary-tools"/> was erroneously applied
    113 here.</para></note>
    114 
    115 </sect2>
    116 
    117 
    118 <sect2 id="contents-gcc" role="content"><title>Contents of GCC</title>
    119 
    120 <segmentedlist>
    121 <segtitle>Installed programs</segtitle>
    122 <segtitle>Installed libraries</segtitle>
    123 <seglistitem><seg>c++, cc (link to gcc), cpp, g++, gcc, gccbug, and
    124 gcov</seg>
    125 <seg>libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so], and libsupc++.a</seg></seglistitem>
    126 </segmentedlist>
    127 
    128 <variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
    129 <?dbfo list-presentation="list"?>
    130 <?dbhtml list-presentation="table"?>
    131 
    132 <varlistentry id="cc">
    133 <term><command>cc</command></term>
    134 <listitem>
    135 <para>The C compiler</para>
    136 <indexterm zone="ch-system-gcc cc"><primary sortas="b-cc">cc</primary></indexterm>
    137 </listitem>
    138 </varlistentry>
    139 
    140 <varlistentry id="cpp">
    141 <term><command>cpp</command></term>
    142 <listitem>
    143 <para>The C preprocessor; it is used by the compiler to expand the
    144 #include, #define, and similar statements in the source files</para>
    145 <indexterm zone="ch-system-gcc cpp"><primary sortas="b-cpp">cpp</primary></indexterm>
    146 </listitem>
    147 </varlistentry>
    148 
    149 <varlistentry id="c">
    150 <term><command>c++</command></term>
    151 <listitem>
    152 <para>The C++ compiler</para>
    153 <indexterm zone="ch-system-gcc c"><primary sortas="b-c++">c++</primary></indexterm>
    154 </listitem>
    155 </varlistentry>
    156 
    157 <varlistentry id="g">
    158 <term><command>g++</command></term>
    159 <listitem>
    160 <para>The C++ compiler</para>
    161 <indexterm zone="ch-system-gcc g"><primary sortas="b-g++">g++</primary></indexterm>
    162 </listitem>
    163 </varlistentry>
    164 
    165 <varlistentry id="gcc">
    166 <term><command>gcc</command></term>
    167 <listitem>
    168 <para>The C compiler</para>
    169 <indexterm zone="ch-system-gcc gcc"><primary sortas="b-gcc">gcc</primary></indexterm>
    170 </listitem>
    171 </varlistentry>
    172 
    173 <varlistentry id="gccbug">
    174 <term><command>gccbug</command></term>
    175 <listitem>
    176 <para>A shell script used to help create useful bug reports</para>
    177 <indexterm zone="ch-system-gcc gccbug"><primary sortas="b-gccbug">gccbug</primary></indexterm>
    178 </listitem>
    179 </varlistentry>
    180 
    181 <varlistentry id="gcov">
    182 <term><command>gcov</command></term>
    183 <listitem>
    184 <para>A coverage testing tool; it is used to analyze programs to
    185 determine where optimizations will have the most effect</para>
    186 <indexterm zone="ch-system-gcc gcov"><primary sortas="b-gcov">gcov</primary></indexterm>
    187 </listitem>
    188 </varlistentry>
    189 
    190 <varlistentry id="libgcc">
    191 <term><filename class="libraryfile">libgcc</filename></term>
    192 <listitem>
    193 <para>Contains run-time support for <command>gcc</command></para>
    194 <indexterm zone="ch-system-gcc libgcc"><primary sortas="c-libgcc*">libgcc*</primary></indexterm>
    195 </listitem>
    196 </varlistentry>
    197 
    198 <varlistentry id="libstdc">
    199 <term><filename class="libraryfile">libstdc++</filename></term>
    200 <listitem>
    201 <para>The standard C++ library</para>
    202 <indexterm zone="ch-system-gcc libstdc"><primary sortas="c-libstdc++">libstdc++</primary></indexterm>
    203 </listitem>
    204 </varlistentry>
    205 
    206 <varlistentry id="libsupc">
    207 <term><filename class="libraryfile">libsupc++</filename></term>
    208 <listitem>
    209 <para>Provides supporting routines for the C++ programming language</para>
    210 <indexterm zone="ch-system-gcc libsupc"><primary sortas="c-libsupc++">libsupc++</primary></indexterm>
    211 </listitem>
    212 </varlistentry>
    213 </variablelist>
    214 
    215 </sect2>
     124    <note>
     125      <para>At this point, it is strongly recommended to repeat the sanity
     126      check performed earlier in this chapter. Refer back to <xref
     127      linkend="ch-system-readjusting" role=","/> and repeat the check. If
     128      the results are in error, then the most likely reason is that the GCC
     129      Specs patch from <xref linkend="chapter-temporary-tools"/> was
     130      erroneously applied here.</para>
     131    </note>
     132
     133  </sect2>
     134
     135  <sect2 id="contents-gcc" role="content">
     136    <title>Contents of GCC</title>
     137
     138    <segmentedlist>
     139      <segtitle>Installed programs</segtitle>
     140      <segtitle>Installed libraries</segtitle>
     141
     142      <seglistitem>
     143        <seg>c++, cc (link to gcc), cpp, g++, gcc, gccbug, and gcov</seg>
     144        <seg>libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so], and
     145        libsupc++.a</seg>
     146      </seglistitem>
     147    </segmentedlist>
     148
     149    <variablelist>
     150      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
     151      <?dbfo list-presentation="list"?>
     152      <?dbhtml list-presentation="table"?>
     153
     154      <varlistentry id="cc">
     155        <term><command>cc</command></term>
     156        <listitem>
     157          <para>The C compiler</para>
     158          <indexterm zone="ch-system-gcc cc">
     159            <primary sortas="b-cc">cc</primary>
     160          </indexterm>
     161        </listitem>
     162      </varlistentry>
     163
     164      <varlistentry id="cpp">
     165        <term><command>cpp</command></term>
     166        <listitem>
     167          <para>The C preprocessor; it is used by the compiler to expand the
     168          #include, #define, and similar statements in the source files</para>
     169          <indexterm zone="ch-system-gcc cpp">
     170            <primary sortas="b-cpp">cpp</primary>
     171          </indexterm>
     172        </listitem>
     173      </varlistentry>
     174
     175      <varlistentry id="c">
     176        <term><command>c++</command></term>
     177        <listitem>
     178          <para>The C++ compiler</para>
     179          <indexterm zone="ch-system-gcc c">
     180            <primary sortas="b-c++">c++</primary>
     181          </indexterm>
     182        </listitem>
     183      </varlistentry>
     184
     185      <varlistentry id="g">
     186        <term><command>g++</command></term>
     187        <listitem>
     188          <para>The C++ compiler</para>
     189          <indexterm zone="ch-system-gcc g">
     190            <primary sortas="b-g++">g++</primary>
     191          </indexterm>
     192        </listitem>
     193      </varlistentry>
     194
     195      <varlistentry id="gcc">
     196        <term><command>gcc</command></term>
     197        <listitem>
     198          <para>The C compiler</para>
     199          <indexterm zone="ch-system-gcc gcc">
     200            <primary sortas="b-gcc">gcc</primary>
     201          </indexterm>
     202        </listitem>
     203      </varlistentry>
     204
     205      <varlistentry id="gccbug">
     206        <term><command>gccbug</command></term>
     207        <listitem>
     208          <para>A shell script used to help create useful bug reports</para>
     209          <indexterm zone="ch-system-gcc gccbug">
     210            <primary sortas="b-gccbug">gccbug</primary>
     211          </indexterm>
     212        </listitem>
     213      </varlistentry>
     214
     215      <varlistentry id="gcov">
     216        <term><command>gcov</command></term>
     217        <listitem>
     218          <para>A coverage testing tool; it is used to analyze programs to
     219          determine where optimizations will have the most effect</para>
     220          <indexterm zone="ch-system-gcc gcov">
     221            <primary sortas="b-gcov">gcov</primary>
     222          </indexterm>
     223        </listitem>
     224      </varlistentry>
     225
     226      <varlistentry id="libgcc">
     227        <term><filename class="libraryfile">libgcc</filename></term>
     228        <listitem>
     229          <para>Contains run-time support for <command>gcc</command></para>
     230          <indexterm zone="ch-system-gcc libgcc">
     231            <primary sortas="c-libgcc*">libgcc*</primary>
     232          </indexterm>
     233        </listitem>
     234      </varlistentry>
     235
     236      <varlistentry id="libstdc">
     237        <term><filename class="libraryfile">libstdc++</filename></term>
     238        <listitem>
     239          <para>The standard C++ library</para>
     240          <indexterm zone="ch-system-gcc libstdc">
     241            <primary sortas="c-libstdc++">libstdc++</primary>
     242          </indexterm>
     243        </listitem>
     244      </varlistentry>
     245
     246      <varlistentry id="libsupc">
     247        <term><filename class="libraryfile">libsupc++</filename></term>
     248        <listitem>
     249          <para>Provides supporting routines for the C++ programming
     250          language</para>
     251          <indexterm zone="ch-system-gcc libsupc">
     252            <primary sortas="c-libsupc++">libsupc++</primary>
     253          </indexterm>
     254        </listitem>
     255      </varlistentry>
     256
     257    </variablelist>
     258
     259  </sect2>
    216260
    217261</sect1>
    218 
Note: See TracChangeset for help on using the changeset viewer.