source: chapter08/gcc.xml@ 85cd74c2

ml-11.0 multilib
Last change on this file since 85cd74c2 was cf65195, checked in by Thomas Trepl (Moody) <thomas@…>, 3 years ago

Automatic merge of trunk into multilib

  • Property mode set to 100644
File size: 24.2 KB
RevLine 
[673b0d8]1<?xml version="1.0" encoding="ISO-8859-1"?>
[b06ca36]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[673b0d8]4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
[6a82dd9]7
[81fd230]8<sect1 id="ch-system-gcc" role="wrap">
[6a82dd9]9 <?dbhtml filename="gcc.html"?>
10
[e747759]11 <sect1info condition="script">
12 <productname>gcc</productname>
13 <productnumber>&gcc-version;</productnumber>
14 <address>&gcc-url;</address>
15 </sect1info>
16
[6a82dd9]17 <title>GCC-&gcc-version;</title>
18
19 <indexterm zone="ch-system-gcc">
20 <primary sortas="a-GCC">GCC</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
[6370fa6]25
[6a82dd9]26 <para>The GCC package contains the GNU compiler collection, which includes
27 the C and C++ compilers.</para>
[673b0d8]28
[6a82dd9]29 <segmentedlist>
30 <segtitle>&buildtime;</segtitle>
31 <segtitle>&diskspace;</segtitle>
[5888299]32
[6a82dd9]33 <seglistitem>
[6dfcfecc]34 <seg>&gcc-fin-sbu;</seg>
35 <seg>&gcc-fin-du;</seg>
[6a82dd9]36 </seglistitem>
37 </segmentedlist>
[3554fa3a]38
[6a82dd9]39 </sect2>
40
41 <sect2 role="installation">
42 <title>Installation of GCC</title>
[12836f5]43
[33505d6]44 <para>First, apply a patch to fix some regressions and to cope
45 with the removal of an obsolete kernel header in linux-5.13:</para>
46
[d8a492a]47<screen><userinput remap="pre">patch -Np1 -i ../gcc-&gcc-version;-upstream_fixes-1.patch</userinput></screen>
[33505d6]48
[ed3be61]49 <para>If building on x86_64, change the default directory name for 64-bit
[6dfcfecc]50 libraries to <quote>lib</quote>:</para>
[be3d9f3]51
[b3f1ebb3]52<screen arch="default"><userinput remap="pre">case $(uname -m) in
[be3d9f3]53 x86_64)
54 sed -e '/m64=/s/lib64/lib/' \
55 -i.orig gcc/config/i386/t-linux64
56 ;;
57esac</userinput></screen>
58
[fd48baa]59 <para arch="ml_32,ml_x32,ml_all">Change the default directory name for 64-bit
[b3f1ebb3]60 libraries to <quote>lib</quote>:</para>
61
[6dfcfecc]62<screen arch="ml_32,ml_x32,ml_all"><userinput remap="pre">sed -e '/m64=/s/lib64/lib/' \
[0ebda11]63 -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
[9c0c3a0]64 -i.orig gcc/config/i386/t-linux64</userinput></screen>
[b3f1ebb3]65
[f1dd547]66 <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
[73aedd1d]67
[f1dd547]68<screen><userinput remap="pre">mkdir -v build
69cd build</userinput></screen>
[73aedd1d]70
[6a82dd9]71 <para>Prepare GCC for compilation:</para>
[73aedd1d]72
[6dfcfecc]73<screen arch="default"><userinput remap="configure">../configure --prefix=/usr \
74 LD=ld \
[f1dd547]75 --enable-languages=c,c++ \
[6dfcfecc]76 --disable-multilib \
[f1dd547]77 --disable-bootstrap \
[6dfcfecc]78 --with-system-zlib</userinput></screen>
79<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure"
80 arch="ml_32" >mlist=m64,m32</userinput><userinput remap="configure"
81 arch="ml_x32">mlist=m64,mx32</userinput><userinput remap="configure"
82 arch="ml_all">mlist=m64,m32,mx32</userinput>
83<userinput remap="configure">../configure --prefix=/usr \
84 LD=ld \
85 --enable-languages=c,c++ \
86 --enable-multilib \
87 --with-multilib-list=$mlist \
88 --disable-bootstrap \
89 --with-system-zlib</userinput></screen>
90
91 <para>Note that for other programming languages there are some prerequisites that
[93756f6]92 are not yet available. See the
[6dfcfecc]93 <ulink url="&blfs-book;general/gcc.html">BLFS Book GCC page</ulink>
[93756f6]94 for instructions on how to build all of GCC's supported languages.</para>
[182d5d3]95
[ae4d45a]96 <variablelist>
[0cba512d]97 <title>The meaning of the new configure parameters:</title>
[cde2ae7]98
[ff0f063]99 <varlistentry>
[6dfcfecc]100 <term><parameter>LD=ld</parameter></term>
[ff0f063]101 <listitem>
[6dfcfecc]102 <para>This parameter makes the configure script use the ld installed
103 by the binutils built earlier in this chapter, rather than
104 the cross-built version which would otherwise be used.</para>
[ff0f063]105 </listitem>
106 </varlistentry>
[6dfcfecc]107
[ae4d45a]108 <varlistentry>
109 <term><parameter>--with-system-zlib</parameter></term>
110 <listitem>
111 <para>This switch tells GCC to link to the system installed copy of
[6dfcfecc]112 the zlib library, rather than its own internal copy.</para>
[ae4d45a]113 </listitem>
114 </varlistentry>
115 </variablelist>
116
[6a82dd9]117 <para>Compile the package:</para>
[73aedd1d]118
[0445a3d]119<screen><userinput remap="make">make</userinput></screen>
[73aedd1d]120
[6a82dd9]121 <important>
122 <para>In this section, the test suite for GCC is considered
123 critical. Do not skip it under any circumstance.</para>
124 </important>
[81fd230]125
[6dfcfecc]126 <para>One set of tests in the GCC test suite is known to exhaust the default
127 stack, so increase the stack size prior to running the tests:</para>
[4e48f56e]128
[2efa44a]129<screen><userinput remap="test">ulimit -s 32768</userinput></screen>
[4e48f56e]130
[76db8d6]131 <para>Test the results as a non-privileged user, but do not stop at errors:</para>
132
[8d4f212]133<screen><userinput remap="test">chown -Rv tester .
134su tester -c "PATH=$PATH make -k check"</userinput></screen>
[73aedd1d]135
[9278974d]136 <para>To receive a summary of the test suite results, run:</para>
137
[f1dd547]138<screen><userinput remap="test">../contrib/test_summary</userinput></screen>
[9278974d]139
140 <para>For only the summaries, pipe the output through
141 <userinput>grep -A7 Summ</userinput>.</para>
142
143 <para>Results can be compared with those located at <ulink
[98e7ac4]144 url="&test-results;"/> and
[b30de8f]145 <ulink url="https://gcc.gnu.org/ml/gcc-testresults/"/>.</para>
[9278974d]146
[cefe505]147 <para>In g++, three tests in constexpr-52830 are known to fail and
[3d086532]148 also to be treated as unexpected successes (XPASS). This is because
149 an <quote>internal compiler error</quote> on this test is fixed, but
150 the compiler still rejects some valid code.</para>
[7433c5d]151
[cefe505]152 <!-- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96322
153 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71367 -->
154 <para>In libstdc++, one numpunct test and six tests related to get_time are
155 known to fail. These are all because the locale definitions in glibc have
[e3d0e26]156 changed but libstdc++ does not currently support those changes.</para>
[d7a9421]157
158<!--<para>Additionally the following tests related to the following files
[9da9d014]159 are known to fail with glibc-2.33: asan_test.C, co-ret-17-void-ret-coro.C,
[032dc4e8]160 pr95519-05-gro.C, pr80166.c.</para>
[d7a9421]161-->
[032dc4e8]162
[6dfcfecc]163<!-- don't fail anymore after the move of iana-etc and /etc/hosts
[cad96bf]164 <para>Two tests named lookup.cc and reverse.cc in experimental/net
165 are known to fail in LFS chroot environment because they require
166 /etc/hosts and iana-etc.</para>
[6dfcfecc]167-->
[9278974d]168 <para>A few unexpected failures cannot always be avoided. The GCC developers
[0238d49]169 are usually aware of these issues, but have not resolved them yet.
[9278974d]170 Unless the test results are vastly different from those at the above URL,
171 it is safe to continue.</para>
[73aedd1d]172
[1803e9b]173 <!--note><para>
[e3e989a]174 On some combinations of kernel configuration and AMD processors
175 there may be more than 1100 failures in the gcc.target/i386/mpx
176 tests (which are designed to test the MPX option on recent
177 Intel processors). These can safely be ignored on AMD
[1c8cc71]178 processors. These tests will also fail on Intel processors if MPX support
179 is not enabled in the kernel even though it is present on the CPU.
[1803e9b]180 </para></note-->
[e3e989a]181
[3d086532]182 <!-- PR 91085, will be fixed in GCC 12. -->
[bc375da6]183 <para>Install the package and remove an unneeded directory:</para>
[73aedd1d]184
[bc375da6]185<screen><userinput remap="install">make install
[1daca67]186rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/&gcc-version;/include-fixed/bits/</userinput></screen>
187
188 <para>The GCC build directory is owned by <systemitem class="username">
[8d4f212]189 tester</systemitem> now and the ownership of the installed header
[1daca67]190 directory (and its content) will be incorrect. Change the ownership to
191 <systemitem class="username">root</systemitem> user and group:</para>
192
193<screen><userinput remap="install">chown -v -R root:root \
[6dfcfecc]194 /usr/lib/gcc/*linux-gnu/&gcc-version;/include{,-fixed}</userinput></screen>
[73aedd1d]195
[60b23a6f]196 <para>Create a symlink required by the <ulink
[b30de8f]197 url="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html">FHS</ulink>
[60b23a6f]198 for "historical" reasons.</para>
[73aedd1d]199
[9c3ce2a]200<screen><userinput remap="install">ln -svr /usr/bin/cpp /usr/lib</userinput></screen>
[6dfcfecc]201 <!-- already done earlier
[6a82dd9]202 <para>Many packages use the name <command>cc</command> to call the C
203 compiler. To satisfy those packages, create a symlink:</para>
[1ba726f]204
[0445a3d]205<screen><userinput remap="install">ln -sv gcc /usr/bin/cc</userinput></screen>
[6dfcfecc]206 -->
[6206f72]207 <para>Add a compatibility symlink to enable building programs with
208 Link Time Optimization (LTO):</para>
209
[9da9d014]210<screen><userinput remap="install">ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/&gcc-version;/liblto_plugin.so \
[040ecb6]211 /usr/lib/bfd-plugins/</userinput></screen>
[6206f72]212
[09f1daf]213 <para>Now that our final toolchain is in place, it is important to again ensure
214 that compiling and linking will work as expected. We do this by performing
[6dfcfecc]215 some sanity checks:</para>
[09f1daf]216
[d9441360]217 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]218 href="adjusting.xml"
[09f1daf]219 xpointer="xpointer(//*[@os='a'])"/>
220
[d9441360]221 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]222 href="adjusting.xml"
[09f1daf]223 xpointer="xpointer(//*[@os='b'])"/>
224
[d9441360]225 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]226 href="adjusting.xml"
[09f1daf]227 xpointer="xpointer(//*[@os='c'])"/>
228
[d9441360]229 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]230 href="adjusting.xml"
[09f1daf]231 xpointer="xpointer(//*[@os='d'])"/>
232
[d9441360]233 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]234 href="adjusting.xml"
[09f1daf]235 xpointer="xpointer(//*[@os='e'])"/>
236
[d9441360]237 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]238 href="adjusting.xml"
[09f1daf]239 xpointer="xpointer(//*[@os='f'])"/>
240
[98e7ac4]241<screen><computeroutput>/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crt1.o succeeded
242/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
243/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>
[09f1daf]244
[6dfcfecc]245 <para>Depending on your machine architecture, the above may differ slightly.
246 The difference will be the name of the directory
[be3d9f3]247 after <filename class="directory">/usr/lib/gcc</filename>. The important
248 thing to look for here is that <command>gcc</command> has found all three
[5f7456b]249 <filename>crt*.o</filename> files under the
250 <filename class="directory">/usr/lib</filename> directory.</para>
[6e88633]251
[d9441360]252 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]253 href="adjusting.xml"
[09f1daf]254 xpointer="xpointer(//*[@os='g'])"/>
255
[041c8f67]256<screen><userinput>grep -B4 '^ /usr/include' dummy.log</userinput></screen>
[e9a652b]257
[d9441360]258 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]259 href="adjusting.xml"
[09f1daf]260 xpointer="xpointer(//*[@os='h'])"/>
261
[e9a652b]262<screen><computeroutput>#include &lt;...&gt; search starts here:
[98e7ac4]263 /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
[c528e3a]264 /usr/local/include
[98e7ac4]265 /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
[e9a652b]266 /usr/include</computeroutput></screen>
267
[6dfcfecc]268 <para>Again, the directory named after your target triplet may be
269 different than the above, depending on your system architecture.</para>
[3f39abf3]270
[d9441360]271 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]272 href="adjusting.xml"
[09f1daf]273 xpointer="xpointer(//*[@os='i'])"/>
274
[d9441360]275 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]276 href="adjusting.xml"
[09f1daf]277 xpointer="xpointer(//*[@os='j'])"/>
278
[d9441360]279 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]280 href="adjusting.xml"
[09f1daf]281 xpointer="xpointer(//*[@os='k'])"/>
282
[98e7ac4]283<screen><computeroutput>SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
284SEARCH_DIR("/usr/local/lib64")
285SEARCH_DIR("/lib64")
286SEARCH_DIR("/usr/lib64")
287SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
[e9a652b]288SEARCH_DIR("/usr/local/lib")
289SEARCH_DIR("/lib")
[6e88633]290SEARCH_DIR("/usr/lib");</computeroutput></screen>
291
[6dfcfecc]292 <para arch="default">A 32-bit system may see a few different directories. For example, here
293 is the output from an i686 machine:</para>
[6e88633]294
[6dfcfecc]295<!-- not using entities here as the dir names has nothing to do with multilib -->
[b3f1ebb3]296<screen arch="default"><computeroutput>SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
[98e7ac4]297SEARCH_DIR("/usr/local/lib32")
298SEARCH_DIR("/lib32")
299SEARCH_DIR("/usr/lib32")
300SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
[6e88633]301SEARCH_DIR("/usr/local/lib")
302SEARCH_DIR("/lib")
[e9a652b]303SEARCH_DIR("/usr/lib");</computeroutput></screen>
304
[d9441360]305 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]306 href="adjusting.xml"
[09f1daf]307 xpointer="xpointer(//*[@os='l'])"/>
308
[d9441360]309 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]310 href="adjusting.xml"
[09f1daf]311 xpointer="xpointer(//*[@os='m'])"/>
312
[d9441360]313 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]314 href="adjusting.xml"
[09f1daf]315 xpointer="xpointer(//*[@os='n'])"/>
316
[d9441360]317 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]318 href="adjusting.xml"
[09f1daf]319 xpointer="xpointer(//*[@os='o'])"/>
320
[d9441360]321 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]322 href="adjusting.xml"
[09f1daf]323 xpointer="xpointer(//*[@os='p'])"/>
324
[d9441360]325 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]326 href="adjusting.xml"
[09f1daf]327 xpointer="xpointer(//*[@os='q'])"/>
328
[d9441360]329 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]330 href="adjusting.xml"
[09f1daf]331 xpointer="xpointer(//*[@os='r'])"/>
332
[d9441360]333 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]334 href="adjusting.xml"
[09f1daf]335 xpointer="xpointer(//*[@os='s'])"/>
336
[d9441360]337 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]338 href="adjusting.xml"
[09f1daf]339 xpointer="xpointer(//*[@os='t'])"/>
[6a82dd9]340
[d9441360]341 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]342 href="adjusting.xml"
[e9a652b]343 xpointer="xpointer(//*[@os='u'])"/>
344
[d9441360]345 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[1a3e6a3]346 href="adjusting.xml"
[e9a652b]347 xpointer="xpointer(//*[@os='v'])"/>
348
[970a126]349 <para>Finally, move a misplaced file:</para>
[39ec01c]350
[970a126]351<screen><userinput remap="install">mkdir -pv /usr/share/gdb/auto-load/usr/lib
[6dfcfecc]352mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</userinput></screen>
[39ec01c]353
[6a82dd9]354 </sect2>
355
356 <sect2 id="contents-gcc" role="content">
357 <title>Contents of GCC</title>
358
359 <segmentedlist>
360 <segtitle>Installed programs</segtitle>
361 <segtitle>Installed libraries</segtitle>
[fe05b08]362 <segtitle>Installed directories</segtitle>
[6a82dd9]363
364 <seglistitem>
[2ca8941]365 <seg>c++, cc (link to gcc), cpp, g++, gcc,
[78cc3be]366 gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, and gcov-tool</seg>
[e0901b3]367
[78cc3be]368 <seg>libasan.{a,so}, libatomic.{a,so}, libcc1.so, libgcc.a, libgcc_eh.a,
369 libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so},
370 liblsan.{a,so}, liblto_plugin.so,
371 libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a,
372 libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so},
373 and libubsan.{a,so}</seg>
[2ca8941]374
[7bb9fda]375 <seg>/usr/include/c++, /usr/lib/gcc, /usr/libexec/gcc, and
[4e8a532]376 /usr/share/gcc-&gcc-version;</seg>
[6a82dd9]377 </seglistitem>
378 </segmentedlist>
379
380 <variablelist>
381 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
382 <?dbfo list-presentation="list"?>
383 <?dbhtml list-presentation="table"?>
384
[75128571]385 <varlistentry id="c">
386 <term><command>c++</command></term>
387 <listitem>
388 <para>The C++ compiler</para>
389 <indexterm zone="ch-system-gcc c">
390 <primary sortas="b-c++">c++</primary>
391 </indexterm>
392 </listitem>
393 </varlistentry>
394
[6a82dd9]395 <varlistentry id="cc">
396 <term><command>cc</command></term>
397 <listitem>
398 <para>The C compiler</para>
399 <indexterm zone="ch-system-gcc cc">
400 <primary sortas="b-cc">cc</primary>
401 </indexterm>
402 </listitem>
403 </varlistentry>
404
405 <varlistentry id="cpp">
406 <term><command>cpp</command></term>
407 <listitem>
408 <para>The C preprocessor; it is used by the compiler to expand the
409 #include, #define, and similar statements in the source files</para>
410 <indexterm zone="ch-system-gcc cpp">
411 <primary sortas="b-cpp">cpp</primary>
412 </indexterm>
413 </listitem>
414 </varlistentry>
415
416 <varlistentry id="g">
417 <term><command>g++</command></term>
418 <listitem>
419 <para>The C++ compiler</para>
420 <indexterm zone="ch-system-gcc g">
421 <primary sortas="b-g++">g++</primary>
422 </indexterm>
423 </listitem>
424 </varlistentry>
425
426 <varlistentry id="gcc">
427 <term><command>gcc</command></term>
428 <listitem>
429 <para>The C compiler</para>
430 <indexterm zone="ch-system-gcc gcc">
431 <primary sortas="b-gcc">gcc</primary>
432 </indexterm>
433 </listitem>
434 </varlistentry>
435
[e0901b3]436 <varlistentry id="gcc-ar">
437 <term><command>gcc-ar</command></term>
438 <listitem>
439 <para>A wrapper around <command>ar</command> that adds a
[afba93b]440 plugin to the command line. This program is only used
[edbeeb5]441 to add "link time optimization" and is not useful with the
[afba93b]442 default build options</para>
[e0901b3]443 <indexterm zone="ch-system-gcc gcc-ar">
444 <primary sortas="b-gcc-ar">gc-ar</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449 <varlistentry id="gcc-nm">
450 <term><command>gcc-nm</command></term>
451 <listitem>
452 <para>A wrapper around <command>nm</command> that adds a
[afba93b]453 plugin to the command line. This program is only used
[a885478]454 to add "link time optimization" and is not useful with the
[afba93b]455 default build options</para>
[e0901b3]456 <indexterm zone="ch-system-gcc gcc-nm">
457 <primary sortas="b-gcc-nm">gc-nm</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="gcc-ranlib">
463 <term><command>gcc-ranlib</command></term>
464 <listitem>
465 <para>A wrapper around <command>ranlib</command> that adds a
[afba93b]466 plugin to the command line. This program is only used
[a885478]467 to add "link time optimization" and is not useful with the
[afba93b]468 default build options</para>
[e0901b3]469 <indexterm zone="ch-system-gcc gcc-ranlib">
470 <primary sortas="b-gcc-ranlib">gc-ranlib</primary>
471 </indexterm>
472 </listitem>
473 </varlistentry>
[6a82dd9]474
475 <varlistentry id="gcov">
476 <term><command>gcov</command></term>
477 <listitem>
478 <para>A coverage testing tool; it is used to analyze programs to
479 determine where optimizations will have the most effect</para>
480 <indexterm zone="ch-system-gcc gcov">
481 <primary sortas="b-gcov">gcov</primary>
482 </indexterm>
[4783efe]483 </listitem>
484 </varlistentry>
485
[78cc3be]486 <varlistentry id="gcov-dump">
487 <term><command>gcov-dump</command></term>
488 <listitem>
489 <para>Offline gcda and gcno profile dump tool</para>
490 <indexterm zone="ch-system-gcc gcov-dump">
491 <primary sortas="b-gcov-dump">gcov-dump</primary>
492 </indexterm>
493 </listitem>
494 </varlistentry>
495
496 <varlistentry id="gcov-tool">
497 <term><command>gcov-tool</command></term>
498 <listitem>
499 <para>Offline gcda profile processing tool</para>
500 <indexterm zone="ch-system-gcc gcov-tool">
501 <primary sortas="b-gcov-tool">gcov-tool</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
[4783efe]506 <varlistentry id="libasan">
[78cc3be]507 <term><filename class="libraryfile">libasan</filename></term>
[4783efe]508 <listitem>
509 <para>The Address Sanitizer runtime library</para>
510 <indexterm zone="ch-system-gcc libasan">
511 <primary sortas="b-libasan">libasan</primary>
512 </indexterm>
[6a82dd9]513 </listitem>
514 </varlistentry>
515
[78cc3be]516 <varlistentry id="libatomic">
517 <term><filename class="libraryfile">libatomic</filename></term>
518 <listitem>
519 <para>GCC atomic built-in runtime library</para>
520 <indexterm zone="ch-system-gcc libatomic">
521 <primary sortas="b-libatomic">libatomic</primary>
522 </indexterm>
523 </listitem>
524 </varlistentry>
525
526 <varlistentry id="libcc1">
527 <term><filename class="libraryfile">libcc1</filename></term>
528 <listitem>
529 <para>The C preprocessing library</para>
530 <indexterm zone="ch-system-gcc libcc1">
531 <primary sortas="b-libcc1">libcc1</primary>
532 </indexterm>
533 </listitem>
534 </varlistentry>
535
[6a82dd9]536 <varlistentry id="libgcc">
537 <term><filename class="libraryfile">libgcc</filename></term>
538 <listitem>
539 <para>Contains run-time support for <command>gcc</command></para>
540 <indexterm zone="ch-system-gcc libgcc">
[afba93b]541 <primary sortas="c-libgcc">libgcc</primary>
[6a82dd9]542 </indexterm>
543 </listitem>
544 </varlistentry>
545
[90aae6b]546 <varlistentry id="libgcov">
547 <term><filename class="libraryfile">libgcov</filename></term>
548 <listitem>
549 <para>This library is linked in to a program when GCC is instructed
550 to enable profiling</para>
551 <indexterm zone="ch-system-gcc libgcov">
552 <primary sortas="c-libgcov">libgcov</primary>
553 </indexterm>
554 </listitem>
555 </varlistentry>
556
557 <varlistentry id="libgomp">
558 <term><filename class="libraryfile">libgomp</filename></term>
559 <listitem>
560 <para>GNU implementation of the OpenMP API for multi-platform
561 shared-memory parallel programming in C/C++ and Fortran</para>
562 <indexterm zone="ch-system-gcc libgomp">
563 <primary sortas="c-libgomp">libgomp</primary>
564 </indexterm>
565 </listitem>
566 </varlistentry>
567
[78cc3be]568 <varlistentry id="liblsan">
569 <term><filename class="libraryfile">liblsan</filename></term>
[b755562]570 <listitem>
[78cc3be]571 <para>The Leak Sanitizer runtime library</para>
572 <indexterm zone="ch-system-gcc liblsan">
573 <primary sortas="c-liblsan">liblsan</primary>
[b755562]574 </indexterm>
575 </listitem>
576 </varlistentry>
577
[3119ddc]578 <varlistentry id="liblto_plugin">
579 <term><filename class="libraryfile">liblto_plugin</filename></term>
580 <listitem>
581 <para>GCC's Link Time Optimization (LTO) plugin allows GCC to perform
[afba93b]582 optimizations across compilation units</para>
[3119ddc]583 <indexterm zone="ch-system-gcc liblto_plugin">
[afba93b]584 <primary sortas="c-liblto_plugin">liblto_plugin</primary>
[3119ddc]585 </indexterm>
586 </listitem>
587 </varlistentry>
[7bb9fda]588
[3119ddc]589 <varlistentry id="libquadmath">
590 <term><filename class="libraryfile">libquadmath</filename></term>
591 <listitem>
592 <para>GCC Quad Precision Math Library API</para>
593 <indexterm zone="ch-system-gcc libquadmath">
[afba93b]594 <primary sortas="c-libquadmath">libquadmath</primary>
[3119ddc]595 </indexterm>
596 </listitem>
597 </varlistentry>
598
[2791a8e]599 <varlistentry id="libssp">
600 <term><filename class="libraryfile">libssp</filename></term>
601 <listitem>
602 <para>Contains routines supporting GCC's stack-smashing protection
603 functionality</para>
604 <indexterm zone="ch-system-gcc libssp">
[afba93b]605 <primary sortas="c-libssp">libssp</primary>
[2791a8e]606 </indexterm>
607 </listitem>
608 </varlistentry>
609
[6a82dd9]610 <varlistentry id="libstdc">
611 <term><filename class="libraryfile">libstdc++</filename></term>
612 <listitem>
613 <para>The standard C++ library</para>
614 <indexterm zone="ch-system-gcc libstdc">
615 <primary sortas="c-libstdc++">libstdc++</primary>
616 </indexterm>
617 </listitem>
618 </varlistentry>
619
[78cc3be]620 <varlistentry id="libstdcfs">
621 <term><filename class="libraryfile">libstdc++fs</filename></term>
622 <listitem>
623 <para>ISO/IEC TS 18822:2015 Filesystem library</para>
624 <indexterm zone="ch-system-gcc libstdcfs">
625 <primary sortas="c-libstdc++fs">libstdc++fs</primary>
626 </indexterm>
627 </listitem>
628 </varlistentry>
629
[6a82dd9]630 <varlistentry id="libsupc">
631 <term><filename class="libraryfile">libsupc++</filename></term>
632 <listitem>
633 <para>Provides supporting routines for the C++ programming
634 language</para>
635 <indexterm zone="ch-system-gcc libsupc">
636 <primary sortas="c-libsupc++">libsupc++</primary>
637 </indexterm>
638 </listitem>
639 </varlistentry>
640
[f6b1d91]641 <varlistentry id="libtsan">
642 <term><filename class="libraryfile">libtsan</filename></term>
643 <listitem>
644 <para>The Thread Sanitizer runtime library</para>
645 <indexterm zone="ch-system-gcc libtsan">
646 <primary sortas="c-libtsan">libtsan</primary>
647 </indexterm>
648 </listitem>
649 </varlistentry>
650
[78cc3be]651 <varlistentry id="libubsan">
652 <term><filename class="libraryfile">libubsan</filename></term>
653 <listitem>
654 <para>The Undefined Behavior Sanitizer runtime library</para>
655 <indexterm zone="ch-system-gcc libubsan">
656 <primary sortas="c-libubsan">libubsan</primary>
657 </indexterm>
658 </listitem>
659 </varlistentry>
660
[6a82dd9]661 </variablelist>
662
663 </sect2>
[673b0d8]664
665</sect1>
Note: See TracBrowser for help on using the repository browser.