source: chapter08/gcc.xml@ e0a5f2a

11.1
Last change on this file since e0a5f2a was e5b4b3f, checked in by Xi Ruoyao <xry111@…>, 2 years ago

gcc: update contents and descriptions

Add lto-dump and libitm, and reword description for liblto_plugin
because it's actually used by libbfd (from binutils).

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