source: chapter08/gcc.xml@ db51ee9

xry111/clfs-ng
Last change on this file since db51ee9 was 30ae09bb, checked in by Xi Ruoyao <xry111@…>, 2 years ago

cross-ng: gcc: don't rely on "uname -m"

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