source: chapter06/gcc.xml@ 8c5e7286

multilib-10.1
Last change on this file since 8c5e7286 was 8c5e7286, checked in by Thomas Trepl <thomas@…>, 5 years ago

Merge upstream changes

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/multilib@11601 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

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