source: chapter08/gcc.xml@ 2590473

multilib
Last change on this file since 2590473 was 2590473, checked in by Thomas Trepl (Moody) <thomas@…>, 2 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
[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,
[78cc3be]367 gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, and gcov-tool</seg>
[e0901b3]368
[78cc3be]369 <seg>libasan.{a,so}, libatomic.{a,so}, libcc1.so, libgcc.a, libgcc_eh.a,
370 libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so},
371 liblsan.{a,so}, liblto_plugin.so,
372 libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a,
373 libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so},
374 and libubsan.{a,so}</seg>
[2ca8941]375
[d672ab7]376 <seg>/usr/include/c++, /usr/lib/gcc, /usr/libexec/gcc, and
[4e8a532]377 /usr/share/gcc-&gcc-version;</seg>
[6a82dd9]378 </seglistitem>
379 </segmentedlist>
380
381 <variablelist>
382 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
383 <?dbfo list-presentation="list"?>
384 <?dbhtml list-presentation="table"?>
385
[75128571]386 <varlistentry id="c">
387 <term><command>c++</command></term>
388 <listitem>
389 <para>The C++ compiler</para>
390 <indexterm zone="ch-system-gcc c">
391 <primary sortas="b-c++">c++</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
[6a82dd9]396 <varlistentry id="cc">
397 <term><command>cc</command></term>
398 <listitem>
399 <para>The C compiler</para>
400 <indexterm zone="ch-system-gcc cc">
401 <primary sortas="b-cc">cc</primary>
402 </indexterm>
403 </listitem>
404 </varlistentry>
405
406 <varlistentry id="cpp">
407 <term><command>cpp</command></term>
408 <listitem>
409 <para>The C preprocessor; it is used by the compiler to expand the
410 #include, #define, and similar statements in the source files</para>
411 <indexterm zone="ch-system-gcc cpp">
412 <primary sortas="b-cpp">cpp</primary>
413 </indexterm>
414 </listitem>
415 </varlistentry>
416
417 <varlistentry id="g">
418 <term><command>g++</command></term>
419 <listitem>
420 <para>The C++ compiler</para>
421 <indexterm zone="ch-system-gcc g">
422 <primary sortas="b-g++">g++</primary>
423 </indexterm>
424 </listitem>
425 </varlistentry>
426
427 <varlistentry id="gcc">
428 <term><command>gcc</command></term>
429 <listitem>
430 <para>The C compiler</para>
431 <indexterm zone="ch-system-gcc gcc">
432 <primary sortas="b-gcc">gcc</primary>
433 </indexterm>
434 </listitem>
435 </varlistentry>
436
[e0901b3]437 <varlistentry id="gcc-ar">
438 <term><command>gcc-ar</command></term>
439 <listitem>
440 <para>A wrapper around <command>ar</command> that adds a
[afba93b]441 plugin to the command line. This program is only used
[edbeeb5]442 to add "link time optimization" and is not useful with the
[afba93b]443 default build options</para>
[e0901b3]444 <indexterm zone="ch-system-gcc gcc-ar">
445 <primary sortas="b-gcc-ar">gc-ar</primary>
446 </indexterm>
447 </listitem>
448 </varlistentry>
449
450 <varlistentry id="gcc-nm">
451 <term><command>gcc-nm</command></term>
452 <listitem>
453 <para>A wrapper around <command>nm</command> that adds a
[afba93b]454 plugin to the command line. This program is only used
[a885478]455 to add "link time optimization" and is not useful with the
[afba93b]456 default build options</para>
[e0901b3]457 <indexterm zone="ch-system-gcc gcc-nm">
458 <primary sortas="b-gcc-nm">gc-nm</primary>
459 </indexterm>
460 </listitem>
461 </varlistentry>
462
463 <varlistentry id="gcc-ranlib">
464 <term><command>gcc-ranlib</command></term>
465 <listitem>
466 <para>A wrapper around <command>ranlib</command> that adds a
[afba93b]467 plugin to the command line. This program is only used
[a885478]468 to add "link time optimization" and is not useful with the
[afba93b]469 default build options</para>
[e0901b3]470 <indexterm zone="ch-system-gcc gcc-ranlib">
471 <primary sortas="b-gcc-ranlib">gc-ranlib</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
[6a82dd9]475
476 <varlistentry id="gcov">
477 <term><command>gcov</command></term>
478 <listitem>
479 <para>A coverage testing tool; it is used to analyze programs to
480 determine where optimizations will have the most effect</para>
481 <indexterm zone="ch-system-gcc gcov">
482 <primary sortas="b-gcov">gcov</primary>
483 </indexterm>
[4783efe]484 </listitem>
485 </varlistentry>
486
[78cc3be]487 <varlistentry id="gcov-dump">
488 <term><command>gcov-dump</command></term>
489 <listitem>
490 <para>Offline gcda and gcno profile dump tool</para>
491 <indexterm zone="ch-system-gcc gcov-dump">
492 <primary sortas="b-gcov-dump">gcov-dump</primary>
493 </indexterm>
494 </listitem>
495 </varlistentry>
496
497 <varlistentry id="gcov-tool">
498 <term><command>gcov-tool</command></term>
499 <listitem>
500 <para>Offline gcda profile processing tool</para>
501 <indexterm zone="ch-system-gcc gcov-tool">
502 <primary sortas="b-gcov-tool">gcov-tool</primary>
503 </indexterm>
504 </listitem>
505 </varlistentry>
506
[4783efe]507 <varlistentry id="libasan">
[78cc3be]508 <term><filename class="libraryfile">libasan</filename></term>
[4783efe]509 <listitem>
510 <para>The Address Sanitizer runtime library</para>
511 <indexterm zone="ch-system-gcc libasan">
512 <primary sortas="b-libasan">libasan</primary>
513 </indexterm>
[6a82dd9]514 </listitem>
515 </varlistentry>
516
[78cc3be]517 <varlistentry id="libatomic">
518 <term><filename class="libraryfile">libatomic</filename></term>
519 <listitem>
520 <para>GCC atomic built-in runtime library</para>
521 <indexterm zone="ch-system-gcc libatomic">
522 <primary sortas="b-libatomic">libatomic</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="libcc1">
528 <term><filename class="libraryfile">libcc1</filename></term>
529 <listitem>
530 <para>The C preprocessing library</para>
531 <indexterm zone="ch-system-gcc libcc1">
532 <primary sortas="b-libcc1">libcc1</primary>
533 </indexterm>
534 </listitem>
535 </varlistentry>
536
[6a82dd9]537 <varlistentry id="libgcc">
538 <term><filename class="libraryfile">libgcc</filename></term>
539 <listitem>
540 <para>Contains run-time support for <command>gcc</command></para>
541 <indexterm zone="ch-system-gcc libgcc">
[afba93b]542 <primary sortas="c-libgcc">libgcc</primary>
[6a82dd9]543 </indexterm>
544 </listitem>
545 </varlistentry>
546
[90aae6b]547 <varlistentry id="libgcov">
548 <term><filename class="libraryfile">libgcov</filename></term>
549 <listitem>
550 <para>This library is linked in to a program when GCC is instructed
551 to enable profiling</para>
552 <indexterm zone="ch-system-gcc libgcov">
553 <primary sortas="c-libgcov">libgcov</primary>
554 </indexterm>
555 </listitem>
556 </varlistentry>
557
558 <varlistentry id="libgomp">
559 <term><filename class="libraryfile">libgomp</filename></term>
560 <listitem>
561 <para>GNU implementation of the OpenMP API for multi-platform
562 shared-memory parallel programming in C/C++ and Fortran</para>
563 <indexterm zone="ch-system-gcc libgomp">
564 <primary sortas="c-libgomp">libgomp</primary>
565 </indexterm>
566 </listitem>
567 </varlistentry>
568
[78cc3be]569 <varlistentry id="liblsan">
570 <term><filename class="libraryfile">liblsan</filename></term>
[b755562]571 <listitem>
[78cc3be]572 <para>The Leak Sanitizer runtime library</para>
573 <indexterm zone="ch-system-gcc liblsan">
574 <primary sortas="c-liblsan">liblsan</primary>
[b755562]575 </indexterm>
576 </listitem>
577 </varlistentry>
578
[3119ddc]579 <varlistentry id="liblto_plugin">
580 <term><filename class="libraryfile">liblto_plugin</filename></term>
581 <listitem>
582 <para>GCC's Link Time Optimization (LTO) plugin allows GCC to perform
[afba93b]583 optimizations across compilation units</para>
[3119ddc]584 <indexterm zone="ch-system-gcc liblto_plugin">
[afba93b]585 <primary sortas="c-liblto_plugin">liblto_plugin</primary>
[3119ddc]586 </indexterm>
587 </listitem>
588 </varlistentry>
[7bb9fda]589
[3119ddc]590 <varlistentry id="libquadmath">
591 <term><filename class="libraryfile">libquadmath</filename></term>
592 <listitem>
593 <para>GCC Quad Precision Math Library API</para>
594 <indexterm zone="ch-system-gcc libquadmath">
[afba93b]595 <primary sortas="c-libquadmath">libquadmath</primary>
[3119ddc]596 </indexterm>
597 </listitem>
598 </varlistentry>
599
[2791a8e]600 <varlistentry id="libssp">
601 <term><filename class="libraryfile">libssp</filename></term>
602 <listitem>
603 <para>Contains routines supporting GCC's stack-smashing protection
604 functionality</para>
605 <indexterm zone="ch-system-gcc libssp">
[afba93b]606 <primary sortas="c-libssp">libssp</primary>
[2791a8e]607 </indexterm>
608 </listitem>
609 </varlistentry>
610
[6a82dd9]611 <varlistentry id="libstdc">
612 <term><filename class="libraryfile">libstdc++</filename></term>
613 <listitem>
614 <para>The standard C++ library</para>
615 <indexterm zone="ch-system-gcc libstdc">
616 <primary sortas="c-libstdc++">libstdc++</primary>
617 </indexterm>
618 </listitem>
619 </varlistentry>
620
[78cc3be]621 <varlistentry id="libstdcfs">
622 <term><filename class="libraryfile">libstdc++fs</filename></term>
623 <listitem>
624 <para>ISO/IEC TS 18822:2015 Filesystem library</para>
625 <indexterm zone="ch-system-gcc libstdcfs">
626 <primary sortas="c-libstdc++fs">libstdc++fs</primary>
627 </indexterm>
628 </listitem>
629 </varlistentry>
630
[6a82dd9]631 <varlistentry id="libsupc">
632 <term><filename class="libraryfile">libsupc++</filename></term>
633 <listitem>
634 <para>Provides supporting routines for the C++ programming
635 language</para>
636 <indexterm zone="ch-system-gcc libsupc">
637 <primary sortas="c-libsupc++">libsupc++</primary>
638 </indexterm>
639 </listitem>
640 </varlistentry>
641
[f6b1d91]642 <varlistentry id="libtsan">
643 <term><filename class="libraryfile">libtsan</filename></term>
644 <listitem>
645 <para>The Thread Sanitizer runtime library</para>
646 <indexterm zone="ch-system-gcc libtsan">
647 <primary sortas="c-libtsan">libtsan</primary>
648 </indexterm>
649 </listitem>
650 </varlistentry>
651
[78cc3be]652 <varlistentry id="libubsan">
653 <term><filename class="libraryfile">libubsan</filename></term>
654 <listitem>
655 <para>The Undefined Behavior Sanitizer runtime library</para>
656 <indexterm zone="ch-system-gcc libubsan">
657 <primary sortas="c-libubsan">libubsan</primary>
658 </indexterm>
659 </listitem>
660 </varlistentry>
661
[6a82dd9]662 </variablelist>
663
664 </sect2>
[673b0d8]665
666</sect1>
Note: See TracBrowser for help on using the repository browser.