source: chapter08/gcc.xml@ 77ea132

multilib
Last change on this file since 77ea132 was 77ea132, checked in by Thomas Trepl (Moody) <thomas@…>, 2 years ago

Automatic merge of trunk into multilib

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