Changeset 73c180db for chapter06/gcc.xml
- Timestamp:
- 02/04/2006 01:37:25 PM (19 years ago)
- Children:
- 3a0a57c
- Parents:
- fa994c9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/gcc.xml
rfa994c9 r73c180db 1 1 <?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" [ 3 4 <!ENTITY % general-entities SYSTEM "../general.ent"> 4 5 %general-entities; 5 6 ]> 7 6 8 <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> 37 51 38 52 <screen><userinput>sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen> 39 53 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 following43 <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> 45 59 46 60 <screen><userinput>sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in</userinput></screen> 47 61 48 <para>The <command>fixincludes</command> script is known to occasionally49 erroneously attempt to "fix" the system headers installed so far.As50 the headers installed by GCC-&gcc-version; and Glibc-&glibc-version; are known51 to not require fixing, issue the following command to prevent the52 <command>fixincludes</command> script from running:</para>62 <para>The <command>fixincludes</command> script is known to occasionally 63 erroneously attempt to "fix" 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> 53 67 54 68 <screen><userinput>sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in</userinput></screen> 55 69 56 <para>GCC provides a <command>gccbug</command> script which detects at57 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 for59 temporary files. We will be installing mktemp later, so the following sed60 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> 61 75 62 76 <screen>sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in</screen> 63 77 64 <para>The GCC documentation recommends building GCC outside of the source65 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> 66 80 67 81 <screen><userinput>mkdir -v ../gcc-build 68 82 cd ../gcc-build</userinput></screen> 69 83 70 <para>Prepare GCC for compilation:</para>84 <para>Prepare GCC for compilation:</para> 71 85 72 86 <screen><userinput>../gcc-&gcc-version;/configure --prefix=/usr \ … … 75 89 --enable-clocale=gnu --enable-languages=c,c++</userinput></screen> 76 90 77 <para>Compile the package:</para>91 <para>Compile the package:</para> 78 92 79 93 <screen><userinput>make</userinput></screen> 80 94 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> 85 101 86 102 <screen><userinput>make -k check</userinput></screen> 87 103 88 <para>Some of the errors are known issues and were noted in the89 previous chapter. The test suite notes from <xref90 linkend="ch-tools-gcc-pass2" role=","/> are still relevant here. Be sure to91 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> 94 110 95 111 <screen><userinput>make install</userinput></screen> 96 112 97 <para>Some packages expect the C preprocessor to be installed in the98 <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> 100 116 101 117 <screen><userinput>ln -sv ../usr/bin/cpp /lib</userinput></screen> 102 118 103 <para>Many packages use the name <command>cc</command> to call the C104 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> 105 121 106 122 <screen><userinput>ln -sv gcc /usr/bin/cc</userinput></screen> 107 123 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> 216 260 217 261 </sect1> 218
Note:
See TracChangeset
for help on using the changeset viewer.