source: chapter06/gcc.xml@ 8eb3fe4

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

First apply of multilib-patch of April 1st, 2019

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

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