xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/doc/gccinstall.info (revision 627f7eb200a4419d89b531d55fccd2ee3ffdcde0)
1This is gccinstall.info, produced by makeinfo version 6.7 from
2install.texi.
3
4Copyright (C) 1988-2018 Free Software Foundation, Inc.
5
6   Permission is granted to copy, distribute and/or modify this document
7under the terms of the GNU Free Documentation License, Version 1.3 or
8any later version published by the Free Software Foundation; with no
9Invariant Sections, the Front-Cover texts being (a) (see below), and
10with the Back-Cover Texts being (b) (see below).  A copy of the license
11is included in the section entitled "GNU Free Documentation License".
12
13   (a) The FSF's Front-Cover Text is:
14
15   A GNU Manual
16
17   (b) The FSF's Back-Cover Text is:
18
19   You have freedom to copy and modify this GNU Manual, like GNU
20software.  Copies published by the Free Software Foundation raise funds
21for GNU development.
22INFO-DIR-SECTION Software development
23START-INFO-DIR-ENTRY
24* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
25END-INFO-DIR-ENTRY
26
27   Copyright (C) 1988-2018 Free Software Foundation, Inc.
28
29   Permission is granted to copy, distribute and/or modify this document
30under the terms of the GNU Free Documentation License, Version 1.3 or
31any later version published by the Free Software Foundation; with no
32Invariant Sections, the Front-Cover texts being (a) (see below), and
33with the Back-Cover Texts being (b) (see below).  A copy of the license
34is included in the section entitled "GNU Free Documentation License".
35
36   (a) The FSF's Front-Cover Text is:
37
38   A GNU Manual
39
40   (b) The FSF's Back-Cover Text is:
41
42   You have freedom to copy and modify this GNU Manual, like GNU
43software.  Copies published by the Free Software Foundation raise funds
44for GNU development.
45
46
47File: gccinstall.info,  Node: Top,  Up: (dir)
48
49* Menu:
50
51* Installing GCC::  This document describes the generic installation
52                    procedure for GCC as well as detailing some target
53                    specific installation instructions.
54
55* Specific::        Host/target specific installation notes for GCC.
56* Binaries::        Where to get pre-compiled binaries.
57
58* Old::             Old installation documentation.
59
60* GNU Free Documentation License:: How you can copy and share this manual.
61* Concept Index::   This index has two entries.
62
63
64File: gccinstall.info,  Node: Installing GCC,  Next: Binaries,  Up: Top
65
661 Installing GCC
67****************
68
69The latest version of this document is always available at
70http://gcc.gnu.org/install/.  It refers to the current development
71sources, instructions for specific released versions are included with
72the sources.
73
74   This document describes the generic installation procedure for GCC as
75well as detailing some target specific installation instructions.
76
77   GCC includes several components that previously were separate
78distributions with their own installation instructions.  This document
79supersedes all package-specific installation instructions.
80
81   _Before_ starting the build/install procedure please check the *note
82host/target specific installation notes: Specific.  We recommend you
83browse the entire generic installation instructions before you proceed.
84
85   Lists of successful builds for released versions of GCC are available
86at <http://gcc.gnu.org/buildstat.html>.  These lists are updated as new
87information becomes available.
88
89   The installation procedure itself is broken into five steps.
90
91* Menu:
92
93* Prerequisites::
94* Downloading the source::
95* Configuration::
96* Building::
97* Testing:: (optional)
98* Final install::
99
100   Please note that GCC does not support 'make uninstall' and probably
101won't do so in the near future as this would open a can of worms.
102Instead, we suggest that you install GCC into a directory of its own and
103simply remove that directory when you do not need that specific version
104of GCC any longer, and, if shared libraries are installed there as well,
105no more binaries exist that use them.
106
107
108File: gccinstall.info,  Node: Prerequisites,  Next: Downloading the source,  Up: Installing GCC
109
1102 Prerequisites
111***************
112
113GCC requires that various tools and packages be available for use in the
114build procedure.  Modifying GCC sources requires additional tools
115described below.
116
117Tools/packages necessary for building GCC
118=========================================
119
120ISO C++98 compiler
121     Necessary to bootstrap GCC, although versions of GCC prior to 4.8
122     also allow bootstrapping with a ISO C89 compiler and versions of
123     GCC prior to 3.4 also allow bootstrapping with a traditional (K&R)
124     C compiler.
125
126     To build all languages in a cross-compiler or other configuration
127     where 3-stage bootstrap is not performed, you need to start with an
128     existing GCC binary (version 3.4 or later) because source code for
129     language frontends other than C might use GCC extensions.
130
131     Note that to bootstrap GCC with versions of GCC earlier than 3.4,
132     you may need to use '--disable-stage1-checking', though
133     bootstrapping the compiler with such earlier compilers is strongly
134     discouraged.
135
136C standard library and headers
137
138     In order to build GCC, the C standard library and headers must be
139     present for all target variants for which target libraries will be
140     built (and not only the variant of the host C++ compiler).
141
142     This affects the popular 'x86_64-unknown-linux-gnu' platform (among
143     other multilib targets), for which 64-bit ('x86_64') and 32-bit
144     ('i386') libc headers are usually packaged separately.  If you do a
145     build of a native compiler on 'x86_64-unknown-linux-gnu', make sure
146     you either have the 32-bit libc developer package properly
147     installed (the exact name of the package depends on your distro) or
148     you must build GCC as a 64-bit only compiler by configuring with
149     the option '--disable-multilib'.  Otherwise, you may encounter an
150     error such as 'fatal error: gnu/stubs-32.h: No such file'
151
152GNAT
153
154     In order to build the Ada compiler (GNAT) you must already have
155     GNAT installed because portions of the Ada frontend are written in
156     Ada (with GNAT extensions.)  Refer to the Ada installation
157     instructions for more specific information.
158
159A "working" POSIX compatible shell, or GNU bash
160
161     Necessary when running 'configure' because some '/bin/sh' shells
162     have bugs and may crash when configuring the target libraries.  In
163     other cases, '/bin/sh' or 'ksh' have disastrous corner-case
164     performance problems.  This can cause target 'configure' runs to
165     literally take days to complete in some cases.
166
167     So on some platforms '/bin/ksh' is sufficient, on others it isn't.
168     See the host/target specific instructions for your platform, or use
169     'bash' to be sure.  Then set 'CONFIG_SHELL' in your environment to
170     your "good" shell prior to running 'configure'/'make'.
171
172     'zsh' is not a fully compliant POSIX shell and will not work when
173     configuring GCC.
174
175A POSIX or SVR4 awk
176
177     Necessary for creating some of the generated source files for GCC.
178     If in doubt, use a recent GNU awk version, as some of the older
179     ones are broken.  GNU awk version 3.1.5 is known to work.
180
181GNU binutils
182
183     Necessary in some circumstances, optional in others.  See the
184     host/target specific instructions for your platform for the exact
185     requirements.
186
187gzip version 1.2.4 (or later) or
188bzip2 version 1.0.2 (or later)
189
190     Necessary to uncompress GCC 'tar' files when source code is
191     obtained via FTP mirror sites.
192
193GNU make version 3.80 (or later)
194
195     You must have GNU make installed to build GCC.
196
197GNU tar version 1.14 (or later)
198
199     Necessary (only on some platforms) to untar the source code.  Many
200     systems' 'tar' programs will also work, only try GNU 'tar' if you
201     have problems.
202
203Perl version between 5.6.1 and 5.6.24
204
205     Necessary when targeting Darwin, building 'libstdc++', and not
206     using '--disable-symvers'.  Necessary when targeting Solaris 2 with
207     Sun 'ld' and not using '--disable-symvers'.  The bundled 'perl' in
208     Solaris 8 and up works.
209
210     Necessary when regenerating 'Makefile' dependencies in libiberty.
211     Necessary when regenerating 'libiberty/functions.texi'.  Necessary
212     when generating manpages from Texinfo manuals.  Used by various
213     scripts to generate some files included in the source repository
214     (mainly Unicode-related and rarely changing) from source tables.
215
216     Used by 'automake'.
217
218   Several support libraries are necessary to build GCC, some are
219required, others optional.  While any sufficiently new version of
220required tools usually work, library requirements are generally
221stricter.  Newer versions may work in some cases, but it's safer to use
222the exact versions documented.  We appreciate bug reports about problems
223with newer versions, though.  If your OS vendor provides packages for
224the support libraries then using those packages may be the simplest way
225to install the libraries.
226
227GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
228
229     Necessary to build GCC.  If a GMP source distribution is found in a
230     subdirectory of your GCC sources named 'gmp', it will be built
231     together with GCC. Alternatively, if GMP is already installed but
232     it is not in your library search path, you will have to configure
233     with the '--with-gmp' configure option.  See also '--with-gmp-lib'
234     and '--with-gmp-include'.  The in-tree build is only supported with
235     the GMP version that download_prerequisites installs.
236
237MPFR Library version 2.4.2 (or later)
238
239     Necessary to build GCC.  It can be downloaded from
240     <http://www.mpfr.org/>.  If an MPFR source distribution is found in
241     a subdirectory of your GCC sources named 'mpfr', it will be built
242     together with GCC. Alternatively, if MPFR is already installed but
243     it is not in your default library search path, the '--with-mpfr'
244     configure option should be used.  See also '--with-mpfr-lib' and
245     '--with-mpfr-include'.  The in-tree build is only supported with
246     the MPFR version that download_prerequisites installs.
247
248MPC Library version 0.8.1 (or later)
249
250     Necessary to build GCC.  It can be downloaded from
251     <http://www.multiprecision.org/>.  If an MPC source distribution is
252     found in a subdirectory of your GCC sources named 'mpc', it will be
253     built together with GCC. Alternatively, if MPC is already installed
254     but it is not in your default library search path, the '--with-mpc'
255     configure option should be used.  See also '--with-mpc-lib' and
256     '--with-mpc-include'.  The in-tree build is only supported with the
257     MPC version that download_prerequisites installs.
258
259isl Library version 0.15 or later.
260
261     Necessary to build GCC with the Graphite loop optimizations.  It
262     can be downloaded from <ftp://gcc.gnu.org/pub/gcc/infrastructure/>.
263     If an isl source distribution is found in a subdirectory of your
264     GCC sources named 'isl', it will be built together with GCC.
265     Alternatively, the '--with-isl' configure option should be used if
266     isl is not installed in your default library search path.
267
268Tools/packages necessary for modifying GCC
269==========================================
270
271autoconf version 2.64
272GNU m4 version 1.4.6 (or later)
273
274     Necessary when modifying 'configure.ac', 'aclocal.m4', etc. to
275     regenerate 'configure' and 'config.in' files.
276
277automake version 1.11.6
278
279     Necessary when modifying a 'Makefile.am' file to regenerate its
280     associated 'Makefile.in'.
281
282     Much of GCC does not use automake, so directly edit the
283     'Makefile.in' file.  Specifically this applies to the 'gcc',
284     'intl', 'libcpp', 'libiberty', 'libobjc' directories as well as any
285     of their subdirectories.
286
287     For directories that use automake, GCC requires the latest release
288     in the 1.11 series, which is currently 1.11.6.  When regenerating a
289     directory to a newer version, please update all the directories
290     using an older 1.11 to the latest released version.
291
292     Note that 'automake' 1.11.6 is incompatible with 'perl' version
293     5.6.26.
294
295gettext version 0.14.5 (or later)
296
297     Needed to regenerate 'gcc.pot'.
298
299gperf version 2.7.2 (or later)
300
301     Necessary when modifying 'gperf' input files, e.g.
302     'gcc/cp/cfns.gperf' to regenerate its associated header file, e.g.
303     'gcc/cp/cfns.h'.
304
305DejaGnu 1.4.4
306Expect
307Tcl
308
309     Necessary to run the GCC testsuite; see the section on testing for
310     details.  Tcl 8.6 has a known regression in RE pattern handling
311     that make parts of the testsuite fail.  See
312     <http://core.tcl.tk/tcl/tktview/267b7e2334ee2e9de34c4b00d6e72e2f1997085f>
313     for more information.  This bug has been fixed in 8.6.1.
314
315autogen version 5.5.4 (or later) and
316guile version 1.4.1 (or later)
317
318     Necessary to regenerate 'fixinc/fixincl.x' from
319     'fixinc/inclhack.def' and 'fixinc/*.tpl'.
320
321     Necessary to run 'make check' for 'fixinc'.
322
323     Necessary to regenerate the top level 'Makefile.in' file from
324     'Makefile.tpl' and 'Makefile.def'.
325
326Flex version 2.5.4 (or later)
327
328     Necessary when modifying '*.l' files.
329
330     Necessary to build GCC during development because the generated
331     output files are not included in the version-controlled source
332     repository.  They are included in releases.
333
334Texinfo version 4.7 (or later)
335
336     Necessary for running 'makeinfo' when modifying '*.texi' files to
337     test your changes.
338
339     Necessary for running 'make dvi' or 'make pdf' to create printable
340     documentation in DVI or PDF format.  Texinfo version 4.8 or later
341     is required for 'make pdf'.
342
343     Necessary to build GCC documentation during development because the
344     generated output files are not included in the repository.  They
345     are included in releases.
346
347TeX (any working version)
348
349     Necessary for running 'texi2dvi' and 'texi2pdf', which are used
350     when running 'make dvi' or 'make pdf' to create DVI or PDF files,
351     respectively.
352
353Sphinx version 1.0 (or later)
354
355     Necessary to regenerate 'jit/docs/_build/texinfo' from the '.rst'
356     files in the directories below 'jit/docs'.
357
358git (any version)
359SSH (any version)
360
361     Necessary to access the source repository.  Public releases and
362     weekly snapshots of the development sources are also available via
363     HTTPS.
364
365GNU diffutils version 2.7 (or later)
366
367     Useful when submitting patches for the GCC source code.
368
369patch version 2.5.4 (or later)
370
371     Necessary when applying patches, created with 'diff', to one's own
372     sources.
373
374
375File: gccinstall.info,  Node: Downloading the source,  Next: Configuration,  Prev: Prerequisites,  Up: Installing GCC
376
3773 Downloading GCC
378*****************
379
380GCC is distributed via git and via HTTPS as tarballs compressed with
381'gzip' or 'bzip2'.
382
383   Please refer to the releases web page for information on how to
384obtain GCC.
385
386   The source distribution includes the C, C++, Objective-C, Fortran,
387and Ada (in the case of GCC 3.1 and later) compilers, as well as runtime
388libraries for C++, Objective-C, and Fortran.  For previous versions
389these were downloadable as separate components such as the core GCC
390distribution, which included the C language front end and shared
391components, and language-specific distributions including the language
392front end and the language runtime (where appropriate).
393
394   If you also intend to build binutils (either to upgrade an existing
395installation or for use in place of the corresponding tools of your OS),
396unpack the binutils distribution either in the same directory or a
397separate one.  In the latter case, add symbolic links to any components
398of the binutils you intend to build alongside the compiler ('bfd',
399'binutils', 'gas', 'gprof', 'ld', 'opcodes', ...) to the directory
400containing the GCC sources.
401
402   Likewise the GMP, MPFR and MPC libraries can be automatically built
403together with GCC. You may simply run the
404'contrib/download_prerequisites' script in the GCC source directory to
405set up everything.  Otherwise unpack the GMP, MPFR and/or MPC source
406distributions in the directory containing the GCC sources and rename
407their directories to 'gmp', 'mpfr' and 'mpc', respectively (or use
408symbolic links with the same name).
409
410
411File: gccinstall.info,  Node: Configuration,  Next: Building,  Prev: Downloading the source,  Up: Installing GCC
412
4134 Installing GCC: Configuration
414*******************************
415
416Like most GNU software, GCC must be configured before it can be built.
417This document describes the recommended configuration procedure for both
418native and cross targets.
419
420   We use SRCDIR to refer to the toplevel source directory for GCC; we
421use OBJDIR to refer to the toplevel build/object directory.
422
423   If you obtained the sources by cloning the repository, SRCDIR must
424refer to the top 'gcc' directory, the one where the 'MAINTAINERS' file
425can be found, and not its 'gcc' subdirectory, otherwise the build will
426fail.
427
428   If either SRCDIR or OBJDIR is located on an automounted NFS file
429system, the shell's built-in 'pwd' command will return temporary
430pathnames.  Using these can lead to various sorts of build problems.  To
431avoid this issue, set the 'PWDCMD' environment variable to an
432automounter-aware 'pwd' command, e.g., 'pawd' or 'amq -w', during the
433configuration and build phases.
434
435   First, we *highly* recommend that GCC be built into a separate
436directory from the sources which does *not* reside within the source
437tree.  This is how we generally build GCC; building where SRCDIR ==
438OBJDIR should still work, but doesn't get extensive testing; building
439where OBJDIR is a subdirectory of SRCDIR is unsupported.
440
441   If you have previously built GCC in the same directory for a
442different target machine, do 'make distclean' to delete all files that
443might be invalid.  One of the files this deletes is 'Makefile'; if 'make
444distclean' complains that 'Makefile' does not exist or issues a message
445like "don't know how to make distclean" it probably means that the
446directory is already suitably clean.  However, with the recommended
447method of building in a separate OBJDIR, you should simply use a
448different OBJDIR for each target.
449
450   Second, when configuring a native system, either 'cc' or 'gcc' must
451be in your path or you must set 'CC' in your environment before running
452configure.  Otherwise the configuration scripts may fail.
453
454   To configure GCC:
455
456     % mkdir OBJDIR
457     % cd OBJDIR
458     % SRCDIR/configure [OPTIONS] [TARGET]
459
460Distributor options
461===================
462
463If you will be distributing binary versions of GCC, with modifications
464to the source code, you should use the options described in this section
465to make clear that your version contains modifications.
466
467'--with-pkgversion=VERSION'
468     Specify a string that identifies your package.  You may wish to
469     include a build number or build date.  This version string will be
470     included in the output of 'gcc --version'.  This suffix does not
471     replace the default version string, only the 'GCC' part.
472
473     The default value is 'GCC'.
474
475'--with-bugurl=URL'
476     Specify the URL that users should visit if they wish to report a
477     bug.  You are of course welcome to forward bugs reported to you to
478     the FSF, if you determine that they are not bugs in your
479     modifications.
480
481     The default value refers to the FSF's GCC bug tracker.
482
483Target specification
484====================
485
486   * GCC has code to correctly determine the correct value for TARGET
487     for nearly all native systems.  Therefore, we highly recommend you
488     do not provide a configure target when configuring a native
489     compiler.
490
491   * TARGET must be specified as '--target=TARGET' when configuring a
492     cross compiler; examples of valid targets would be m68k-elf,
493     sh-elf, etc.
494
495   * Specifying just TARGET instead of '--target=TARGET' implies that
496     the host defaults to TARGET.
497
498Options specification
499=====================
500
501Use OPTIONS to override several configure time options for GCC.  A list
502of supported OPTIONS follows; 'configure --help' may list other options,
503but those not listed below may not work and should not normally be used.
504
505   Note that each '--enable' option has a corresponding '--disable'
506option and that each '--with' option has a corresponding '--without'
507option.
508
509'--prefix=DIRNAME'
510     Specify the toplevel installation directory.  This is the
511     recommended way to install the tools into a directory other than
512     the default.  The toplevel installation directory defaults to
513     '/usr/local'.
514
515     We *highly* recommend against DIRNAME being the same or a
516     subdirectory of OBJDIR or vice versa.  If specifying a directory
517     beneath a user's home directory tree, some shells will not expand
518     DIRNAME correctly if it contains the '~' metacharacter; use '$HOME'
519     instead.
520
521     The following standard 'autoconf' options are supported.  Normally
522     you should not need to use these options.
523     '--exec-prefix=DIRNAME'
524          Specify the toplevel installation directory for
525          architecture-dependent files.  The default is 'PREFIX'.
526
527     '--bindir=DIRNAME'
528          Specify the installation directory for the executables called
529          by users (such as 'gcc' and 'g++').  The default is
530          'EXEC-PREFIX/bin'.
531
532     '--libdir=DIRNAME'
533          Specify the installation directory for object code libraries
534          and internal data files of GCC.  The default is
535          'EXEC-PREFIX/lib'.
536
537     '--libexecdir=DIRNAME'
538          Specify the installation directory for internal executables of
539          GCC.  The default is 'EXEC-PREFIX/libexec'.
540
541     '--with-slibdir=DIRNAME'
542          Specify the installation directory for the shared libgcc
543          library.  The default is 'LIBDIR'.
544
545     '--datarootdir=DIRNAME'
546          Specify the root of the directory tree for read-only
547          architecture-independent data files referenced by GCC.  The
548          default is 'PREFIX/share'.
549
550     '--infodir=DIRNAME'
551          Specify the installation directory for documentation in info
552          format.  The default is 'DATAROOTDIR/info'.
553
554     '--datadir=DIRNAME'
555          Specify the installation directory for some
556          architecture-independent data files referenced by GCC.  The
557          default is 'DATAROOTDIR'.
558
559     '--docdir=DIRNAME'
560          Specify the installation directory for documentation files
561          (other than Info) for GCC.  The default is 'DATAROOTDIR/doc'.
562
563     '--htmldir=DIRNAME'
564          Specify the installation directory for HTML documentation
565          files.  The default is 'DOCDIR'.
566
567     '--pdfdir=DIRNAME'
568          Specify the installation directory for PDF documentation
569          files.  The default is 'DOCDIR'.
570
571     '--mandir=DIRNAME'
572          Specify the installation directory for manual pages.  The
573          default is 'DATAROOTDIR/man'.  (Note that the manual pages are
574          only extracts from the full GCC manuals, which are provided in
575          Texinfo format.  The manpages are derived by an automatic
576          conversion process from parts of the full manual.)
577
578     '--with-gxx-include-dir=DIRNAME'
579          Specify the installation directory for G++ header files.  The
580          default depends on other configuration options, and differs
581          between cross and native configurations.
582
583     '--with-specs=SPECS'
584          Specify additional command line driver SPECS. This can be
585          useful if you need to turn on a non-standard feature by
586          default without modifying the compiler's source code, for
587          instance
588          '--with-specs=%{!fcommon:%{!fno-common:-fno-common}}'.  *Note
589          Specifying subprocesses and the switches to pass to them:
590          (gcc)Spec Files,
591
592'--program-prefix=PREFIX'
593     GCC supports some transformations of the names of its programs when
594     installing them.  This option prepends PREFIX to the names of
595     programs to install in BINDIR (see above).  For example, specifying
596     '--program-prefix=foo-' would result in 'gcc' being installed as
597     '/usr/local/bin/foo-gcc'.
598
599'--program-suffix=SUFFIX'
600     Appends SUFFIX to the names of programs to install in BINDIR (see
601     above).  For example, specifying '--program-suffix=-3.1' would
602     result in 'gcc' being installed as '/usr/local/bin/gcc-3.1'.
603
604'--program-transform-name=PATTERN'
605     Applies the 'sed' script PATTERN to be applied to the names of
606     programs to install in BINDIR (see above).  PATTERN has to consist
607     of one or more basic 'sed' editing commands, separated by
608     semicolons.  For example, if you want the 'gcc' program name to be
609     transformed to the installed program '/usr/local/bin/myowngcc' and
610     the 'g++' program name to be transformed to
611     '/usr/local/bin/gspecial++' without changing other program names,
612     you could use the pattern
613     '--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/''
614     to achieve this effect.
615
616     All three options can be combined and used together, resulting in
617     more complex conversion patterns.  As a basic rule, PREFIX (and
618     SUFFIX) are prepended (appended) before further transformations can
619     happen with a special transformation script PATTERN.
620
621     As currently implemented, this option only takes effect for native
622     builds; cross compiler binaries' names are not transformed even
623     when a transformation is explicitly asked for by one of these
624     options.
625
626     For native builds, some of the installed programs are also
627     installed with the target alias in front of their name, as in
628     'i686-pc-linux-gnu-gcc'.  All of the above transformations happen
629     before the target alias is prepended to the name--so, specifying
630     '--program-prefix=foo-' and 'program-suffix=-3.1', the resulting
631     binary would be installed as
632     '/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1'.
633
634     As a last shortcoming, none of the installed Ada programs are
635     transformed yet, which will be fixed in some time.
636
637'--with-local-prefix=DIRNAME'
638     Specify the installation directory for local include files.  The
639     default is '/usr/local'.  Specify this option if you want the
640     compiler to search directory 'DIRNAME/include' for locally
641     installed header files _instead_ of '/usr/local/include'.
642
643     You should specify '--with-local-prefix' *only* if your site has a
644     different convention (not '/usr/local') for where to put
645     site-specific files.
646
647     The default value for '--with-local-prefix' is '/usr/local'
648     regardless of the value of '--prefix'.  Specifying '--prefix' has
649     no effect on which directory GCC searches for local header files.
650     This may seem counterintuitive, but actually it is logical.
651
652     The purpose of '--prefix' is to specify where to _install GCC_. The
653     local header files in '/usr/local/include'--if you put any in that
654     directory--are not part of GCC.  They are part of other
655     programs--perhaps many others.  (GCC installs its own header files
656     in another directory which is based on the '--prefix' value.)
657
658     Both the local-prefix include directory and the GCC-prefix include
659     directory are part of GCC's "system include" directories.  Although
660     these two directories are not fixed, they need to be searched in
661     the proper order for the correct processing of the include_next
662     directive.  The local-prefix include directory is searched before
663     the GCC-prefix include directory.  Another characteristic of system
664     include directories is that pedantic warnings are turned off for
665     headers in these directories.
666
667     Some autoconf macros add '-I DIRECTORY' options to the compiler
668     command line, to ensure that directories containing installed
669     packages' headers are searched.  When DIRECTORY is one of GCC's
670     system include directories, GCC will ignore the option so that
671     system directories continue to be processed in the correct order.
672     This may result in a search order different from what was specified
673     but the directory will still be searched.
674
675     GCC automatically searches for ordinary libraries using
676     'GCC_EXEC_PREFIX'.  Thus, when the same installation prefix is used
677     for both GCC and packages, GCC will automatically search for both
678     headers and libraries.  This provides a configuration that is easy
679     to use.  GCC behaves in a manner similar to that when it is
680     installed as a system compiler in '/usr'.
681
682     Sites that need to install multiple versions of GCC may not want to
683     use the above simple configuration.  It is possible to use the
684     '--program-prefix', '--program-suffix' and
685     '--program-transform-name' options to install multiple versions
686     into a single directory, but it may be simpler to use different
687     prefixes and the '--with-local-prefix' option to specify the
688     location of the site-specific files for each version.  It will then
689     be necessary for users to specify explicitly the location of local
690     site libraries (e.g., with 'LIBRARY_PATH').
691
692     The same value can be used for both '--with-local-prefix' and
693     '--prefix' provided it is not '/usr'.  This can be used to avoid
694     the default search of '/usr/local/include'.
695
696     *Do not* specify '/usr' as the '--with-local-prefix'!  The
697     directory you use for '--with-local-prefix' *must not* contain any
698     of the system's standard header files.  If it did contain them,
699     certain programs would be miscompiled (including GNU Emacs, on
700     certain targets), because this would override and nullify the
701     header file corrections made by the 'fixincludes' script.
702
703     Indications are that people who use this option use it based on
704     mistaken ideas of what it is for.  People use it as if it specified
705     where to install part of GCC.  Perhaps they make this assumption
706     because installing GCC creates the directory.
707
708'--with-gcc-major-version-only'
709     Specifies that GCC should use only the major number rather than
710     MAJOR.MINOR.PATCHLEVEL in filesystem paths.
711
712'--with-native-system-header-dir=DIRNAME'
713     Specifies that DIRNAME is the directory that contains native system
714     header files, rather than '/usr/include'.  This option is most
715     useful if you are creating a compiler that should be isolated from
716     the system as much as possible.  It is most commonly used with the
717     '--with-sysroot' option and will cause GCC to search DIRNAME inside
718     the system root specified by that option.
719
720'--enable-shared[=PACKAGE[,...]]'
721     Build shared versions of libraries, if shared libraries are
722     supported on the target platform.  Unlike GCC 2.95.x and earlier,
723     shared libraries are enabled by default on all platforms that
724     support shared libraries.
725
726     If a list of packages is given as an argument, build shared
727     libraries only for the listed packages.  For other packages, only
728     static libraries will be built.  Package names currently recognized
729     in the GCC tree are 'libgcc' (also known as 'gcc'), 'libstdc++'
730     (not 'libstdc++-v3'), 'libffi', 'zlib', 'boehm-gc', 'ada',
731     'libada', 'libgo', and 'libobjc'.  Note 'libiberty' does not
732     support shared libraries at all.
733
734     Use '--disable-shared' to build only static libraries.  Note that
735     '--disable-shared' does not accept a list of package names as
736     argument, only '--enable-shared' does.
737
738     Contrast with '--enable-host-shared', which affects _host_ code.
739
740'--enable-host-shared'
741     Specify that the _host_ code should be built into
742     position-independent machine code (with -fPIC), allowing it to be
743     used within shared libraries, but yielding a slightly slower
744     compiler.
745
746     This option is required when building the libgccjit.so library.
747
748     Contrast with '--enable-shared', which affects _target_ libraries.
749
750'--with-gnu-as'
751     Specify that the compiler should assume that the assembler it finds
752     is the GNU assembler.  However, this does not modify the rules to
753     find an assembler and will result in confusion if the assembler
754     found is not actually the GNU assembler.  (Confusion may also
755     result if the compiler finds the GNU assembler but has not been
756     configured with '--with-gnu-as'.)  If you have more than one
757     assembler installed on your system, you may want to use this option
758     in connection with '--with-as=PATHNAME' or
759     '--with-build-time-tools=PATHNAME'.
760
761     The following systems are the only ones where it makes a difference
762     whether you use the GNU assembler.  On any other system,
763     '--with-gnu-as' has no effect.
764
765        * 'hppa1.0-ANY-ANY'
766        * 'hppa1.1-ANY-ANY'
767        * 'sparc-sun-solaris2.ANY'
768        * 'sparc64-ANY-solaris2.ANY'
769
770'--with-as=PATHNAME'
771     Specify that the compiler should use the assembler pointed to by
772     PATHNAME, rather than the one found by the standard rules to find
773     an assembler, which are:
774        * Unless GCC is being built with a cross compiler, check the
775          'LIBEXEC/gcc/TARGET/VERSION' directory.  LIBEXEC defaults to
776          'EXEC-PREFIX/libexec'; EXEC-PREFIX defaults to PREFIX, which
777          defaults to '/usr/local' unless overridden by the
778          '--prefix=PATHNAME' switch described above.  TARGET is the
779          target system triple, such as 'sparc-sun-solaris2.7', and
780          VERSION denotes the GCC version, such as 3.0.
781
782        * If the target system is the same that you are building on,
783          check operating system specific directories (e.g.
784          '/usr/ccs/bin' on Sun Solaris 2).
785
786        * Check in the 'PATH' for a tool whose name is prefixed by the
787          target system triple.
788
789        * Check in the 'PATH' for a tool whose name is not prefixed by
790          the target system triple, if the host and target system triple
791          are the same (in other words, we use a host tool if it can be
792          used for the target as well).
793
794     You may want to use '--with-as' if no assembler is installed in the
795     directories listed above, or if you have multiple assemblers
796     installed and want to choose one that is not found by the above
797     rules.
798
799'--with-gnu-ld'
800     Same as '--with-gnu-as' but for the linker.
801
802'--with-ld=PATHNAME'
803     Same as '--with-as' but for the linker.
804
805'--with-stabs'
806     Specify that stabs debugging information should be used instead of
807     whatever format the host normally uses.  Normally GCC uses the same
808     debug format as the host system.
809
810'--with-tls=DIALECT'
811     Specify the default TLS dialect, for systems were there is a
812     choice.  For ARM targets, possible values for DIALECT are 'gnu' or
813     'gnu2', which select between the original GNU dialect and the GNU
814     TLS descriptor-based dialect.
815
816'--enable-multiarch'
817     Specify whether to enable or disable multiarch support.  The
818     default is to check for glibc start files in a multiarch location,
819     and enable it if the files are found.  The auto detection is
820     enabled for native builds, and for cross builds configured with
821     '--with-sysroot', and without '--with-native-system-header-dir'.
822     More documentation about multiarch can be found at
823     <https://wiki.debian.org/Multiarch>.
824
825'--enable-sjlj-exceptions'
826     Force use of the 'setjmp'/'longjmp'-based scheme for exceptions.
827     'configure' ordinarily picks the correct value based on the
828     platform.  Only use this option if you are sure you need a
829     different setting.
830
831'--enable-vtable-verify'
832     Specify whether to enable or disable the vtable verification
833     feature.  Enabling this feature causes libstdc++ to be built with
834     its virtual calls in verifiable mode.  This means that, when linked
835     with libvtv, every virtual call in libstdc++ will verify the vtable
836     pointer through which the call will be made before actually making
837     the call.  If not linked with libvtv, the verifier will call stub
838     functions (in libstdc++ itself) and do nothing.  If vtable
839     verification is disabled, then libstdc++ is not built with its
840     virtual calls in verifiable mode at all.  However the libvtv
841     library will still be built (see '--disable-libvtv' to turn off
842     building libvtv).  '--disable-vtable-verify' is the default.
843
844'--disable-multilib'
845     Specify that multiple target libraries to support different target
846     variants, calling conventions, etc. should not be built.  The
847     default is to build a predefined set of them.
848
849     Some targets provide finer-grained control over which multilibs are
850     built (e.g., '--disable-softfloat'):
851     'arm-*-*'
852          fpu, 26bit, underscore, interwork, biendian, nofmult.
853
854     'm68*-*-*'
855          softfloat, m68881, m68000, m68020.
856
857     'mips*-*-*'
858          single-float, biendian, softfloat.
859
860     'powerpc*-*-*, rs6000*-*-*'
861          aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos,
862          biendian, sysv, aix.
863
864'--with-multilib-list=LIST'
865'--without-multilib-list'
866     Specify what multilibs to build.  LIST is a comma separated list of
867     values, possibly consisting of a single value.  Currently only
868     implemented for aarch64*-*-*, arm*-*-*, sh*-*-* and
869     x86-64-*-linux*.  The accepted alues and meaning for each target is
870     given below.
871
872     'aarch64*-*-*'
873          LIST is a comma separated list of 'ilp32', and 'lp64' to
874          enable ILP32 and LP64 run-time libraries, respectively.  If
875          LIST is empty, then there will be no multilibs and only the
876          default run-time library will be built.  If LIST is 'default'
877          or -with-multilib-list= is not specified, then the default set
878          of libraries is selected based on the value of '--target'.
879
880     'arm*-*-*'
881          LIST is a comma separated list of 'aprofile' and 'rmprofile'
882          to build multilibs for A or R and M architecture profiles
883          respectively.  Note that, due to some limitation of the
884          current multilib framework, using the combined
885          'aprofile,rmprofile' multilibs selects in some cases a less
886          optimal multilib than when using the multilib profile for the
887          architecture targetted.  The special value 'default' is also
888          accepted and is equivalent to omitting the option, ie.  only
889          the default run-time library will be enabled.
890
891          The table below gives the combination of ISAs, architectures,
892          FPUs and floating-point ABIs for which multilibs are built for
893          each accepted value.  The union of these options is considered
894          when specifying both 'aprofile' and 'rmprofile'.
895
896          Option      aprofile             rmprofile
897          ISAs        '-marm' and          '-mthumb'
898                      '-mthumb'
899          Architecturesdefault             default architecture
900                      architecture         '-march=armv6s-m'
901                      '-march=armv7-a'     '-march=armv7-m'
902                      '-march=armv7ve'     '-march=armv7e-m'
903                      '-march=armv8-a'     '-march=armv8-m.base'
904                                           '-march=armv8-m.main'
905                                           '-march=armv7'
906          FPUs        none                 none
907                      '-mfpu=vfpv3-d16'    '-mfpu=vfpv3-d16'
908                      '-mfpu=neon'         '-mfpu=fpv4-sp-d16'
909                      '-mfpu=vfpv4-d16'    '-mfpu=fpv5-sp-d16'
910                      '-mfpu=neon-vfpv4'   '-mfpu=fpv5-d16'
911                      '-mfpu=neon-fp-armv8'
912          floating-point'-mfloat-abi=soft' '-mfloat-abi=soft'
913          ABIs        '-mfloat-abi=softfp' '-mfloat-abi=softfp'
914                      '-mfloat-abi=hard'   '-mfloat-abi=hard'
915
916     'sh*-*-*'
917          LIST is a comma separated list of CPU names.  These must be of
918          the form 'sh*' or 'm*' (in which case they match the compiler
919          option for that processor).  The list should not contain any
920          endian options - these are handled by '--with-endian'.
921
922          If LIST is empty, then there will be no multilibs for extra
923          processors.  The multilib for the secondary endian remains
924          enabled.
925
926          As a special case, if an entry in the list starts with a '!'
927          (exclamation point), then it is added to the list of excluded
928          multilibs.  Entries of this sort should be compatible with
929          'MULTILIB_EXCLUDES' (once the leading '!' has been stripped).
930
931          If '--with-multilib-list' is not given, then a default set of
932          multilibs is selected based on the value of '--target'.  This
933          is usually the complete set of libraries, but some targets
934          imply a more specialized subset.
935
936          Example 1: to configure a compiler for SH4A only, but
937          supporting both endians, with little endian being the default:
938               --with-cpu=sh4a --with-endian=little,big --with-multilib-list=
939
940          Example 2: to configure a compiler for both SH4A and
941          SH4AL-DSP, but with only little endian SH4AL:
942               --with-cpu=sh4a --with-endian=little,big \
943               --with-multilib-list=sh4al,!mb/m4al
944
945     'x86-64-*-linux*'
946          LIST is a comma separated list of 'm32', 'm64' and 'mx32' to
947          enable 32-bit, 64-bit and x32 run-time libraries,
948          respectively.  If LIST is empty, then there will be no
949          multilibs and only the default run-time library will be
950          enabled.
951
952          If '--with-multilib-list' is not given, then only 32-bit and
953          64-bit run-time libraries will be enabled.
954
955'--with-endian=ENDIANS'
956     Specify what endians to use.  Currently only implemented for
957     sh*-*-*.
958
959     ENDIANS may be one of the following:
960     'big'
961          Use big endian exclusively.
962     'little'
963          Use little endian exclusively.
964     'big,little'
965          Use big endian by default.  Provide a multilib for little
966          endian.
967     'little,big'
968          Use little endian by default.  Provide a multilib for big
969          endian.
970
971'--enable-threads'
972     Specify that the target supports threads.  This affects the
973     Objective-C compiler and runtime library, and exception handling
974     for other languages like C++.  On some systems, this is the
975     default.
976
977     In general, the best (and, in many cases, the only known) threading
978     model available will be configured for use.  Beware that on some
979     systems, GCC has not been taught what threading models are
980     generally available for the system.  In this case,
981     '--enable-threads' is an alias for '--enable-threads=single'.
982
983'--disable-threads'
984     Specify that threading support should be disabled for the system.
985     This is an alias for '--enable-threads=single'.
986
987'--enable-threads=LIB'
988     Specify that LIB is the thread support library.  This affects the
989     Objective-C compiler and runtime library, and exception handling
990     for other languages like C++.  The possibilities for LIB are:
991
992     'aix'
993          AIX thread support.
994     'dce'
995          DCE thread support.
996     'lynx'
997          LynxOS thread support.
998     'mipssde'
999          MIPS SDE thread support.
1000     'no'
1001          This is an alias for 'single'.
1002     'posix'
1003          Generic POSIX/Unix98 thread support.
1004     'rtems'
1005          RTEMS thread support.
1006     'single'
1007          Disable thread support, should work for all platforms.
1008     'tpf'
1009          TPF thread support.
1010     'vxworks'
1011          VxWorks thread support.
1012     'win32'
1013          Microsoft Win32 API thread support.
1014
1015'--enable-tls'
1016     Specify that the target supports TLS (Thread Local Storage).
1017     Usually configure can correctly determine if TLS is supported.  In
1018     cases where it guesses incorrectly, TLS can be explicitly enabled
1019     or disabled with '--enable-tls' or '--disable-tls'.  This can
1020     happen if the assembler supports TLS but the C library does not, or
1021     if the assumptions made by the configure test are incorrect.
1022
1023'--disable-tls'
1024     Specify that the target does not support TLS. This is an alias for
1025     '--enable-tls=no'.
1026
1027'--with-cpu=CPU'
1028'--with-cpu-32=CPU'
1029'--with-cpu-64=CPU'
1030     Specify which cpu variant the compiler should generate code for by
1031     default.  CPU will be used as the default value of the '-mcpu='
1032     switch.  This option is only supported on some targets, including
1033     ARC, ARM, i386, M68k, PowerPC, and SPARC.  It is mandatory for ARC.
1034     The '--with-cpu-32' and '--with-cpu-64' options specify separate
1035     default CPUs for 32-bit and 64-bit modes; these options are only
1036     supported for i386, x86-64, PowerPC, and SPARC.
1037
1038'--with-schedule=CPU'
1039'--with-arch=CPU'
1040'--with-arch-32=CPU'
1041'--with-arch-64=CPU'
1042'--with-tune=CPU'
1043'--with-tune-32=CPU'
1044'--with-tune-64=CPU'
1045'--with-abi=ABI'
1046'--with-fpu=TYPE'
1047'--with-float=TYPE'
1048     These configure options provide default values for the
1049     '-mschedule=', '-march=', '-mtune=', '-mabi=', and '-mfpu=' options
1050     and for '-mhard-float' or '-msoft-float'.  As with '--with-cpu',
1051     which switches will be accepted and acceptable values of the
1052     arguments depend on the target.
1053
1054'--with-mode=MODE'
1055     Specify if the compiler should default to '-marm' or '-mthumb'.
1056     This option is only supported on ARM targets.
1057
1058'--with-stack-offset=NUM'
1059     This option sets the default for the -mstack-offset=NUM option, and
1060     will thus generally also control the setting of this option for
1061     libraries.  This option is only supported on Epiphany targets.
1062
1063'--with-fpmath=ISA'
1064     This options sets '-mfpmath=sse' by default and specifies the
1065     default ISA for floating-point arithmetics.  You can select either
1066     'sse' which enables '-msse2' or 'avx' which enables '-mavx' by
1067     default.  This option is only supported on i386 and x86-64 targets.
1068
1069'--with-fp-32=MODE'
1070     On MIPS targets, set the default value for the '-mfp' option when
1071     using the o32 ABI. The possibilities for MODE are:
1072     '32'
1073          Use the o32 FP32 ABI extension, as with the '-mfp32'
1074          command-line option.
1075     'xx'
1076          Use the o32 FPXX ABI extension, as with the '-mfpxx'
1077          command-line option.
1078     '64'
1079          Use the o32 FP64 ABI extension, as with the '-mfp64'
1080          command-line option.
1081     In the absence of this configuration option the default is to use
1082     the o32 FP32 ABI extension.
1083
1084'--with-odd-spreg-32'
1085     On MIPS targets, set the '-modd-spreg' option by default when using
1086     the o32 ABI.
1087
1088'--without-odd-spreg-32'
1089     On MIPS targets, set the '-mno-odd-spreg' option by default when
1090     using the o32 ABI. This is normally used in conjunction with
1091     '--with-fp-32=64' in order to target the o32 FP64A ABI extension.
1092
1093'--with-nan=ENCODING'
1094     On MIPS targets, set the default encoding convention to use for the
1095     special not-a-number (NaN) IEEE 754 floating-point data.  The
1096     possibilities for ENCODING are:
1097     'legacy'
1098          Use the legacy encoding, as with the '-mnan=legacy'
1099          command-line option.
1100     '2008'
1101          Use the 754-2008 encoding, as with the '-mnan=2008'
1102          command-line option.
1103     To use this configuration option you must have an assembler version
1104     installed that supports the '-mnan=' command-line option too.  In
1105     the absence of this configuration option the default convention is
1106     the legacy encoding, as when neither of the '-mnan=2008' and
1107     '-mnan=legacy' command-line options has been used.
1108
1109'--with-divide=TYPE'
1110     Specify how the compiler should generate code for checking for
1111     division by zero.  This option is only supported on the MIPS
1112     target.  The possibilities for TYPE are:
1113     'traps'
1114          Division by zero checks use conditional traps (this is the
1115          default on systems that support conditional traps).
1116     'breaks'
1117          Division by zero checks use the break instruction.
1118
1119'--with-llsc'
1120     On MIPS targets, make '-mllsc' the default when no '-mno-llsc'
1121     option is passed.  This is the default for Linux-based targets, as
1122     the kernel will emulate them if the ISA does not provide them.
1123
1124'--without-llsc'
1125     On MIPS targets, make '-mno-llsc' the default when no '-mllsc'
1126     option is passed.
1127
1128'--with-synci'
1129     On MIPS targets, make '-msynci' the default when no '-mno-synci'
1130     option is passed.
1131
1132'--without-synci'
1133     On MIPS targets, make '-mno-synci' the default when no '-msynci'
1134     option is passed.  This is the default.
1135
1136'--with-lxc1-sxc1'
1137     On MIPS targets, make '-mlxc1-sxc1' the default when no
1138     '-mno-lxc1-sxc1' option is passed.  This is the default.
1139
1140'--without-lxc1-sxc1'
1141     On MIPS targets, make '-mno-lxc1-sxc1' the default when no
1142     '-mlxc1-sxc1' option is passed.  The indexed load/store
1143     instructions are not directly a problem but can lead to unexpected
1144     behaviour when deployed in an application intended for a 32-bit
1145     address space but run on a 64-bit processor.  The issue is seen
1146     because all known MIPS 64-bit Linux kernels execute o32 and n32
1147     applications with 64-bit addressing enabled which affects the
1148     overflow behaviour of the indexed addressing mode.  GCC will assume
1149     that ordinary 32-bit arithmetic overflow behaviour is the same
1150     whether performed as an 'addu' instruction or as part of the
1151     address calculation in 'lwxc1' type instructions.  This assumption
1152     holds true in a pure 32-bit environment and can hold true in a
1153     64-bit environment if the address space is accurately set to be
1154     32-bit for o32 and n32.
1155
1156'--with-madd4'
1157     On MIPS targets, make '-mmadd4' the default when no '-mno-madd4'
1158     option is passed.  This is the default.
1159
1160'--without-madd4'
1161     On MIPS targets, make '-mno-madd4' the default when no '-mmadd4'
1162     option is passed.  The 'madd4' instruction family can be
1163     problematic when targeting a combination of cores that implement
1164     these instructions differently.  There are two known cores that
1165     implement these as fused operations instead of unfused (where
1166     unfused is normally expected).  Disabling these instructions is the
1167     only way to ensure compatible code is generated; this will incur a
1168     performance penalty.
1169
1170'--with-mips-plt'
1171     On MIPS targets, make use of copy relocations and PLTs.  These
1172     features are extensions to the traditional SVR4-based MIPS ABIs and
1173     require support from GNU binutils and the runtime C library.
1174
1175'--enable-__cxa_atexit'
1176     Define if you want to use __cxa_atexit, rather than atexit, to
1177     register C++ destructors for local statics and global objects.
1178     This is essential for fully standards-compliant handling of
1179     destructors, but requires __cxa_atexit in libc.  This option is
1180     currently only available on systems with GNU libc.  When enabled,
1181     this will cause '-fuse-cxa-atexit' to be passed by default.
1182
1183'--enable-gnu-indirect-function'
1184     Define if you want to enable the 'ifunc' attribute.  This option is
1185     currently only available on systems with GNU libc on certain
1186     targets.
1187
1188'--enable-target-optspace'
1189     Specify that target libraries should be optimized for code space
1190     instead of code speed.  This is the default for the m32r platform.
1191
1192'--with-cpp-install-dir=DIRNAME'
1193     Specify that the user visible 'cpp' program should be installed in
1194     'PREFIX/DIRNAME/cpp', in addition to BINDIR.
1195
1196'--enable-comdat'
1197     Enable COMDAT group support.  This is primarily used to override
1198     the automatically detected value.
1199
1200'--enable-initfini-array'
1201     Force the use of sections '.init_array' and '.fini_array' (instead
1202     of '.init' and '.fini') for constructors and destructors.  Option
1203     '--disable-initfini-array' has the opposite effect.  If neither
1204     option is specified, the configure script will try to guess whether
1205     the '.init_array' and '.fini_array' sections are supported and, if
1206     they are, use them.
1207
1208'--enable-link-mutex'
1209     When building GCC, use a mutex to avoid linking the compilers for
1210     multiple languages at the same time, to avoid thrashing on build
1211     systems with limited free memory.  The default is not to use such a
1212     mutex.
1213
1214'--enable-maintainer-mode'
1215     The build rules that regenerate the Autoconf and Automake output
1216     files as well as the GCC master message catalog 'gcc.pot' are
1217     normally disabled.  This is because it can only be rebuilt if the
1218     complete source tree is present.  If you have changed the sources
1219     and want to rebuild the catalog, configuring with
1220     '--enable-maintainer-mode' will enable this.  Note that you need a
1221     recent version of the 'gettext' tools to do so.
1222
1223'--disable-bootstrap'
1224     For a native build, the default configuration is to perform a
1225     3-stage bootstrap of the compiler when 'make' is invoked, testing
1226     that GCC can compile itself correctly.  If you want to disable this
1227     process, you can configure with '--disable-bootstrap'.
1228
1229'--enable-bootstrap'
1230     In special cases, you may want to perform a 3-stage build even if
1231     the target and host triplets are different.  This is possible when
1232     the host can run code compiled for the target (e.g. host is
1233     i686-linux, target is i486-linux).  Starting from GCC 4.2, to do
1234     this you have to configure explicitly with '--enable-bootstrap'.
1235
1236'--enable-generated-files-in-srcdir'
1237     Neither the .c and .h files that are generated from Bison and flex
1238     nor the info manuals and man pages that are built from the .texi
1239     files are present in the repository development tree.  When
1240     building GCC from that development tree, or from one of our
1241     snapshots, those generated files are placed in your build
1242     directory, which allows for the source to be in a readonly
1243     directory.
1244
1245     If you configure with '--enable-generated-files-in-srcdir' then
1246     those generated files will go into the source directory.  This is
1247     mainly intended for generating release or prerelease tarballs of
1248     the GCC sources, since it is not a requirement that the users of
1249     source releases to have flex, Bison, or makeinfo.
1250
1251'--enable-version-specific-runtime-libs'
1252     Specify that runtime libraries should be installed in the compiler
1253     specific subdirectory ('LIBDIR/gcc') rather than the usual places.
1254     In addition, 'libstdc++''s include files will be installed into
1255     'LIBDIR' unless you overruled it by using
1256     '--with-gxx-include-dir=DIRNAME'.  Using this option is
1257     particularly useful if you intend to use several versions of GCC in
1258     parallel.  This is currently supported by 'libgfortran',
1259     'libstdc++', and 'libobjc'.
1260
1261'--with-aix-soname='aix', 'svr4' or 'both''
1262     Traditional AIX shared library versioning (versioned 'Shared
1263     Object' files as members of unversioned 'Archive Library' files
1264     named 'lib.a') causes numerous headaches for package managers.
1265     However, 'Import Files' as members of 'Archive Library' files allow
1266     for *filename-based versioning* of shared libraries as seen on
1267     Linux/SVR4, where this is called the "SONAME". But as they prevent
1268     static linking, 'Import Files' may be used with 'Runtime Linking'
1269     only, where the linker does search for 'libNAME.so' before
1270     'libNAME.a' library filenames with the '-lNAME' linker flag.
1271
1272     For detailed information please refer to the AIX ld Command
1273     reference.
1274
1275     As long as shared library creation is enabled, upon:
1276     '--with-aix-soname=aix'
1277     '--with-aix-soname=both'
1278          A (traditional AIX) 'Shared Archive Library' file is created:
1279             * using the 'libNAME.a' filename scheme
1280             * with the 'Shared Object' file as archive member named
1281               'libNAME.so.V' (except for 'libgcc_s', where the 'Shared
1282               Object' file is named 'shr.o' for backwards
1283               compatibility), which
1284                  - is used for runtime loading from inside the
1285                    'libNAME.a' file
1286                  - is used for dynamic loading via
1287                    'dlopen("libNAME.a(libNAME.so.V)", RTLD_MEMBER)'
1288                  - is used for shared linking
1289                  - is used for static linking, so no separate 'Static
1290                    Archive Library' file is needed
1291     '--with-aix-soname=both'
1292     '--with-aix-soname=svr4'
1293          A (second) 'Shared Archive Library' file is created:
1294             * using the 'libNAME.so.V' filename scheme
1295             * with the 'Shared Object' file as archive member named
1296               'shr.o', which
1297                  - is created with the '-G linker flag'
1298                  - has the 'F_LOADONLY' flag set
1299                  - is used for runtime loading from inside the
1300                    'libNAME.so.V' file
1301                  - is used for dynamic loading via
1302                    'dlopen("libNAME.so.V(shr.o)", RTLD_MEMBER)'
1303             * with the 'Import File' as archive member named 'shr.imp',
1304               which
1305                  - refers to 'libNAME.so.V(shr.o)' as the "SONAME", to
1306                    be recorded in the 'Loader Section' of subsequent
1307                    binaries
1308                  - indicates whether 'libNAME.so.V(shr.o)' is 32 or 64
1309                    bit
1310                  - lists all the public symbols exported by
1311                    'lib.so.V(shr.o)', eventually decorated with the
1312                    ''weak' Keyword'
1313                  - is necessary for shared linking against
1314                    'lib.so.V(shr.o)'
1315          A symbolic link using the 'libNAME.so' filename scheme is
1316          created:
1317             * pointing to the 'libNAME.so.V' 'Shared Archive Library'
1318               file
1319             * to permit the 'ld Command' to find 'lib.so.V(shr.imp)'
1320               via the '-lNAME' argument (requires 'Runtime Linking' to
1321               be enabled)
1322             * to permit dynamic loading of 'lib.so.V(shr.o)' without
1323               the need to specify the version number via
1324               'dlopen("libNAME.so(shr.o)", RTLD_MEMBER)'
1325
1326     As long as static library creation is enabled, upon:
1327     '--with-aix-soname=svr4'
1328          A 'Static Archive Library' is created:
1329             * using the 'libNAME.a' filename scheme
1330             * with all the 'Static Object' files as archive members,
1331               which
1332                  - are used for static linking
1333
1334     While the aix-soname='svr4' option does not create 'Shared Object'
1335     files as members of unversioned 'Archive Library' files any more,
1336     package managers still are responsible to transfer 'Shared Object'
1337     files found as member of a previously installed unversioned
1338     'Archive Library' file into the newly installed 'Archive Library'
1339     file with the same filename.
1340
1341     _WARNING:_ Creating 'Shared Object' files with 'Runtime Linking'
1342     enabled may bloat the TOC, eventually leading to 'TOC overflow'
1343     errors, requiring the use of either the '-Wl,-bbigtoc' linker flag
1344     (seen to break with the 'GDB' debugger) or some of the TOC-related
1345     compiler flags, *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and
1346     PowerPC Options.
1347
1348     '--with-aix-soname' is currently supported by 'libgcc_s' only, so
1349     this option is still experimental and not for normal use yet.
1350
1351     Default is the traditional behavior '--with-aix-soname='aix''.
1352
1353'--enable-languages=LANG1,LANG2,...'
1354     Specify that only a particular subset of compilers and their
1355     runtime libraries should be built.  For a list of valid values for
1356     LANGN you can issue the following command in the 'gcc' directory of
1357     your GCC source tree:
1358          grep ^language= */config-lang.in
1359     Currently, you can use any of the following: 'all', 'default',
1360     'ada', 'c', 'c++', 'fortran', 'go', 'jit', 'lto', 'objc',
1361     'obj-c++'.  Building the Ada compiler has special requirements, see
1362     below.  If you do not pass this flag, or specify the option
1363     'default', then the default languages available in the 'gcc'
1364     sub-tree will be configured.  Ada, Go, Jit, and Objective-C++ are
1365     not default languages.  LTO is not a default language, but is built
1366     by default because '--enable-lto' is enabled by default.  The other
1367     languages are default languages.  If 'all' is specified, then all
1368     available languages are built.  An exception is 'jit' language,
1369     which requires '--enable-host-shared' to be included with 'all'.
1370
1371'--enable-stage1-languages=LANG1,LANG2,...'
1372     Specify that a particular subset of compilers and their runtime
1373     libraries should be built with the system C compiler during stage 1
1374     of the bootstrap process, rather than only in later stages with the
1375     bootstrapped C compiler.  The list of valid values is the same as
1376     for '--enable-languages', and the option 'all' will select all of
1377     the languages enabled by '--enable-languages'.  This option is
1378     primarily useful for GCC development; for instance, when a
1379     development version of the compiler cannot bootstrap due to
1380     compiler bugs, or when one is debugging front ends other than the C
1381     front end.  When this option is used, one can then build the target
1382     libraries for the specified languages with the stage-1 compiler by
1383     using 'make stage1-bubble all-target', or run the testsuite on the
1384     stage-1 compiler for the specified languages using 'make
1385     stage1-start check-gcc'.
1386
1387'--disable-libada'
1388     Specify that the run-time libraries and tools used by GNAT should
1389     not be built.  This can be useful for debugging, or for
1390     compatibility with previous Ada build procedures, when it was
1391     required to explicitly do a 'make -C gcc gnatlib_and_tools'.
1392
1393'--disable-libsanitizer'
1394     Specify that the run-time libraries for the various sanitizers
1395     should not be built.
1396
1397'--disable-libssp'
1398     Specify that the run-time libraries for stack smashing protection
1399     should not be built or linked against.  On many targets library
1400     support is provided by the C library instead.
1401
1402'--disable-libquadmath'
1403     Specify that the GCC quad-precision math library should not be
1404     built.  On some systems, the library is required to be linkable
1405     when building the Fortran front end, unless
1406     '--disable-libquadmath-support' is used.
1407
1408'--disable-libquadmath-support'
1409     Specify that the Fortran front end and 'libgfortran' do not add
1410     support for 'libquadmath' on systems supporting it.
1411
1412'--disable-libgomp'
1413     Specify that the GNU Offloading and Multi Processing Runtime
1414     Library should not be built.
1415
1416'--disable-libvtv'
1417     Specify that the run-time libraries used by vtable verification
1418     should not be built.
1419
1420'--with-dwarf2'
1421     Specify that the compiler should use DWARF 2 debugging information
1422     as the default.
1423
1424'--with-advance-toolchain=AT'
1425     On 64-bit PowerPC Linux systems, configure the compiler to use the
1426     header files, library files, and the dynamic linker from the
1427     Advance Toolchain release AT instead of the default versions that
1428     are provided by the Linux distribution.  In general, this option is
1429     intended for the developers of GCC, and it is not intended for
1430     general use.
1431
1432'--enable-targets=all'
1433'--enable-targets=TARGET_LIST'
1434     Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
1435     These are compilers that are able to generate either 64-bit or
1436     32-bit code.  Typically, the corresponding 32-bit target, e.g.
1437     powerpc-linux for powerpc64-linux, only generates 32-bit code.
1438     This option enables the 32-bit target to be a bi-arch compiler,
1439     which is useful when you want a bi-arch compiler that defaults to
1440     32-bit, and you are building a bi-arch or multi-arch binutils in a
1441     combined tree.  On mips-linux, this will build a tri-arch compiler
1442     (ABI o32/n32/64), defaulted to o32.  Currently, this option only
1443     affects sparc-linux, powerpc-linux, x86-linux, mips-linux and
1444     s390-linux.
1445
1446'--enable-default-pie'
1447     Turn on '-fPIE' and '-pie' by default.
1448
1449'--enable-secureplt'
1450     This option enables '-msecure-plt' by default for powerpc-linux.
1451     *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and PowerPC
1452     Options,
1453
1454'--enable-default-ssp'
1455     Turn on '-fstack-protector-strong' by default.
1456
1457'--enable-cld'
1458     This option enables '-mcld' by default for 32-bit x86 targets.
1459     *Note i386 and x86-64 Options: (gcc)i386 and x86-64 Options,
1460
1461'--enable-win32-registry'
1462'--enable-win32-registry=KEY'
1463'--disable-win32-registry'
1464     The '--enable-win32-registry' option enables Microsoft
1465     Windows-hosted GCC to look up installations paths in the registry
1466     using the following key:
1467
1468          HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\KEY
1469
1470     KEY defaults to GCC version number, and can be overridden by the
1471     '--enable-win32-registry=KEY' option.  Vendors and distributors who
1472     use custom installers are encouraged to provide a different key,
1473     perhaps one comprised of vendor name and GCC version number, to
1474     avoid conflict with existing installations.  This feature is
1475     enabled by default, and can be disabled by
1476     '--disable-win32-registry' option.  This option has no effect on
1477     the other hosts.
1478
1479'--nfp'
1480     Specify that the machine does not have a floating point unit.  This
1481     option only applies to 'm68k-sun-sunosN'.  On any other system,
1482     '--nfp' has no effect.
1483
1484'--enable-werror'
1485'--disable-werror'
1486'--enable-werror=yes'
1487'--enable-werror=no'
1488     When you specify this option, it controls whether certain files in
1489     the compiler are built with '-Werror' in bootstrap stage2 and
1490     later.  If you don't specify it, '-Werror' is turned on for the
1491     main development trunk.  However it defaults to off for release
1492     branches and final releases.  The specific files which get
1493     '-Werror' are controlled by the Makefiles.
1494
1495'--enable-checking'
1496'--disable-checking'
1497'--enable-checking=LIST'
1498     This option controls performing internal consistency checks in the
1499     compiler.  It does not change the generated code, but adds error
1500     checking of the requested complexity.  This slows down the compiler
1501     and may only work properly if you are building the compiler with
1502     GCC.
1503
1504     When the option is not specified, the active set of checks depends
1505     on context.  Namely, bootstrap stage 1 defaults to
1506     '--enable-checking=yes', builds from release branches or release
1507     archives default to '--enable-checking=release', and otherwise
1508     '--enable-checking=yes,extra' is used.  When the option is
1509     specified without a LIST, the result is the same as
1510     '--enable-checking=yes'.  Likewise, '--disable-checking' is
1511     equivalent to '--enable-checking=no'.
1512
1513     The categories of checks available in LIST are 'yes' (most common
1514     checks 'assert,misc,gc,gimple,rtlflag,runtime,tree,types'), 'no'
1515     (no checks at all), 'all' (all but 'valgrind'), 'release' (cheapest
1516     checks 'assert,runtime') or 'none' (same as 'no').  'release'
1517     checks are always on and to disable them '--disable-checking' or
1518     '--enable-checking=no[,<other checks>]' must be explicitly
1519     requested.  Disabling assertions makes the compiler and runtime
1520     slightly faster but increases the risk of undetected internal
1521     errors causing wrong code to be generated.
1522
1523     Individual checks can be enabled with these flags: 'assert', 'df',
1524     'extra', 'fold', 'gc', 'gcac', 'gimple', 'misc', 'rtl', 'rtlflag',
1525     'runtime', 'tree', 'types' and 'valgrind'.  'extra' extends 'misc'
1526     checking with extra checks that might affect code generation and
1527     should therefore not differ between stage1 and later stages in
1528     bootstrap.
1529
1530     The 'valgrind' check requires the external 'valgrind' simulator,
1531     available from <http://valgrind.org/>.  The 'rtl' checks are
1532     expensive and the 'df', 'gcac' and 'valgrind' checks are very
1533     expensive.
1534
1535'--disable-stage1-checking'
1536'--enable-stage1-checking'
1537'--enable-stage1-checking=LIST'
1538     This option affects only bootstrap build.  If no
1539     '--enable-checking' option is specified the stage1 compiler is
1540     built with 'yes' checking enabled, otherwise the stage1 checking
1541     flags are the same as specified by '--enable-checking'.  To build
1542     the stage1 compiler with different checking options use
1543     '--enable-stage1-checking'.  The list of checking options is the
1544     same as for '--enable-checking'.  If your system is too slow or too
1545     small to bootstrap a released compiler with checking for stage1
1546     enabled, you can use '--disable-stage1-checking' to disable
1547     checking for the stage1 compiler.
1548
1549'--enable-coverage'
1550'--enable-coverage=LEVEL'
1551     With this option, the compiler is built to collect self coverage
1552     information, every time it is run.  This is for internal
1553     development purposes, and only works when the compiler is being
1554     built with gcc.  The LEVEL argument controls whether the compiler
1555     is built optimized or not, values are 'opt' and 'noopt'.  For
1556     coverage analysis you want to disable optimization, for performance
1557     analysis you want to enable optimization.  When coverage is
1558     enabled, the default level is without optimization.
1559
1560'--enable-gather-detailed-mem-stats'
1561     When this option is specified more detailed information on memory
1562     allocation is gathered.  This information is printed when using
1563     '-fmem-report'.
1564
1565'--enable-valgrind-annotations'
1566     Mark selected memory related operations in the compiler when run
1567     under valgrind to suppress false positives.
1568
1569'--enable-nls'
1570'--disable-nls'
1571     The '--enable-nls' option enables Native Language Support (NLS),
1572     which lets GCC output diagnostics in languages other than American
1573     English.  Native Language Support is enabled by default if not
1574     doing a canadian cross build.  The '--disable-nls' option disables
1575     NLS.
1576
1577'--with-included-gettext'
1578     If NLS is enabled, the '--with-included-gettext' option causes the
1579     build procedure to prefer its copy of GNU 'gettext'.
1580
1581'--with-catgets'
1582     If NLS is enabled, and if the host lacks 'gettext' but has the
1583     inferior 'catgets' interface, the GCC build procedure normally
1584     ignores 'catgets' and instead uses GCC's copy of the GNU 'gettext'
1585     library.  The '--with-catgets' option causes the build procedure to
1586     use the host's 'catgets' in this situation.
1587
1588'--with-libiconv-prefix=DIR'
1589     Search for libiconv header files in 'DIR/include' and libiconv
1590     library files in 'DIR/lib'.
1591
1592'--enable-obsolete'
1593     Enable configuration for an obsoleted system.  If you attempt to
1594     configure GCC for a system (build, host, or target) which has been
1595     obsoleted, and you do not specify this flag, configure will halt
1596     with an error message.
1597
1598     All support for systems which have been obsoleted in one release of
1599     GCC is removed entirely in the next major release, unless someone
1600     steps forward to maintain the port.
1601
1602'--enable-decimal-float'
1603'--enable-decimal-float=yes'
1604'--enable-decimal-float=no'
1605'--enable-decimal-float=bid'
1606'--enable-decimal-float=dpd'
1607'--disable-decimal-float'
1608     Enable (or disable) support for the C decimal floating point
1609     extension that is in the IEEE 754-2008 standard.  This is enabled
1610     by default only on PowerPC, i386, and x86_64 GNU/Linux systems.
1611     Other systems may also support it, but require the user to
1612     specifically enable it.  You can optionally control which decimal
1613     floating point format is used (either 'bid' or 'dpd').  The 'bid'
1614     (binary integer decimal) format is default on i386 and x86_64
1615     systems, and the 'dpd' (densely packed decimal) format is default
1616     on PowerPC systems.
1617
1618'--enable-fixed-point'
1619'--disable-fixed-point'
1620     Enable (or disable) support for C fixed-point arithmetic.  This
1621     option is enabled by default for some targets (such as MIPS) which
1622     have hardware-support for fixed-point operations.  On other
1623     targets, you may enable this option manually.
1624
1625'--with-long-double-128'
1626     Specify if 'long double' type should be 128-bit by default on
1627     selected GNU/Linux architectures.  If using
1628     '--without-long-double-128', 'long double' will be by default
1629     64-bit, the same as 'double' type.  When neither of these configure
1630     options are used, the default will be 128-bit 'long double' when
1631     built against GNU C Library 2.4 and later, 64-bit 'long double'
1632     otherwise.
1633
1634'--with-long-double-format=ibm'
1635'--with-long-double-format=ieee'
1636     Specify whether 'long double' uses the IBM extended double format
1637     or the IEEE 128-bit floating point format on PowerPC Linux systems.
1638     This configuration switch will only work on little endian PowerPC
1639     Linux systems and on big endian 64-bit systems where the default
1640     cpu is at least power7 (i.e.  '--with-cpu=power7',
1641     '--with-cpu=power8', or '--with-cpu=power9' is used).
1642
1643     If you use the '--with-long-double-64' configuration option, the
1644     '--with-long-double-format=ibm' and
1645     '--with-long-double-format=ieee' options are ignored.
1646
1647     The default 'long double' format is to use IBM extended double.
1648     Until all of the libraries are converted to use IEEE 128-bit
1649     floating point, it is not recommended to use
1650     '--with-long-double-format=ieee'.
1651
1652     On little endian PowerPC Linux systems, if you explicitly set the
1653     'long double' type, it will build multilibs to allow you to select
1654     either 'long double' format, unless you disable multilibs with the
1655     '--disable-multilib' option.  At present, 'long double' multilibs
1656     are not built on big endian PowerPC Linux systems.  If you are
1657     building multilibs, you will need to configure the compiler using
1658     the '--with-system-zlib' option.
1659
1660     If you do not set the 'long double' type explicitly, no multilibs
1661     will be generated.
1662
1663'--enable-fdpic'
1664     On SH Linux systems, generate ELF FDPIC code.
1665
1666'--with-gmp=PATHNAME'
1667'--with-gmp-include=PATHNAME'
1668'--with-gmp-lib=PATHNAME'
1669'--with-mpfr=PATHNAME'
1670'--with-mpfr-include=PATHNAME'
1671'--with-mpfr-lib=PATHNAME'
1672'--with-mpc=PATHNAME'
1673'--with-mpc-include=PATHNAME'
1674'--with-mpc-lib=PATHNAME'
1675     If you want to build GCC but do not have the GMP library, the MPFR
1676     library and/or the MPC library installed in a standard location and
1677     do not have their sources present in the GCC source tree then you
1678     can explicitly specify the directory where they are installed
1679     ('--with-gmp=GMPINSTALLDIR', '--with-mpfr=MPFRINSTALLDIR',
1680     '--with-mpc=MPCINSTALLDIR').  The '--with-gmp=GMPINSTALLDIR' option
1681     is shorthand for '--with-gmp-lib=GMPINSTALLDIR/lib' and
1682     '--with-gmp-include=GMPINSTALLDIR/include'.  Likewise the
1683     '--with-mpfr=MPFRINSTALLDIR' option is shorthand for
1684     '--with-mpfr-lib=MPFRINSTALLDIR/lib' and
1685     '--with-mpfr-include=MPFRINSTALLDIR/include', also the
1686     '--with-mpc=MPCINSTALLDIR' option is shorthand for
1687     '--with-mpc-lib=MPCINSTALLDIR/lib' and
1688     '--with-mpc-include=MPCINSTALLDIR/include'.  If these shorthand
1689     assumptions are not correct, you can use the explicit include and
1690     lib options directly.  You might also need to ensure the shared
1691     libraries can be found by the dynamic linker when building and
1692     using GCC, for example by setting the runtime shared library path
1693     variable ('LD_LIBRARY_PATH' on GNU/Linux and Solaris systems).
1694
1695     These flags are applicable to the host platform only.  When
1696     building a cross compiler, they will not be used to configure
1697     target libraries.
1698
1699'--with-isl=PATHNAME'
1700'--with-isl-include=PATHNAME'
1701'--with-isl-lib=PATHNAME'
1702     If you do not have the isl library installed in a standard location
1703     and you want to build GCC, you can explicitly specify the directory
1704     where it is installed ('--with-isl=ISLINSTALLDIR').  The
1705     '--with-isl=ISLINSTALLDIR' option is shorthand for
1706     '--with-isl-lib=ISLINSTALLDIR/lib' and
1707     '--with-isl-include=ISLINSTALLDIR/include'.  If this shorthand
1708     assumption is not correct, you can use the explicit include and lib
1709     options directly.
1710
1711     These flags are applicable to the host platform only.  When
1712     building a cross compiler, they will not be used to configure
1713     target libraries.
1714
1715'--with-stage1-ldflags=FLAGS'
1716     This option may be used to set linker flags to be used when linking
1717     stage 1 of GCC. These are also used when linking GCC if configured
1718     with '--disable-bootstrap'.  If '--with-stage1-libs' is not set to
1719     a value, then the default is '-static-libstdc++ -static-libgcc', if
1720     supported.
1721
1722'--with-stage1-libs=LIBS'
1723     This option may be used to set libraries to be used when linking
1724     stage 1 of GCC. These are also used when linking GCC if configured
1725     with '--disable-bootstrap'.
1726
1727'--with-boot-ldflags=FLAGS'
1728     This option may be used to set linker flags to be used when linking
1729     stage 2 and later when bootstrapping GCC. If -with-boot-libs is not
1730     is set to a value, then the default is '-static-libstdc++
1731     -static-libgcc'.
1732
1733'--with-boot-libs=LIBS'
1734     This option may be used to set libraries to be used when linking
1735     stage 2 and later when bootstrapping GCC.
1736
1737'--with-debug-prefix-map=MAP'
1738     Convert source directory names using '-fdebug-prefix-map' when
1739     building runtime libraries.  'MAP' is a space-separated list of
1740     maps of the form 'OLD=NEW'.
1741
1742'--enable-linker-build-id'
1743     Tells GCC to pass '--build-id' option to the linker for all final
1744     links (links performed without the '-r' or '--relocatable' option),
1745     if the linker supports it.  If you specify
1746     '--enable-linker-build-id', but your linker does not support
1747     '--build-id' option, a warning is issued and the
1748     '--enable-linker-build-id' option is ignored.  The default is off.
1749
1750'--with-linker-hash-style=CHOICE'
1751     Tells GCC to pass '--hash-style=CHOICE' option to the linker for
1752     all final links.  CHOICE can be one of 'sysv', 'gnu', and 'both'
1753     where 'sysv' is the default.
1754
1755'--enable-gnu-unique-object'
1756'--disable-gnu-unique-object'
1757     Tells GCC to use the gnu_unique_object relocation for C++ template
1758     static data members and inline function local statics.  Enabled by
1759     default for a toolchain with an assembler that accepts it and GLIBC
1760     2.11 or above, otherwise disabled.
1761
1762'--with-diagnostics-color=CHOICE'
1763     Tells GCC to use CHOICE as the default for '-fdiagnostics-color='
1764     option (if not used explicitly on the command line).  CHOICE can be
1765     one of 'never', 'auto', 'always', and 'auto-if-env' where 'auto' is
1766     the default.  'auto-if-env' means that '-fdiagnostics-color=auto'
1767     will be the default if 'GCC_COLORS' is present and non-empty in the
1768     environment, and '-fdiagnostics-color=never' otherwise.
1769
1770'--enable-lto'
1771'--disable-lto'
1772     Enable support for link-time optimization (LTO). This is enabled by
1773     default, and may be disabled using '--disable-lto'.
1774
1775'--enable-linker-plugin-configure-flags=FLAGS'
1776'--enable-linker-plugin-flags=FLAGS'
1777     By default, linker plugins (such as the LTO plugin) are built for
1778     the host system architecture.  For the case that the linker has a
1779     different (but run-time compatible) architecture, these flags can
1780     be specified to build plugins that are compatible to the linker.
1781     For example, if you are building GCC for a 64-bit x86_64
1782     ('x86_64-unknown-linux-gnu') host system, but have a 32-bit x86
1783     GNU/Linux ('i686-pc-linux-gnu') linker executable (which is
1784     executable on the former system), you can configure GCC as follows
1785     for getting compatible linker plugins:
1786
1787          % SRCDIR/configure \
1788              --host=x86_64-unknown-linux-gnu \
1789              --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
1790              --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
1791
1792'--with-plugin-ld=PATHNAME'
1793     Enable an alternate linker to be used at link-time optimization
1794     (LTO) link time when '-fuse-linker-plugin' is enabled.  This linker
1795     should have plugin support such as gold starting with version 2.20
1796     or GNU ld starting with version 2.21.  See '-fuse-linker-plugin'
1797     for details.
1798
1799'--enable-canonical-system-headers'
1800'--disable-canonical-system-headers'
1801     Enable system header path canonicalization for 'libcpp'.  This can
1802     produce shorter header file paths in diagnostics and dependency
1803     output files, but these changed header paths may conflict with some
1804     compilation environments.  Enabled by default, and may be disabled
1805     using '--disable-canonical-system-headers'.
1806
1807'--with-glibc-version=MAJOR.MINOR'
1808     Tell GCC that when the GNU C Library (glibc) is used on the target
1809     it will be version MAJOR.MINOR or later.  Normally this can be
1810     detected from the C library's header files, but this option may be
1811     needed when bootstrapping a cross toolchain without the header
1812     files available for building the initial bootstrap compiler.
1813
1814     If GCC is configured with some multilibs that use glibc and some
1815     that do not, this option applies only to the multilibs that use
1816     glibc.  However, such configurations may not work well as not all
1817     the relevant configuration in GCC is on a per-multilib basis.
1818
1819'--enable-as-accelerator-for=TARGET'
1820     Build as offload target compiler.  Specify offload host triple by
1821     TARGET.
1822
1823'--enable-offload-targets=TARGET1[=PATH1],...,TARGETN[=PATHN]'
1824     Enable offloading to targets TARGET1, ..., TARGETN.  Offload
1825     compilers are expected to be already installed.  Default search
1826     path for them is 'EXEC-PREFIX', but it can be changed by specifying
1827     paths PATH1, ..., PATHN.
1828
1829          % SRCDIR/configure \
1830              --enable-offload-target=i686-unknown-linux-gnu=/path/to/i686/compiler,x86_64-pc-linux-gnu
1831
1832     If 'hsa' is specified as one of the targets, the compiler will be
1833     built with support for HSA GPU accelerators.  Because the same
1834     compiler will emit the accelerator code, no path should be
1835     specified.
1836
1837'--with-hsa-runtime=PATHNAME'
1838'--with-hsa-runtime-include=PATHNAME'
1839'--with-hsa-runtime-lib=PATHNAME'
1840
1841     If you configure GCC with HSA offloading but do not have the HSA
1842     run-time library installed in a standard location then you can
1843     explicitly specify the directory where they are installed.  The
1844     '--with-hsa-runtime=HSAINSTALLDIR' option is a shorthand for
1845     '--with-hsa-runtime-lib=HSAINSTALLDIR/lib' and
1846     '--with-hsa-runtime-include=HSAINSTALLDIR/include'.
1847
1848'--enable-cet'
1849'--disable-cet'
1850     Enable building target run-time libraries with control-flow
1851     instrumentation, see '-fcf-protection' option.  When '--enable-cet'
1852     is specified target libraries are configured to add
1853     '-fcf-protection' and, if needed, other target specific options to
1854     a set of building options.
1855
1856     The option is disabled by default.  When '--enable-cet=auto' is
1857     used, it is enabled on Linux/x86 if target binutils supports 'Intel
1858     CET' instructions and disabled otherwise.  In this case the target
1859     libraries are configured to get additional '-fcf-protection'
1860     option.
1861
1862Cross-Compiler-Specific Options
1863-------------------------------
1864
1865The following options only apply to building cross compilers.
1866
1867'--with-sysroot'
1868'--with-sysroot=DIR'
1869     Tells GCC to consider DIR as the root of a tree that contains (a
1870     subset of) the root filesystem of the target operating system.
1871     Target system headers, libraries and run-time object files will be
1872     searched for in there.  More specifically, this acts as if
1873     '--sysroot=DIR' was added to the default options of the built
1874     compiler.  The specified directory is not copied into the install
1875     tree, unlike the options '--with-headers' and '--with-libs' that
1876     this option obsoletes.  The default value, in case '--with-sysroot'
1877     is not given an argument, is '${gcc_tooldir}/sys-root'.  If the
1878     specified directory is a subdirectory of '${exec_prefix}', then it
1879     will be found relative to the GCC binaries if the installation tree
1880     is moved.
1881
1882     This option affects the system root for the compiler used to build
1883     target libraries (which runs on the build system) and the compiler
1884     newly installed with 'make install'; it does not affect the
1885     compiler which is used to build GCC itself.
1886
1887     If you specify the '--with-native-system-header-dir=DIRNAME' option
1888     then the compiler will search that directory within DIRNAME for
1889     native system headers rather than the default '/usr/include'.
1890
1891'--with-build-sysroot'
1892'--with-build-sysroot=DIR'
1893     Tells GCC to consider DIR as the system root (see '--with-sysroot')
1894     while building target libraries, instead of the directory specified
1895     with '--with-sysroot'.  This option is only useful when you are
1896     already using '--with-sysroot'.  You can use '--with-build-sysroot'
1897     when you are configuring with '--prefix' set to a directory that is
1898     different from the one in which you are installing GCC and your
1899     target libraries.
1900
1901     This option affects the system root for the compiler used to build
1902     target libraries (which runs on the build system); it does not
1903     affect the compiler which is used to build GCC itself.
1904
1905     If you specify the '--with-native-system-header-dir=DIRNAME' option
1906     then the compiler will search that directory within DIRNAME for
1907     native system headers rather than the default '/usr/include'.
1908
1909'--with-headers'
1910'--with-headers=DIR'
1911     Deprecated in favor of '--with-sysroot'.  Specifies that target
1912     headers are available when building a cross compiler.  The DIR
1913     argument specifies a directory which has the target include files.
1914     These include files will be copied into the 'gcc' install
1915     directory.  _This option with the DIR argument is required_ when
1916     building a cross compiler, if 'PREFIX/TARGET/sys-include' doesn't
1917     pre-exist.  If 'PREFIX/TARGET/sys-include' does pre-exist, the DIR
1918     argument may be omitted.  'fixincludes' will be run on these files
1919     to make them compatible with GCC.
1920
1921'--without-headers'
1922     Tells GCC not use any target headers from a libc when building a
1923     cross compiler.  When crossing to GNU/Linux, you need the headers
1924     so GCC can build the exception handling for libgcc.
1925
1926'--with-libs'
1927'--with-libs="DIR1 DIR2 ... DIRN"'
1928     Deprecated in favor of '--with-sysroot'.  Specifies a list of
1929     directories which contain the target runtime libraries.  These
1930     libraries will be copied into the 'gcc' install directory.  If the
1931     directory list is omitted, this option has no effect.
1932
1933'--with-newlib'
1934     Specifies that 'newlib' is being used as the target C library.
1935     This causes '__eprintf' to be omitted from 'libgcc.a' on the
1936     assumption that it will be provided by 'newlib'.
1937
1938'--with-avrlibc'
1939     Specifies that 'AVR-Libc' is being used as the target C library.
1940     This causes float support functions like '__addsf3' to be omitted
1941     from 'libgcc.a' on the assumption that it will be provided by
1942     'libm.a'.  For more technical details, cf.  PR54461.  This option
1943     is only supported for the AVR target.  It is not supported for
1944     RTEMS configurations, which currently use newlib.  The option is
1945     supported since version 4.7.2 and is the default in 4.8.0 and
1946     newer.
1947
1948'--with-nds32-lib=LIBRARY'
1949     Specifies that LIBRARY setting is used for building 'libgcc.a'.
1950     Currently, the valid LIBRARY is 'newlib' or 'mculib'.  This option
1951     is only supported for the NDS32 target.
1952
1953'--with-build-time-tools=DIR'
1954     Specifies where to find the set of target tools (assembler, linker,
1955     etc.)  that will be used while building GCC itself.  This option
1956     can be useful if the directory layouts are different between the
1957     system you are building GCC on, and the system where you will
1958     deploy it.
1959
1960     For example, on an 'ia64-hp-hpux' system, you may have the GNU
1961     assembler and linker in '/usr/bin', and the native tools in a
1962     different path, and build a toolchain that expects to find the
1963     native tools in '/usr/bin'.
1964
1965     When you use this option, you should ensure that DIR includes 'ar',
1966     'as', 'ld', 'nm', 'ranlib' and 'strip' if necessary, and possibly
1967     'objdump'.  Otherwise, GCC may use an inconsistent set of tools.
1968
1969Overriding 'configure' test results
1970...................................
1971
1972Sometimes, it might be necessary to override the result of some
1973'configure' test, for example in order to ease porting to a new system
1974or work around a bug in a test.  The toplevel 'configure' script
1975provides three variables for this:
1976
1977'build_configargs'
1978     The contents of this variable is passed to all build 'configure'
1979     scripts.
1980
1981'host_configargs'
1982     The contents of this variable is passed to all host 'configure'
1983     scripts.
1984
1985'target_configargs'
1986     The contents of this variable is passed to all target 'configure'
1987     scripts.
1988
1989   In order to avoid shell and 'make' quoting issues for complex
1990overrides, you can pass a setting for 'CONFIG_SITE' and set variables in
1991the site file.
1992
1993Objective-C-Specific Options
1994----------------------------
1995
1996The following options apply to the build of the Objective-C runtime
1997library.
1998
1999'--enable-objc-gc'
2000     Specify that an additional variant of the GNU Objective-C runtime
2001     library is built, using an external build of the
2002     Boehm-Demers-Weiser garbage collector
2003     (<http://www.hboehm.info/gc/>).  This library needs to be available
2004     for each multilib variant, unless configured with
2005     '--enable-objc-gc='auto'' in which case the build of the additional
2006     runtime library is skipped when not available and the build
2007     continues.
2008
2009'--with-target-bdw-gc=LIST'
2010'--with-target-bdw-gc-include=LIST'
2011'--with-target-bdw-gc-lib=LIST'
2012     Specify search directories for the garbage collector header files
2013     and libraries.  LIST is a comma separated list of key value pairs
2014     of the form 'MULTILIBDIR=PATH', where the default multilib key is
2015     named as '.' (dot), or is omitted (e.g.
2016     '--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32').
2017
2018     The options '--with-target-bdw-gc-include' and
2019     '--with-target-bdw-gc-lib' must always be specified together for
2020     each multilib variant and they take precedence over
2021     '--with-target-bdw-gc'.  If '--with-target-bdw-gc-include' is
2022     missing values for a multilib, then the value for the default
2023     multilib is used (e.g.
2024     '--with-target-bdw-gc-include=/opt/bdw-gc/include'
2025     '--with-target-bdw-gc-lib=/opt/bdw-gc/lib64,32=/opt-bdw-gc/lib32').
2026     If none of these options are specified, the library is assumed in
2027     default locations.
2028
2029
2030File: gccinstall.info,  Node: Building,  Next: Testing,  Prev: Configuration,  Up: Installing GCC
2031
20325 Building
2033**********
2034
2035Now that GCC is configured, you are ready to build the compiler and
2036runtime libraries.
2037
2038   Some commands executed when making the compiler may fail (return a
2039nonzero status) and be ignored by 'make'.  These failures, which are
2040often due to files that were not found, are expected, and can safely be
2041ignored.
2042
2043   It is normal to have compiler warnings when compiling certain files.
2044Unless you are a GCC developer, you can generally ignore these warnings
2045unless they cause compilation to fail.  Developers should attempt to fix
2046any warnings encountered, however they can temporarily continue past
2047warnings-as-errors by specifying the configure flag '--disable-werror'.
2048
2049   On certain old systems, defining certain environment variables such
2050as 'CC' can interfere with the functioning of 'make'.
2051
2052   If you encounter seemingly strange errors when trying to build the
2053compiler in a directory other than the source directory, it could be
2054because you have previously configured the compiler in the source
2055directory.  Make sure you have done all the necessary preparations.
2056
2057   If you build GCC on a BSD system using a directory stored in an old
2058System V file system, problems may occur in running 'fixincludes' if the
2059System V file system doesn't support symbolic links.  These problems
2060result in a failure to fix the declaration of 'size_t' in 'sys/types.h'.
2061If you find that 'size_t' is a signed type and that type mismatches
2062occur, this could be the cause.
2063
2064   The solution is not to use such a directory for building GCC.
2065
2066   Similarly, when building from the source repository or snapshots, or
2067if you modify '*.l' files, you need the Flex lexical analyzer generator
2068installed.  If you do not modify '*.l' files, releases contain the
2069Flex-generated files and you do not need Flex installed to build them.
2070There is still one Flex-based lexical analyzer (part of the build
2071machinery, not of GCC itself) that is used even if you only build the C
2072front end.
2073
2074   When building from the source repository or snapshots, or if you
2075modify Texinfo documentation, you need version 4.7 or later of Texinfo
2076installed if you want Info documentation to be regenerated.  Releases
2077contain Info documentation pre-built for the unmodified documentation in
2078the release.
2079
20805.1 Building a native compiler
2081==============================
2082
2083For a native build, the default configuration is to perform a 3-stage
2084bootstrap of the compiler when 'make' is invoked.  This will build the
2085entire GCC system and ensure that it compiles itself correctly.  It can
2086be disabled with the '--disable-bootstrap' parameter to 'configure', but
2087bootstrapping is suggested because the compiler will be tested more
2088completely and could also have better performance.
2089
2090   The bootstrapping process will complete the following steps:
2091
2092   * Build tools necessary to build the compiler.
2093
2094   * Perform a 3-stage bootstrap of the compiler.  This includes
2095     building three times the target tools for use by the compiler such
2096     as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they
2097     have been individually linked or moved into the top level GCC
2098     source tree before configuring.
2099
2100   * Perform a comparison test of the stage2 and stage3 compilers.
2101
2102   * Build runtime libraries using the stage3 compiler from the previous
2103     step.
2104
2105   If you are short on disk space you might consider 'make
2106bootstrap-lean' instead.  The sequence of compilation is the same
2107described above, but object files from the stage1 and stage2 of the
21083-stage bootstrap of the compiler are deleted as soon as they are no
2109longer needed.
2110
2111   If you wish to use non-default GCC flags when compiling the stage2
2112and stage3 compilers, set 'BOOT_CFLAGS' on the command line when doing
2113'make'.  For example, if you want to save additional space during the
2114bootstrap and in the final installation as well, you can build the
2115compiler binaries without debugging information as in the following
2116example.  This will save roughly 40% of disk space both for the
2117bootstrap and the final installation.  (Libraries will still contain
2118debugging information.)
2119
2120     make BOOT_CFLAGS='-O' bootstrap
2121
2122   You can place non-default optimization flags into 'BOOT_CFLAGS'; they
2123are less well tested here than the default of '-g -O2', but should still
2124work.  In a few cases, you may find that you need to specify special
2125flags such as '-msoft-float' here to complete the bootstrap; or, if the
2126native compiler miscompiles the stage1 compiler, you may need to work
2127around this, by choosing 'BOOT_CFLAGS' to avoid the parts of the stage1
2128compiler that were miscompiled, or by using 'make bootstrap4' to
2129increase the number of stages of bootstrap.
2130
2131   'BOOT_CFLAGS' does not apply to bootstrapped target libraries.  Since
2132these are always compiled with the compiler currently being
2133bootstrapped, you can use 'CFLAGS_FOR_TARGET' to modify their
2134compilation flags, as for non-bootstrapped target libraries.  Again, if
2135the native compiler miscompiles the stage1 compiler, you may need to
2136work around this by avoiding non-working parts of the stage1 compiler.
2137Use 'STAGE1_TFLAGS' to this end.
2138
2139   If you used the flag '--enable-languages=...' to restrict the
2140compilers to be built, only those you've actually enabled will be built.
2141This will of course only build those runtime libraries, for which the
2142particular compiler has been built.  Please note, that re-defining
2143'LANGUAGES' when calling 'make' *does not* work anymore!
2144
2145   If the comparison of stage2 and stage3 fails, this normally indicates
2146that the stage2 compiler has compiled GCC incorrectly, and is therefore
2147a potentially serious bug which you should investigate and report.  (On
2148a few systems, meaningful comparison of object files is impossible; they
2149always appear "different".  If you encounter this problem, you will need
2150to disable comparison in the 'Makefile'.)
2151
2152   If you do not want to bootstrap your compiler, you can configure with
2153'--disable-bootstrap'.  In particular cases, you may want to bootstrap
2154your compiler even if the target system is not the same as the one you
2155are building on: for example, you could build a
2156'powerpc-unknown-linux-gnu' toolchain on a 'powerpc64-unknown-linux-gnu'
2157host.  In this case, pass '--enable-bootstrap' to the configure script.
2158
2159   'BUILD_CONFIG' can be used to bring in additional customization to
2160the build.  It can be set to a whitespace-separated list of names.  For
2161each such 'NAME', top-level 'config/NAME.mk' will be included by the
2162top-level 'Makefile', bringing in any settings it contains.  The default
2163'BUILD_CONFIG' can be set using the configure option
2164'--with-build-config=NAME...'.  Some examples of supported build
2165configurations are:
2166
2167'bootstrap-O1'
2168     Removes any '-O'-started option from 'BOOT_CFLAGS', and adds '-O1'
2169     to it.  'BUILD_CONFIG=bootstrap-O1' is equivalent to
2170     'BOOT_CFLAGS='-g -O1''.
2171
2172'bootstrap-O3'
2173     Analogous to 'bootstrap-O1'.
2174
2175'bootstrap-lto'
2176     Enables Link-Time Optimization for host tools during bootstrapping.
2177     'BUILD_CONFIG=bootstrap-lto' is equivalent to adding '-flto' to
2178     'BOOT_CFLAGS'.  This option assumes that the host supports the
2179     linker plugin (e.g.  GNU ld version 2.21 or later or GNU gold
2180     version 2.21 or later).
2181
2182'bootstrap-lto-noplugin'
2183     This option is similar to 'bootstrap-lto', but is intended for
2184     hosts that do not support the linker plugin.  Without the linker
2185     plugin static libraries are not compiled with link-time
2186     optimizations.  Since the GCC middle end and back end are in
2187     'libbackend.a' this means that only the front end is actually LTO
2188     optimized.
2189
2190'bootstrap-debug'
2191     Verifies that the compiler generates the same executable code,
2192     whether or not it is asked to emit debug information.  To this end,
2193     this option builds stage2 host programs without debug information,
2194     and uses 'contrib/compare-debug' to compare them with the stripped
2195     stage3 object files.  If 'BOOT_CFLAGS' is overridden so as to not
2196     enable debug information, stage2 will have it, and stage3 won't.
2197     This option is enabled by default when GCC bootstrapping is
2198     enabled, if 'strip' can turn object files compiled with and without
2199     debug info into identical object files.  In addition to better test
2200     coverage, this option makes default bootstraps faster and leaner.
2201
2202'bootstrap-debug-big'
2203     Rather than comparing stripped object files, as in
2204     'bootstrap-debug', this option saves internal compiler dumps during
2205     stage2 and stage3 and compares them as well, which helps catch
2206     additional potential problems, but at a great cost in terms of disk
2207     space.  It can be specified in addition to 'bootstrap-debug'.
2208
2209'bootstrap-debug-lean'
2210     This option saves disk space compared with 'bootstrap-debug-big',
2211     but at the expense of some recompilation.  Instead of saving the
2212     dumps of stage2 and stage3 until the final compare, it uses
2213     '-fcompare-debug' to generate, compare and remove the dumps during
2214     stage3, repeating the compilation that already took place in
2215     stage2, whose dumps were not saved.
2216
2217'bootstrap-debug-lib'
2218     This option tests executable code invariance over debug information
2219     generation on target libraries, just like 'bootstrap-debug-lean'
2220     tests it on host programs.  It builds stage3 libraries with
2221     '-fcompare-debug', and it can be used along with any of the
2222     'bootstrap-debug' options above.
2223
2224     There aren't '-lean' or '-big' counterparts to this option because
2225     most libraries are only build in stage3, so bootstrap compares
2226     would not get significant coverage.  Moreover, the few libraries
2227     built in stage2 are used in stage3 host programs, so we wouldn't
2228     want to compile stage2 libraries with different options for
2229     comparison purposes.
2230
2231'bootstrap-debug-ckovw'
2232     Arranges for error messages to be issued if the compiler built on
2233     any stage is run without the option '-fcompare-debug'.  This is
2234     useful to verify the full '-fcompare-debug' testing coverage.  It
2235     must be used along with 'bootstrap-debug-lean' and
2236     'bootstrap-debug-lib'.
2237
2238'bootstrap-cet'
2239     This option enables Intel CET for host tools during bootstrapping.
2240     'BUILD_CONFIG=bootstrap-cet' is equivalent to adding
2241     '-fcf-protection' to 'BOOT_CFLAGS'.  This option assumes that the
2242     host supports Intel CET (e.g.  GNU assembler version 2.30 or
2243     later).
2244
2245'bootstrap-time'
2246     Arranges for the run time of each program started by the GCC
2247     driver, built in any stage, to be logged to 'time.log', in the top
2248     level of the build tree.
2249
22505.2 Building a cross compiler
2251=============================
2252
2253When building a cross compiler, it is not generally possible to do a
22543-stage bootstrap of the compiler.  This makes for an interesting
2255problem as parts of GCC can only be built with GCC.
2256
2257   To build a cross compiler, we recommend first building and installing
2258a native compiler.  You can then use the native GCC compiler to build
2259the cross compiler.  The installed native compiler needs to be GCC
2260version 2.95 or later.
2261
2262   Assuming you have already installed a native copy of GCC and
2263configured your cross compiler, issue the command 'make', which performs
2264the following steps:
2265
2266   * Build host tools necessary to build the compiler.
2267
2268   * Build target tools for use by the compiler such as binutils (bfd,
2269     binutils, gas, gprof, ld, and opcodes) if they have been
2270     individually linked or moved into the top level GCC source tree
2271     before configuring.
2272
2273   * Build the compiler (single stage only).
2274
2275   * Build runtime libraries using the compiler from the previous step.
2276
2277   Note that if an error occurs in any step the make process will exit.
2278
2279   If you are not building GNU binutils in the same source tree as GCC,
2280you will need a cross-assembler and cross-linker installed before
2281configuring GCC.  Put them in the directory 'PREFIX/TARGET/bin'.  Here
2282is a table of the tools you should put in this directory:
2283
2284'as'
2285     This should be the cross-assembler.
2286
2287'ld'
2288     This should be the cross-linker.
2289
2290'ar'
2291     This should be the cross-archiver: a program which can manipulate
2292     archive files (linker libraries) in the target machine's format.
2293
2294'ranlib'
2295     This should be a program to construct a symbol table in an archive
2296     file.
2297
2298   The installation of GCC will find these programs in that directory,
2299and copy or link them to the proper place to for the cross-compiler to
2300find them when run later.
2301
2302   The easiest way to provide these files is to build the Binutils
2303package.  Configure it with the same '--host' and '--target' options
2304that you use for configuring GCC, then build and install them.  They
2305install their executables automatically into the proper directory.
2306Alas, they do not support all the targets that GCC supports.
2307
2308   If you are not building a C library in the same source tree as GCC,
2309you should also provide the target libraries and headers before
2310configuring GCC, specifying the directories with '--with-sysroot' or
2311'--with-headers' and '--with-libs'.  Many targets also require "start
2312files" such as 'crt0.o' and 'crtn.o' which are linked into each
2313executable.  There may be several alternatives for 'crt0.o', for use
2314with profiling or other compilation options.  Check your target's
2315definition of 'STARTFILE_SPEC' to find out what start files it uses.
2316
23175.3 Building in parallel
2318========================
2319
2320GNU Make 3.80 and above, which is necessary to build GCC, support
2321building in parallel.  To activate this, you can use 'make -j 2' instead
2322of 'make'.  You can also specify a bigger number, and in most cases
2323using a value greater than the number of processors in your machine will
2324result in fewer and shorter I/O latency hits, thus improving overall
2325throughput; this is especially true for slow drives and network
2326filesystems.
2327
23285.4 Building the Ada compiler
2329=============================
2330
2331In order to build GNAT, the Ada compiler, you need a working GNAT
2332compiler (GCC version 4.0 or later).  This includes GNAT tools such as
2333'gnatmake' and 'gnatlink', since the Ada front end is written in Ada and
2334uses some GNAT-specific extensions.
2335
2336   In order to build a cross compiler, it is suggested to install the
2337new compiler as native first, and then use it to build the cross
2338compiler.
2339
2340   'configure' does not test whether the GNAT installation works and has
2341a sufficiently recent version; if too old a GNAT version is installed,
2342the build will fail unless '--enable-languages' is used to disable
2343building the Ada front end.
2344
2345   'ADA_INCLUDE_PATH' and 'ADA_OBJECT_PATH' environment variables must
2346not be set when building the Ada compiler, the Ada tools, or the Ada
2347runtime libraries.  You can check that your build environment is clean
2348by verifying that 'gnatls -v' lists only one explicit path in each
2349section.
2350
23515.5 Building with profile feedback
2352==================================
2353
2354It is possible to use profile feedback to optimize the compiler itself.
2355This should result in a faster compiler binary.  Experiments done on x86
2356using gcc 3.3 showed approximately 7 percent speedup on compiling C
2357programs.  To bootstrap the compiler with profile feedback, use 'make
2358profiledbootstrap'.
2359
2360   When 'make profiledbootstrap' is run, it will first build a 'stage1'
2361compiler.  This compiler is used to build a 'stageprofile' compiler
2362instrumented to collect execution counts of instruction and branch
2363probabilities.  Training run is done by building 'stagetrain' compiler.
2364Finally a 'stagefeedback' compiler is built using the information
2365collected.
2366
2367   Unlike standard bootstrap, several additional restrictions apply.
2368The compiler used to build 'stage1' needs to support a 64-bit integral
2369type.  It is recommended to only use GCC for this.
2370
2371   On Linux/x86_64 hosts with some restrictions (no virtualization) it
2372is also possible to do autofdo build with 'make autoprofiledback'.  This
2373uses Linux perf to sample branches in the binary and then rebuild it
2374with feedback derived from the profile.  Linux perf and the 'autofdo'
2375toolkit needs to be installed for this.
2376
2377   Only the profile from the current build is used, so when an error
2378occurs it is recommended to clean before restarting.  Otherwise the code
2379quality may be much worse.
2380
2381
2382File: gccinstall.info,  Node: Testing,  Next: Final install,  Prev: Building,  Up: Installing GCC
2383
23846 Installing GCC: Testing
2385*************************
2386
2387Before you install GCC, we encourage you to run the testsuites and to
2388compare your results with results from a similar configuration that have
2389been submitted to the gcc-testresults mailing list.  Some of these
2390archived results are linked from the build status lists at
2391<http://gcc.gnu.org/buildstat.html>, although not everyone who reports a
2392successful build runs the testsuites and submits the results.  This step
2393is optional and may require you to download additional software, but it
2394can give you confidence in your new GCC installation or point out
2395problems before you install and start using your new GCC.
2396
2397   First, you must have downloaded the testsuites.  These are part of
2398the full distribution, but if you downloaded the "core" compiler plus
2399any front ends, you must download the testsuites separately.
2400
2401   Second, you must have the testing tools installed.  This includes
2402DejaGnu, Tcl, and Expect; the DejaGnu site has links to these.  For
2403running the BRIG frontend tests, a tool to assemble the binary BRIGs
2404from HSAIL text, HSAILasm must be installed.
2405
2406   If the directories where 'runtest' and 'expect' were installed are
2407not in the 'PATH', you may need to set the following environment
2408variables appropriately, as in the following example (which assumes that
2409DejaGnu has been installed under '/usr/local'):
2410
2411     TCL_LIBRARY = /usr/local/share/tcl8.0
2412     DEJAGNULIBS = /usr/local/share/dejagnu
2413
2414   (On systems such as Cygwin, these paths are required to be actual
2415paths, not mounts or links; presumably this is due to some lack of
2416portability in the DejaGnu code.)
2417
2418   Finally, you can run the testsuite (which may take a long time):
2419     cd OBJDIR; make -k check
2420
2421   This will test various components of GCC, such as compiler front ends
2422and runtime libraries.  While running the testsuite, DejaGnu might emit
2423some harmless messages resembling 'WARNING: Couldn't find the global
2424config file.' or 'WARNING: Couldn't find tool init file' that can be
2425ignored.
2426
2427   If you are testing a cross-compiler, you may want to run the
2428testsuite on a simulator as described at
2429<http://gcc.gnu.org/simtest-howto.html>.
2430
24316.1 How can you run the testsuite on selected tests?
2432====================================================
2433
2434In order to run sets of tests selectively, there are targets 'make
2435check-gcc' and language specific 'make check-c', 'make check-c++', 'make
2436check-fortran', 'make check-ada', 'make check-objc', 'make
2437check-obj-c++', 'make check-lto' in the 'gcc' subdirectory of the object
2438directory.  You can also just run 'make check' in a subdirectory of the
2439object directory.
2440
2441   A more selective way to just run all 'gcc' execute tests in the
2442testsuite is to use
2443
2444     make check-gcc RUNTESTFLAGS="execute.exp OTHER-OPTIONS"
2445
2446   Likewise, in order to run only the 'g++' "old-deja" tests in the
2447testsuite with filenames matching '9805*', you would use
2448
2449     make check-g++ RUNTESTFLAGS="old-deja.exp=9805* OTHER-OPTIONS"
2450
2451   The file-matching expression following FILENAME'.exp=' is treated as
2452a series of whitespace-delimited glob expressions so that multiple
2453patterns may be passed, although any whitespace must either be escaped
2454or surrounded by single quotes if multiple expressions are desired.  For
2455example,
2456
2457     make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c OTHER-OPTIONS"
2458     make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' OTHER-OPTIONS"
2459
2460   The '*.exp' files are located in the testsuite directories of the GCC
2461source, the most important ones being 'compile.exp', 'execute.exp',
2462'dg.exp' and 'old-deja.exp'.  To get a list of the possible '*.exp'
2463files, pipe the output of 'make check' into a file and look at the
2464'Running ... .exp' lines.
2465
24666.2 Passing options and running multiple testsuites
2467===================================================
2468
2469You can pass multiple options to the testsuite using the
2470'--target_board' option of DejaGNU, either passed as part of
2471'RUNTESTFLAGS', or directly to 'runtest' if you prefer to work outside
2472the makefiles.  For example,
2473
2474     make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
2475
2476   will run the standard 'g++' testsuites ("unix" is the target name for
2477a standard native testsuite situation), passing '-O3 -fmerge-constants'
2478to the compiler on every test, i.e., slashes separate options.
2479
2480   You can run the testsuites multiple times using combinations of
2481options with a syntax similar to the brace expansion of popular shells:
2482
2483     ..."--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
2484
2485   (Note the empty option caused by the trailing comma in the final
2486group.)  The following will run each testsuite eight times using the
2487'arm-sim' target, as if you had specified all possible combinations
2488yourself:
2489
2490     --target_board='arm-sim/-mhard-float/-O1 \
2491                     arm-sim/-mhard-float/-O2 \
2492                     arm-sim/-mhard-float/-O3 \
2493                     arm-sim/-mhard-float \
2494                     arm-sim/-msoft-float/-O1 \
2495                     arm-sim/-msoft-float/-O2 \
2496                     arm-sim/-msoft-float/-O3 \
2497                     arm-sim/-msoft-float'
2498
2499   They can be combined as many times as you wish, in arbitrary ways.
2500This list:
2501
2502     ..."--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
2503
2504   will generate four combinations, all involving '-Wextra'.
2505
2506   The disadvantage to this method is that the testsuites are run in
2507serial, which is a waste on multiprocessor systems.  For users with GNU
2508Make and a shell which performs brace expansion, you can run the
2509testsuites in parallel by having the shell perform the combinations and
2510'make' do the parallel runs.  Instead of using '--target_board', use a
2511special makefile target:
2512
2513     make -jN check-TESTSUITE//TEST-TARGET/OPTION1/OPTION2/...
2514
2515   For example,
2516
2517     make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
2518
2519   will run three concurrent "make-gcc" testsuites, eventually testing
2520all ten combinations as described above.  Note that this is currently
2521only supported in the 'gcc' subdirectory.  (To see how this works, try
2522typing 'echo' before the example given here.)
2523
25246.3 How to interpret test results
2525=================================
2526
2527The result of running the testsuite are various '*.sum' and '*.log'
2528files in the testsuite subdirectories.  The '*.log' files contain a
2529detailed log of the compiler invocations and the corresponding results,
2530the '*.sum' files summarize the results.  These summaries contain status
2531codes for all tests:
2532
2533   * PASS: the test passed as expected
2534   * XPASS: the test unexpectedly passed
2535   * FAIL: the test unexpectedly failed
2536   * XFAIL: the test failed as expected
2537   * UNSUPPORTED: the test is not supported on this platform
2538   * ERROR: the testsuite detected an error
2539   * WARNING: the testsuite detected a possible problem
2540
2541   It is normal for some tests to report unexpected failures.  At the
2542current time the testing harness does not allow fine grained control
2543over whether or not a test is expected to fail.  This problem should be
2544fixed in future releases.
2545
25466.4 Submitting test results
2547===========================
2548
2549If you want to report the results to the GCC project, use the
2550'contrib/test_summary' shell script.  Start it in the OBJDIR with
2551
2552     SRCDIR/contrib/test_summary -p your_commentary.txt \
2553         -m gcc-testresults@gcc.gnu.org |sh
2554
2555   This script uses the 'Mail' program to send the results, so make sure
2556it is in your 'PATH'.  The file 'your_commentary.txt' is prepended to
2557the testsuite summary and should contain any special remarks you have on
2558your results or your build environment.  Please do not edit the
2559testsuite result block or the subject line, as these messages may be
2560automatically processed.
2561
2562
2563File: gccinstall.info,  Node: Final install,  Prev: Testing,  Up: Installing GCC
2564
25657 Installing GCC: Final installation
2566************************************
2567
2568Now that GCC has been built (and optionally tested), you can install it
2569with
2570     cd OBJDIR && make install
2571
2572   We strongly recommend to install into a target directory where there
2573is no previous version of GCC present.  Also, the GNAT runtime should
2574not be stripped, as this would break certain features of the debugger
2575that depend on this debugging information (catching Ada exceptions for
2576instance).
2577
2578   That step completes the installation of GCC; user level binaries can
2579be found in 'PREFIX/bin' where PREFIX is the value you specified with
2580the '--prefix' to configure (or '/usr/local' by default).  (If you
2581specified '--bindir', that directory will be used instead; otherwise, if
2582you specified '--exec-prefix', 'EXEC-PREFIX/bin' will be used.)  Headers
2583for the C++ library are installed in 'PREFIX/include'; libraries in
2584'LIBDIR' (normally 'PREFIX/lib'); internal parts of the compiler in
2585'LIBDIR/gcc' and 'LIBEXECDIR/gcc'; documentation in info format in
2586'INFODIR' (normally 'PREFIX/info').
2587
2588   When installing cross-compilers, GCC's executables are not only
2589installed into 'BINDIR', that is, 'EXEC-PREFIX/bin', but additionally
2590into 'EXEC-PREFIX/TARGET-ALIAS/bin', if that directory exists.
2591Typically, such "tooldirs" hold target-specific binutils, including
2592assembler and linker.
2593
2594   Installation into a temporary staging area or into a 'chroot' jail
2595can be achieved with the command
2596
2597     make DESTDIR=PATH-TO-ROOTDIR install
2598
2599where PATH-TO-ROOTDIR is the absolute path of a directory relative to
2600which all installation paths will be interpreted.  Note that the
2601directory specified by 'DESTDIR' need not exist yet; it will be created
2602if necessary.
2603
2604   There is a subtle point with tooldirs and 'DESTDIR': If you relocate
2605a cross-compiler installation with e.g. 'DESTDIR=ROOTDIR', then the
2606directory 'ROOTDIR/EXEC-PREFIX/TARGET-ALIAS/bin' will be filled with
2607duplicated GCC executables only if it already exists, it will not be
2608created otherwise.  This is regarded as a feature, not as a bug, because
2609it gives slightly more control to the packagers using the 'DESTDIR'
2610feature.
2611
2612   You can install stripped programs and libraries with
2613
2614     make install-strip
2615
2616   If you are bootstrapping a released version of GCC then please
2617quickly review the build status page for your release, available from
2618<http://gcc.gnu.org/buildstat.html>.  If your system is not listed for
2619the version of GCC that you built, send a note to <gcc@gcc.gnu.org>
2620indicating that you successfully built and installed GCC.  Include the
2621following information:
2622
2623   * Output from running 'SRCDIR/config.guess'.  Do not send that file
2624     itself, just the one-line output from running it.
2625
2626   * The output of 'gcc -v' for your newly installed 'gcc'.  This tells
2627     us which version of GCC you built and the options you passed to
2628     configure.
2629
2630   * Whether you enabled all languages or a subset of them.  If you used
2631     a full distribution then this information is part of the configure
2632     options in the output of 'gcc -v', but if you downloaded the "core"
2633     compiler plus additional front ends then it isn't apparent which
2634     ones you built unless you tell us about it.
2635
2636   * If the build was for GNU/Linux, also include:
2637        * The distribution name and version (e.g., Red Hat 7.1 or Debian
2638          2.2.3); this information should be available from
2639          '/etc/issue'.
2640
2641        * The version of the Linux kernel, available from 'uname
2642          --version' or 'uname -a'.
2643
2644        * The version of glibc you used; for RPM-based systems like Red
2645          Hat, Mandrake, and SuSE type 'rpm -q glibc' to get the glibc
2646          version, and on systems like Debian and Progeny use 'dpkg -l
2647          libc6'.
2648     For other systems, you can include similar information if you think
2649     it is relevant.
2650
2651   * Any other information that you think would be useful to people
2652     building GCC on the same configuration.  The new entry in the build
2653     status list will include a link to the archived copy of your
2654     message.
2655
2656   We'd also like to know if the *note host/target specific installation
2657notes: Specific. didn't include your host/target information or if that
2658information is incomplete or out of date.  Send a note to
2659<gcc@gcc.gnu.org> detailing how the information should be changed.
2660
2661   If you find a bug, please report it following the bug reporting
2662guidelines.
2663
2664   If you want to print the GCC manuals, do 'cd OBJDIR; make dvi'.  You
2665will need to have 'texi2dvi' (version at least 4.7) and TeX installed.
2666This creates a number of '.dvi' files in subdirectories of 'OBJDIR';
2667these may be converted for printing with programs such as 'dvips'.
2668Alternately, by using 'make pdf' in place of 'make dvi', you can create
2669documentation in the form of '.pdf' files; this requires 'texi2pdf',
2670which is included with Texinfo version 4.8 and later.  You can also buy
2671printed manuals from the Free Software Foundation, though such manuals
2672may not be for the most recent version of GCC.
2673
2674   If you would like to generate online HTML documentation, do 'cd
2675OBJDIR; make html' and HTML will be generated for the gcc manuals in
2676'OBJDIR/gcc/HTML'.
2677
2678
2679File: gccinstall.info,  Node: Binaries,  Next: Specific,  Prev: Installing GCC,  Up: Top
2680
26818 Installing GCC: Binaries
2682**************************
2683
2684We are often asked about pre-compiled versions of GCC.  While we cannot
2685provide these for all platforms, below you'll find links to binaries for
2686various platforms where creating them by yourself is not easy due to
2687various reasons.
2688
2689   Please note that we did not create these binaries, nor do we support
2690them.  If you have any problems installing them, please contact their
2691makers.
2692
2693   * AIX:
2694        * Bull's Open Source Software Archive for for AIX 5L and AIX 6;
2695
2696        * AIX Open Source Packages (AIX5L AIX 6.1 AIX 7.1).
2697
2698   * DOS--DJGPP.
2699
2700   * HP-UX:
2701        * HP-UX Porting Center;
2702
2703   * Solaris 2 (SPARC, Intel):
2704        * OpenCSW
2705
2706        * TGCware
2707
2708   * macOS:
2709        * The Homebrew package manager;
2710        * MacPorts.
2711
2712   * Microsoft Windows:
2713        * The Cygwin project;
2714        * The MinGW and mingw-w64 projects.
2715
2716   * OpenPKG offers binaries for quite a number of platforms.
2717
2718   * The GFortran Wiki has links to GNU Fortran binaries for several
2719     platforms.
2720
2721
2722File: gccinstall.info,  Node: Specific,  Next: Old,  Prev: Binaries,  Up: Top
2723
27249 Host/target specific installation notes for GCC
2725*************************************************
2726
2727Please read this document carefully _before_ installing the GNU Compiler
2728Collection on your machine.
2729
2730   Note that this list of install notes is _not_ a list of supported
2731hosts or targets.  Not all supported hosts and targets are listed here,
2732only the ones that require host-specific or target-specific information
2733have to.
2734
2735aarch64*-*-*
2736============
2737
2738Binutils pre 2.24 does not have support for selecting '-mabi' and does
2739not support ILP32.  If it is used to build GCC 4.9 or later, GCC will
2740not support option '-mabi=ilp32'.
2741
2742   To enable a workaround for the Cortex-A53 erratum number 835769 by
2743default (for all CPUs regardless of -mcpu option given) at configure
2744time use the '--enable-fix-cortex-a53-835769' option.  This will enable
2745the fix by default and can be explicitly disabled during compilation by
2746passing the '-mno-fix-cortex-a53-835769' option.  Conversely,
2747'--disable-fix-cortex-a53-835769' will disable the workaround by
2748default.  The workaround is disabled by default if neither of
2749'--enable-fix-cortex-a53-835769' or '--disable-fix-cortex-a53-835769' is
2750given at configure time.
2751
2752   To enable a workaround for the Cortex-A53 erratum number 843419 by
2753default (for all CPUs regardless of -mcpu option given) at configure
2754time use the '--enable-fix-cortex-a53-843419' option.  This workaround
2755is applied at link time.  Enabling the workaround will cause GCC to pass
2756the relevant option to the linker.  It can be explicitly disabled during
2757compilation by passing the '-mno-fix-cortex-a53-843419' option.
2758Conversely, '--disable-fix-cortex-a53-843419' will disable the
2759workaround by default.  The workaround is disabled by default if neither
2760of '--enable-fix-cortex-a53-843419' or '--disable-fix-cortex-a53-843419'
2761is given at configure time.
2762
2763alpha*-*-*
2764==========
2765
2766This section contains general configuration information for all
2767Alpha-based platforms using ELF.  In addition to reading this section,
2768please read all other sections that match your target.
2769
2770   We require binutils 2.11.2 or newer.  Previous binutils releases had
2771a number of problems with DWARF 2 debugging information, not the least
2772of which is incorrect linking of shared libraries.
2773
2774amd64-*-solaris2.1[0-9]*
2775========================
2776
2777This is a synonym for 'x86_64-*-solaris2.1[0-9]*'.
2778
2779arc-*-elf32
2780===========
2781
2782Use 'configure --target=arc-elf32 --with-cpu=CPU
2783--enable-languages="c,c++"' to configure GCC, with CPU being one of
2784'arc600', 'arc601', or 'arc700'.
2785
2786arc-linux-uclibc
2787================
2788
2789Use 'configure --target=arc-linux-uclibc --with-cpu=arc700
2790--enable-languages="c,c++"' to configure GCC.
2791
2792arm-*-eabi
2793==========
2794
2795ARM-family processors.
2796
2797   Building the Ada frontend commonly fails (an infinite loop executing
2798'xsinfo') if the host compiler is GNAT 4.8.  Host compilers built from
2799the GNAT 4.6, 4.9 or 5 release branches are known to succeed.
2800
2801avr
2802===
2803
2804ATMEL AVR-family micro controllers.  These are used in embedded
2805applications.  There are no standard Unix configurations.  *Note AVR
2806Options: (gcc)AVR Options, for the list of supported MCU types.
2807
2808   Use 'configure --target=avr --enable-languages="c"' to configure GCC.
2809
2810   Further installation notes and other useful information about AVR
2811tools can also be obtained from:
2812
2813   * http://www.nongnu.org/avr/
2814   * http://www.amelek.gda.pl/avr/
2815
2816   The following error:
2817     Error: register required
2818
2819   indicates that you should upgrade to a newer version of the binutils.
2820
2821Blackfin
2822========
2823
2824The Blackfin processor, an Analog Devices DSP. *Note Blackfin Options:
2825(gcc)Blackfin Options,
2826
2827   More information, and a version of binutils with support for this
2828processor, is available at <https://blackfin.uclinux.org>
2829
2830CR16
2831====
2832
2833The CR16 CompactRISC architecture is a 16-bit architecture.  This
2834architecture is used in embedded applications.
2835
2836   *Note CR16 Options: (gcc)CR16 Options,
2837
2838   Use 'configure --target=cr16-elf --enable-languages=c,c++' to
2839configure GCC for building a CR16 elf cross-compiler.
2840
2841   Use 'configure --target=cr16-uclinux --enable-languages=c,c++' to
2842configure GCC for building a CR16 uclinux cross-compiler.
2843
2844CRIS
2845====
2846
2847CRIS is the CPU architecture in Axis Communications ETRAX
2848system-on-a-chip series.  These are used in embedded applications.
2849
2850   *Note CRIS Options: (gcc)CRIS Options, for a list of CRIS-specific
2851options.
2852
2853   There are a few different CRIS targets:
2854'cris-axis-elf'
2855     Mainly for monolithic embedded systems.  Includes a multilib for
2856     the 'v10' core used in 'ETRAX 100 LX'.
2857'cris-axis-linux-gnu'
2858     A GNU/Linux port for the CRIS architecture, currently targeting
2859     'ETRAX 100 LX' by default.
2860
2861   Pre-packaged tools can be obtained from
2862<ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/>.  More
2863information about this platform is available at
2864<http://developer.axis.com/>.
2865
2866DOS
2867===
2868
2869Please have a look at the binaries page.
2870
2871   You cannot install GCC by itself on MSDOS; it will not compile under
2872any MSDOS compiler except itself.  You need to get the complete
2873compilation package DJGPP, which includes binaries as well as sources,
2874and includes all the necessary compilation tools and libraries.
2875
2876epiphany-*-elf
2877==============
2878
2879Adapteva Epiphany.  This configuration is intended for embedded systems.
2880
2881*-*-freebsd*
2882============
2883
2884Support for FreeBSD 1 was discontinued in GCC 3.2.  Support for FreeBSD
28852 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC
28864.0.
2887
2888   In order to better utilize FreeBSD base system functionality and
2889match the configuration of the system compiler, GCC 4.5 and above as
2890well as GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is
2891present on FreeBSD 7 or later) and the use of '__cxa_atexit' by default
2892(on FreeBSD 6 or later).  The use of 'dl_iterate_phdr' inside
2893'libgcc_s.so.1' and boehm-gc (on FreeBSD 7 or later) is enabled by GCC
28944.5 and above.
2895
2896   We support FreeBSD using the ELF file format with DWARF 2 debugging
2897for all CPU architectures.  You may use '-gstabs' instead of '-g', if
2898you really want the old debugging format.  There are no known issues
2899with mixing object files and libraries with different debugging formats.
2900Otherwise, this release of GCC should now match more of the
2901configuration used in the stock FreeBSD configuration of GCC.  In
2902particular, '--enable-threads' is now configured by default.  However,
2903as a general user, do not attempt to replace the system compiler with
2904this release.  Known to bootstrap and check with good results on FreeBSD
29057.2-STABLE.  In the past, known to bootstrap and check with good results
2906on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8, 4.9 and 5-CURRENT.
2907
2908   The version of binutils installed in '/usr/bin' probably works with
2909this release of GCC.  Bootstrapping against the latest GNU binutils
2910and/or the version found in '/usr/ports/devel/binutils' has been known
2911to enable additional features and improve overall testsuite results.
2912However, it is currently known that boehm-gc may not configure properly
2913on FreeBSD prior to the FreeBSD 7.0 release with GNU binutils after
29142.16.1.
2915
2916ft32-*-elf
2917==========
2918
2919The FT32 processor.  This configuration is intended for embedded
2920systems.
2921
2922h8300-hms
2923=========
2924
2925Renesas H8/300 series of processors.
2926
2927   Please have a look at the binaries page.
2928
2929   The calling convention and structure layout has changed in release
29302.6.  All code must be recompiled.  The calling convention now passes
2931the first three arguments in function calls in registers.  Structures
2932are no longer a multiple of 2 bytes.
2933
2934hppa*-hp-hpux*
2935==============
2936
2937Support for HP-UX version 9 and older was discontinued in GCC 3.4.
2938
2939   We require using gas/binutils on all hppa platforms.  Version 2.19 or
2940later is recommended.
2941
2942   It may be helpful to configure GCC with the '--with-gnu-as' and
2943'--with-as=...' options to ensure that GCC can find GAS.
2944
2945   The HP assembler should not be used with GCC. It is rarely tested and
2946may not work.  It shouldn't be used with any languages other than C due
2947to its many limitations.
2948
2949   Specifically, '-g' does not work (HP-UX uses a peculiar debugging
2950format which GCC does not know about).  It also inserts timestamps into
2951each object file it creates, causing the 3-stage comparison test to fail
2952during a bootstrap.  You should be able to continue by saying 'make
2953all-host all-target' after getting the failure from 'make'.
2954
2955   Various GCC features are not supported.  For example, it does not
2956support weak symbols or alias definitions.  As a result, explicit
2957template instantiations are required when using C++.  This makes it
2958difficult if not impossible to build many C++ applications.
2959
2960   There are two default scheduling models for instructions.  These are
2961PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
2962architecture specified for the target machine when configuring.
2963PROCESSOR_8000 is the default.  PROCESSOR_7100LC is selected when the
2964target is a 'hppa1*' machine.
2965
2966   The PROCESSOR_8000 model is not well suited to older processors.
2967Thus, it is important to completely specify the machine architecture
2968when configuring if you want a model other than PROCESSOR_8000.  The
2969macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
2970default scheduling model is desired.
2971
2972   As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through
297311.00, and the UNIX 98 namespace for HP-UX 11.11 and later.  This
2974namespace change might cause problems when bootstrapping with an earlier
2975version of GCC or the HP compiler as essentially the same namespace is
2976required for an entire build.  This problem can be avoided in a number
2977of ways.  With HP cc, 'UNIX_STD' can be set to '95' or '98'.  Another
2978way is to add an appropriate set of predefines to 'CC'.  The description
2979for the 'munix=' option contains a list of the predefines used with each
2980standard.
2981
2982   More specific information to 'hppa*-hp-hpux*' targets follows.
2983
2984hppa*-hp-hpux10
2985===============
2986
2987For hpux10.20, we _highly_ recommend you pick up the latest sed patch
2988'PHCO_19798' from HP.
2989
2990   The C++ ABI has changed incompatibly in GCC 4.0.  COMDAT subspaces
2991are used for one-only code and data.  This resolves many of the previous
2992problems in using C++ on this target.  However, the ABI is not
2993compatible with the one implemented under HP-UX 11 using secondary
2994definitions.
2995
2996hppa*-hp-hpux11
2997===============
2998
2999GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
3000be used to compile GCC 3.0 and up.
3001
3002   The libffi library haven't been ported to 64-bit HP-UX and doesn't
3003build.
3004
3005   Refer to binaries for information about obtaining precompiled GCC
3006binaries for HP-UX.  Precompiled binaries must be obtained to build the
3007Ada language as it cannot be bootstrapped using C.  Ada is only
3008available for the 32-bit PA-RISC runtime.
3009
3010   Starting with GCC 3.4 an ISO C compiler is required to bootstrap.
3011The bundled compiler supports only traditional C; you will need either
3012HP's unbundled compiler, or a binary distribution of GCC.
3013
3014   It is possible to build GCC 3.3 starting with the bundled HP
3015compiler, but the process requires several steps.  GCC 3.3 can then be
3016used to build later versions.
3017
3018   There are several possible approaches to building the distribution.
3019Binutils can be built first using the HP tools.  Then, the GCC
3020distribution can be built.  The second approach is to build GCC first
3021using the HP tools, then build binutils, then rebuild GCC.  There have
3022been problems with various binary distributions, so it is best not to
3023start from a binary distribution.
3024
3025   On 64-bit capable systems, there are two distinct targets.  Different
3026installation prefixes must be used if both are to be installed on the
3027same system.  The 'hppa[1-2]*-hp-hpux11*' target generates code for the
302832-bit PA-RISC runtime architecture and uses the HP linker.  The
3029'hppa64-hp-hpux11*' target generates 64-bit code for the PA-RISC 2.0
3030architecture.
3031
3032   The script config.guess now selects the target type based on the
3033compiler detected during configuration.  You must define 'PATH' or 'CC'
3034so that configure finds an appropriate compiler for the initial
3035bootstrap.  When 'CC' is used, the definition should contain the options
3036that are needed whenever 'CC' is used.
3037
3038   Specifically, options that determine the runtime architecture must be
3039in 'CC' to correctly select the target for the build.  It is also
3040convenient to place many other compiler options in 'CC'.  For example,
3041'CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"' can be
3042used to bootstrap the GCC 3.3 branch with the HP compiler in 64-bit
3043K&R/bundled mode.  The '+DA2.0W' option will result in the automatic
3044selection of the 'hppa64-hp-hpux11*' target.  The macro definition table
3045of cpp needs to be increased for a successful build with the HP
3046compiler.  _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when
3047building with the bundled compiler, or when using the '-Ac' option.
3048These defines aren't necessary with '-Ae'.
3049
3050   It is best to explicitly configure the 'hppa64-hp-hpux11*' target
3051with the '--with-ld=...' option.  This overrides the standard search for
3052ld.  The two linkers supported on this target require different
3053commands.  The default linker is determined during configuration.  As a
3054result, it's not possible to switch linkers in the middle of a GCC
3055build.  This has been reported to sometimes occur in unified builds of
3056binutils and GCC.
3057
3058   A recent linker patch must be installed for the correct operation of
3059GCC 3.3 and later.  'PHSS_26559' and 'PHSS_24304' are the oldest linker
3060patches that are known to work.  They are for HP-UX 11.00 and 11.11,
3061respectively.  'PHSS_24303', the companion to 'PHSS_24304', might be
3062usable but it hasn't been tested.  These patches have been superseded.
3063Consult the HP patch database to obtain the currently recommended linker
3064patch for your system.
3065
3066   The patches are necessary for the support of weak symbols on the
306732-bit port, and for the running of initializers and finalizers.  Weak
3068symbols are implemented using SOM secondary definition symbols.  Prior
3069to HP-UX 11, there are bugs in the linker support for secondary symbols.
3070The patches correct a problem of linker core dumps creating shared
3071libraries containing secondary symbols, as well as various other linking
3072issues involving secondary symbols.
3073
3074   GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to
3075run initializers and finalizers on the 64-bit port.  The 32-bit port
3076uses the linker '+init' and '+fini' options for the same purpose.  The
3077patches correct various problems with the +init/+fini options, including
3078program core dumps.  Binutils 2.14 corrects a problem on the 64-bit port
3079resulting from HP's non-standard use of the .init and .fini sections for
3080array initializers and finalizers.
3081
3082   Although the HP and GNU linkers are both supported for the
3083'hppa64-hp-hpux11*' target, it is strongly recommended that the HP
3084linker be used for link editing on this target.
3085
3086   At this time, the GNU linker does not support the creation of long
3087branch stubs.  As a result, it cannot successfully link binaries
3088containing branch offsets larger than 8 megabytes.  In addition, there
3089are problems linking shared libraries, linking executables with
3090'-static', and with dwarf2 unwind and exception support.  It also
3091doesn't provide stubs for internal calls to global functions in shared
3092libraries, so these calls cannot be overloaded.
3093
3094   The HP dynamic loader does not support GNU symbol versioning, so
3095symbol versioning is not supported.  It may be necessary to disable
3096symbol versioning with '--disable-symvers' when using GNU ld.
3097
3098   POSIX threads are the default.  The optional DCE thread library is
3099not supported, so '--enable-threads=dce' does not work.
3100
3101*-*-linux-gnu
3102=============
3103
3104Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
3105in glibc 2.2.5 and later.  More information is available in the
3106libstdc++-v3 documentation.
3107
3108i?86-*-linux*
3109=============
3110
3111As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
3112See bug 10877 for more information.
3113
3114   If you receive Signal 11 errors when building on GNU/Linux, then it
3115is possible you have a hardware problem.  Further information on this
3116can be found on www.bitwizard.nl.
3117
3118i?86-*-solaris2.10
3119==================
3120
3121Use this for Solaris 10 or later on x86 and x86-64 systems.  Starting
3122with GCC 4.7, there is also a 64-bit 'amd64-*-solaris2.1[0-9]*' or
3123'x86_64-*-solaris2.1[0-9]*' configuration that corresponds to
3124'sparcv9-sun-solaris2*'.
3125
3126   It is recommended that you configure GCC to use the GNU assembler.
3127The versions included in Solaris 10, from GNU binutils 2.15 (in
3128'/usr/sfw/bin/gas'), and Solaris 11, from GNU binutils 2.19 or newer
3129(also available as '/usr/bin/gas' and '/usr/gnu/bin/as'), work fine.
3130The current version, from GNU binutils 2.29, is known to work, but the
3131version from GNU binutils 2.26 must be avoided.  Recent versions of the
3132Solaris assembler in '/usr/ccs/bin/as' work almost as well, though.
3133
3134   For linking, the Solaris linker, is preferred.  If you want to use
3135the GNU linker instead, note that due to a packaging bug the version in
3136Solaris 10, from GNU binutils 2.15 (in '/usr/sfw/bin/gld'), cannot be
3137used, while the version in Solaris 11, from GNU binutils 2.19 or newer
3138(also in '/usr/gnu/bin/ld' and '/usr/bin/gld'), works, as does the
3139latest version, from GNU binutils 2.29.
3140
3141   To use GNU 'as', configure with the options '--with-gnu-as
3142--with-as=/usr/sfw/bin/gas'.  It may be necessary to configure with
3143'--without-gnu-ld --with-ld=/usr/ccs/bin/ld' to guarantee use of Sun
3144'ld'.
3145
3146ia64-*-linux
3147============
3148
3149IA-64 processor (also known as IPF, or Itanium Processor Family) running
3150GNU/Linux.
3151
3152   If you are using the installed system libunwind library with
3153'--with-system-libunwind', then you must use libunwind 0.98 or later.
3154
3155   None of the following versions of GCC has an ABI that is compatible
3156with any of the other versions in this list, with the exception that Red
3157Hat 2.96 and Trillian 000171 are compatible with each other: 3.1, 3.0.2,
31583.0.1, 3.0, Red Hat 2.96, and Trillian 000717.  This primarily affects
3159C++ programs and programs that create shared libraries.  GCC 3.1 or
3160later is recommended for compiling linux, the kernel.  As of version 3.1
3161GCC is believed to be fully ABI compliant, and hence no more major ABI
3162changes are expected.
3163
3164ia64-*-hpux*
3165============
3166
3167Building GCC on this target requires the GNU Assembler.  The bundled HP
3168assembler will not work.  To prevent GCC from using the wrong assembler,
3169the option '--with-gnu-as' may be necessary.
3170
3171   The GCC libunwind library has not been ported to HPUX.  This means
3172that for GCC versions 3.2.3 and earlier, '--enable-libunwind-exceptions'
3173is required to build GCC.  For GCC 3.3 and later, this is the default.
3174For gcc 3.4.3 and later, '--enable-libunwind-exceptions' is removed and
3175the system libunwind library will always be used.
3176
3177*-ibm-aix*
3178==========
3179
3180Support for AIX version 3 and older was discontinued in GCC 3.4.
3181Support for AIX version 4.2 and older was discontinued in GCC 4.5.
3182
3183   "out of memory" bootstrap failures may indicate a problem with
3184process resource limits (ulimit).  Hard limits are configured in the
3185'/etc/security/limits' system configuration file.
3186
3187   GCC 4.9 and above require a C++ compiler for bootstrap.  IBM VAC++ /
3188xlC cannot bootstrap GCC. xlc can bootstrap an older version of GCC and
3189G++ can bootstrap recent releases of GCC.
3190
3191   GCC can bootstrap with recent versions of IBM XLC, but bootstrapping
3192with an earlier release of GCC is recommended.  Bootstrapping with XLC
3193requires a larger data segment, which can be enabled through the
3194LDR_CNTRL environment variable, e.g.,
3195
3196     % LDR_CNTRL=MAXDATA=0x50000000
3197     % export LDR_CNTRL
3198
3199   One can start with a pre-compiled version of GCC to build from
3200sources.  One may delete GCC's "fixed" header files when starting with a
3201version of GCC built for an earlier release of AIX.
3202
3203   To speed up the configuration phases of bootstrapping and installing
3204GCC, one may use GNU Bash instead of AIX '/bin/sh', e.g.,
3205
3206     % CONFIG_SHELL=/opt/freeware/bin/bash
3207     % export CONFIG_SHELL
3208
3209   and then proceed as described in the build instructions, where we
3210strongly recommend specifying an absolute path to invoke
3211SRCDIR/configure.
3212
3213   Because GCC on AIX is built as a 32-bit executable by default,
3214(although it can generate 64-bit programs) the GMP and MPFR libraries
3215required by gfortran must be 32-bit libraries.  Building GMP and MPFR as
3216static archive libraries works better than shared libraries.
3217
3218   Errors involving 'alloca' when building GCC generally are due to an
3219incorrect definition of 'CC' in the Makefile or mixing files compiled
3220with the native C compiler and GCC.  During the stage1 phase of the
3221build, the native AIX compiler *must* be invoked as 'cc' (not 'xlc').
3222Once 'configure' has been informed of 'xlc', one needs to use 'make
3223distclean' to remove the configure cache files and ensure that 'CC'
3224environment variable does not provide a definition that will confuse
3225'configure'.  If this error occurs during stage2 or later, then the
3226problem most likely is the version of Make (see above).
3227
3228   The native 'as' and 'ld' are recommended for bootstrapping on AIX.
3229The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is the
3230minimum level that supports bootstrap on AIX 5.  The GNU Assembler has
3231not been updated to support AIX 6 or AIX 7.  The native AIX tools do
3232interoperate with GCC.
3233
3234   AIX 7.1 added partial support for DWARF debugging, but full support
3235requires AIX 7.1 TL03 SP7 that supports additional DWARF sections and
3236fixes a bug in the assembler.  AIX 7.1 TL03 SP5 distributed a version of
3237libm.a missing important symbols; a fix for IV77796 will be included in
3238SP6.
3239
3240   AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX
3241assembler change that sometimes produces corrupt assembly files causing
3242AIX linker errors.  The bug breaks GCC bootstrap on AIX and can cause
3243compilation failures with existing GCC installations.  An AIX iFix for
3244AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for
3245AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12).  AIX 5.3 TL11 SP8, AIX 5.3
3246TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 6.1
3247TL07 and AIX 7.1 TL01 should include the fix.
3248
3249   Building 'libstdc++.a' requires a fix for an AIX Assembler bug APAR
3250IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).  It also requires a fix for
3251another AIX Assembler bug and a co-dependent AIX Archiver fix referenced
3252as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
3253
3254   'libstdc++' in GCC 3.4 increments the major version number of the
3255shared object and GCC installation places the 'libstdc++.a' shared
3256library in a common location which will overwrite the and GCC 3.3
3257version of the shared library.  Applications either need to be re-linked
3258against the new shared library or the GCC 3.1 and GCC 3.3 versions of
3259the 'libstdc++' shared object needs to be available to the AIX runtime
3260loader.  The GCC 3.1 'libstdc++.so.4', if present, and GCC 3.3
3261'libstdc++.so.5' shared objects can be installed for runtime dynamic
3262loading using the following steps to set the 'F_LOADONLY' flag in the
3263shared object for _each_ multilib 'libstdc++.a' installed:
3264
3265   Extract the shared objects from the currently installed 'libstdc++.a'
3266archive:
3267     % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
3268
3269   Enable the 'F_LOADONLY' flag so that the shared object will be
3270available for runtime dynamic loading, but not linking:
3271     % strip -e libstdc++.so.4 libstdc++.so.5
3272
3273   Archive the runtime-only shared object in the GCC 3.4 'libstdc++.a'
3274archive:
3275     % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
3276
3277   Eventually, the '--with-aix-soname=svr4' configure option may drop
3278the need for this procedure for libraries that support it.
3279
3280   Linking executables and shared libraries may produce warnings of
3281duplicate symbols.  The assembly files generated by GCC for AIX always
3282have included multiple symbol definitions for certain global variable
3283and function declarations in the original program.  The warnings should
3284not prevent the linker from producing a correct library or runnable
3285executable.
3286
3287   AIX 4.3 utilizes a "large format" archive to support both 32-bit and
328864-bit object modules.  The routines provided in AIX 4.3.0 and AIX 4.3.1
3289to parse archive libraries did not handle the new format correctly.
3290These routines are used by GCC and result in error messages during
3291linking such as "not a COFF file".  The version of the routines shipped
3292with AIX 4.3.1 should work for a 32-bit environment.  The '-g' option of
3293the archive command may be used to create archives of 32-bit objects
3294using the original "small format".  A correct version of the routines is
3295shipped with AIX 4.3.2 and above.
3296
3297   Some versions of the AIX binder (linker) can fail with a relocation
3298overflow severe error when the '-bbigtoc' option is used to link
3299GCC-produced object files into an executable that overflows the TOC.  A
3300fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC)
3301is available from IBM Customer Support and from its
3302techsupport.services.ibm.com website as PTF U455193.
3303
3304   The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
3305core with a segmentation fault when invoked by any version of GCC.  A
3306fix for APAR IX87327 is available from IBM Customer Support and from its
3307techsupport.services.ibm.com website as PTF U461879.  This fix is
3308incorporated in AIX 4.3.3 and above.
3309
3310   The initial assembler shipped with AIX 4.3.0 generates incorrect
3311object files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM
3312COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support
3313and from its techsupport.services.ibm.com website as PTF U453956.  This
3314fix is incorporated in AIX 4.3.1 and above.
3315
3316   AIX provides National Language Support (NLS).  Compilers and
3317assemblers use NLS to support locale-specific representations of various
3318data formats including floating-point numbers (e.g., '.' vs ',' for
3319separating decimal fractions).  There have been problems reported where
3320GCC does not produce the same floating-point formats that the assembler
3321expects.  If one encounters this problem, set the 'LANG' environment
3322variable to 'C' or 'En_US'.
3323
3324   A default can be specified with the '-mcpu=CPU_TYPE' switch and using
3325the configure option '--with-cpu-CPU_TYPE'.
3326
3327iq2000-*-elf
3328============
3329
3330Vitesse IQ2000 processors.  These are used in embedded applications.
3331There are no standard Unix configurations.
3332
3333lm32-*-elf
3334==========
3335
3336Lattice Mico32 processor.  This configuration is intended for embedded
3337systems.
3338
3339lm32-*-uclinux
3340==============
3341
3342Lattice Mico32 processor.  This configuration is intended for embedded
3343systems running uClinux.
3344
3345m32c-*-elf
3346==========
3347
3348Renesas M32C processor.  This configuration is intended for embedded
3349systems.
3350
3351m32r-*-elf
3352==========
3353
3354Renesas M32R processor.  This configuration is intended for embedded
3355systems.
3356
3357m68k-*-*
3358========
3359
3360By default, 'm68k-*-elf*', 'm68k-*-rtems', 'm68k-*-uclinux' and
3361'm68k-*-linux' build libraries for both M680x0 and ColdFire processors.
3362If you only need the M680x0 libraries, you can omit the ColdFire ones by
3363passing '--with-arch=m68k' to 'configure'.  Alternatively, you can omit
3364the M680x0 libraries by passing '--with-arch=cf' to 'configure'.  These
3365targets default to 5206 or 5475 code as appropriate for the target
3366system when configured with '--with-arch=cf' and 68020 code otherwise.
3367
3368   The 'm68k-*-netbsd' and 'm68k-*-openbsd' targets also support the
3369'--with-arch' option.  They will generate ColdFire CFV4e code when
3370configured with '--with-arch=cf' and 68020 code otherwise.
3371
3372   You can override the default processors listed above by configuring
3373with '--with-cpu=TARGET'.  This TARGET can either be a '-mcpu' argument
3374or one of the following values: 'm68000', 'm68010', 'm68020', 'm68030',
3375'm68040', 'm68060', 'm68020-40' and 'm68020-60'.
3376
3377   GCC requires at least binutils version 2.17 on these targets.
3378
3379m68k-*-uclinux
3380==============
3381
3382GCC 4.3 changed the uClinux configuration so that it uses the
3383'm68k-linux-gnu' ABI rather than the 'm68k-elf' ABI. It also added
3384improved support for C++ and flat shared libraries, both of which were
3385ABI changes.
3386
3387microblaze-*-elf
3388================
3389
3390Xilinx MicroBlaze processor.  This configuration is intended for
3391embedded systems.
3392
3393mips-*-*
3394========
3395
3396If on a MIPS system you get an error message saying "does not have gp
3397sections for all it's [sic] sectons [sic]", don't worry about it.  This
3398happens whenever you use GAS with the MIPS linker, but there is not
3399really anything wrong, and it is okay to use the output file.  You can
3400stop such warnings by installing the GNU linker.
3401
3402   It would be nice to extend GAS to produce the gp tables, but they are
3403optional, and there should not be a warning about their absence.
3404
3405   The libstdc++ atomic locking routines for MIPS targets requires MIPS
3406II and later.  A patch went in just after the GCC 3.3 release to make
3407'mips*-*-*' use the generic implementation instead.  You can also
3408configure for 'mipsel-elf' as a workaround.  The 'mips*-*-linux*' target
3409continues to use the MIPS II routines.  More work on this is expected in
3410future releases.
3411
3412   The built-in '__sync_*' functions are available on MIPS II and later
3413systems and others that support the 'll', 'sc' and 'sync' instructions.
3414This can be overridden by passing '--with-llsc' or '--without-llsc' when
3415configuring GCC. Since the Linux kernel emulates these instructions if
3416they are missing, the default for 'mips*-*-linux*' targets is
3417'--with-llsc'.  The '--with-llsc' and '--without-llsc' configure options
3418may be overridden at compile time by passing the '-mllsc' or '-mno-llsc'
3419options to the compiler.
3420
3421   MIPS systems check for division by zero (unless
3422'-mno-check-zero-division' is passed to the compiler) by generating
3423either a conditional trap or a break instruction.  Using trap results in
3424smaller code, but is only supported on MIPS II and later.  Also, some
3425versions of the Linux kernel have a bug that prevents trap from
3426generating the proper signal ('SIGFPE').  To enable the use of break,
3427use the '--with-divide=breaks' 'configure' option when configuring GCC.
3428The default is to use traps on systems that support them.
3429
3430moxie-*-elf
3431===========
3432
3433The moxie processor.
3434
3435msp430-*-elf
3436============
3437
3438TI MSP430 processor.  This configuration is intended for embedded
3439systems.
3440
3441nds32le-*-elf
3442=============
3443
3444Andes NDS32 target in little endian mode.
3445
3446nds32be-*-elf
3447=============
3448
3449Andes NDS32 target in big endian mode.
3450
3451nvptx-*-none
3452============
3453
3454Nvidia PTX target.
3455
3456   Instead of GNU binutils, you will need to install nvptx-tools.  Tell
3457GCC where to find it:
3458'--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin'.
3459
3460   You will need newlib 3.0 git revision
3461cd31fbb2aea25f94d7ecedc9db16dfc87ab0c316 or later.  It can be
3462automatically built together with GCC.  For this, add a symbolic link to
3463nvptx-newlib's 'newlib' directory to the directory containing the GCC
3464sources.
3465
3466   Use the '--disable-sjlj-exceptions' and
3467'--enable-newlib-io-long-long' options when configuring.
3468
3469powerpc-*-*
3470===========
3471
3472You can specify a default version for the '-mcpu=CPU_TYPE' switch by
3473using the configure option '--with-cpu-CPU_TYPE'.
3474
3475   You will need GNU binutils 2.15 or newer.
3476
3477powerpc-*-darwin*
3478=================
3479
3480PowerPC running Darwin (Mac OS X kernel).
3481
3482   Pre-installed versions of Mac OS X may not include any developer
3483tools, meaning that you will not be able to build GCC from source.  Tool
3484binaries are available at <https://opensource.apple.com>.
3485
3486   This version of GCC requires at least cctools-590.36.  The
3487cctools-590.36 package referenced from
3488<http://gcc.gnu.org/ml/gcc/2006-03/msg00507.html> will not work on
3489systems older than 10.3.9 (aka darwin7.9.0).
3490
3491powerpc-*-elf
3492=============
3493
3494PowerPC system in big endian mode, running System V.4.
3495
3496powerpc*-*-linux-gnu*
3497=====================
3498
3499PowerPC system in big endian mode running Linux.
3500
3501powerpc-*-netbsd*
3502=================
3503
3504PowerPC system in big endian mode running NetBSD.
3505
3506powerpc-*-eabisim
3507=================
3508
3509Embedded PowerPC system in big endian mode for use in running under the
3510PSIM simulator.
3511
3512powerpc-*-eabi
3513==============
3514
3515Embedded PowerPC system in big endian mode.
3516
3517powerpcle-*-elf
3518===============
3519
3520PowerPC system in little endian mode, running System V.4.
3521
3522powerpcle-*-eabisim
3523===================
3524
3525Embedded PowerPC system in little endian mode for use in running under
3526the PSIM simulator.
3527
3528powerpcle-*-eabi
3529================
3530
3531Embedded PowerPC system in little endian mode.
3532
3533rl78-*-elf
3534==========
3535
3536The Renesas RL78 processor.  This configuration is intended for embedded
3537systems.
3538
3539riscv32-*-elf
3540=============
3541
3542The RISC-V RV32 instruction set.  This configuration is intended for
3543embedded systems.  This (and all other RISC-V) targets are supported
3544upstream as of the binutils 2.28 release.
3545
3546riscv32-*-linux
3547===============
3548
3549The RISC-V RV32 instruction set running GNU/Linux.  This (and all other
3550RISC-V) targets are supported upstream as of the binutils 2.28 release.
3551
3552riscv64-*-elf
3553=============
3554
3555The RISC-V RV64 instruction set.  This configuration is intended for
3556embedded systems.  This (and all other RISC-V) targets are supported
3557upstream as of the binutils 2.28 release.
3558
3559riscv64-*-linux
3560===============
3561
3562The RISC-V RV64 instruction set running GNU/Linux.  This (and all other
3563RISC-V) targets are supported upstream as of the binutils 2.28 release.
3564
3565rx-*-elf
3566========
3567
3568The Renesas RX processor.
3569
3570s390-*-linux*
3571=============
3572
3573S/390 system running GNU/Linux for S/390.
3574
3575s390x-*-linux*
3576==============
3577
3578zSeries system (64-bit) running GNU/Linux for zSeries.
3579
3580s390x-ibm-tpf*
3581==============
3582
3583zSeries system (64-bit) running TPF.  This platform is supported as
3584cross-compilation target only.
3585
3586*-*-solaris2*
3587=============
3588
3589Support for Solaris 9 has been removed in GCC 5.  Support for Solaris 8
3590has been removed in GCC 4.8.  Support for Solaris 7 has been removed in
3591GCC 4.6.
3592
3593   Sun does not ship a C compiler with Solaris 2 before Solaris 10,
3594though you can download the Sun Studio compilers for free.  In Solaris
359510 and 11, GCC 3.4.3 is available as '/usr/sfw/bin/gcc'.  Solaris 11
3596also provides GCC 4.5.2, 4.7.3, and 4.8.2 as '/usr/gcc/4.5/bin/gcc' or
3597similar.  Alternatively, you can install a pre-built GCC to bootstrap
3598and install GCC. See the binaries page for details.
3599
3600   The Solaris 2 '/bin/sh' will often fail to configure 'libstdc++-v3'or
3601'boehm-gc'.  We therefore recommend using the following initial sequence
3602of commands
3603
3604     % CONFIG_SHELL=/bin/ksh
3605     % export CONFIG_SHELL
3606
3607and proceed as described in the configure instructions.  In addition we
3608strongly recommend specifying an absolute path to invoke
3609'SRCDIR/configure'.
3610
3611   Solaris 10 comes with a number of optional OS packages.  Some of
3612these are needed to use GCC fully, namely 'SUNWarc', 'SUNWbtool',
3613'SUNWesu', 'SUNWhea', 'SUNWlibm', 'SUNWsprot', and 'SUNWtoo'.  If you
3614did not install all optional packages when installing Solaris 10, you
3615will need to verify that the packages that GCC needs are installed.  To
3616check whether an optional package is installed, use the 'pkginfo'
3617command.  To add an optional package, use the 'pkgadd' command.  For
3618further details, see the Solaris 10 documentation.
3619
3620   Starting with Solaris 11, the package management has changed, so you
3621need to check for 'system/header', 'system/linker', and
3622'developer/assembler' packages.  Checking for and installing packages is
3623done with the 'pkg' command now.
3624
3625   Trying to use the linker and other tools in '/usr/ucb' to install GCC
3626has been observed to cause trouble.  For example, the linker may hang
3627indefinitely.  The fix is to remove '/usr/ucb' from your 'PATH'.
3628
3629   The build process works more smoothly with the legacy Sun tools so,
3630if you have '/usr/xpg4/bin' in your 'PATH', we recommend that you place
3631'/usr/bin' before '/usr/xpg4/bin' for the duration of the build.
3632
3633   We recommend the use of the Solaris assembler or the GNU assembler,
3634in conjunction with the Solaris linker.  The GNU 'as' versions included
3635in Solaris 10, from GNU binutils 2.15 (in '/usr/sfw/bin/gas'), and
3636Solaris 11, from GNU binutils 2.19 or newer (also in '/usr/bin/gas' and
3637'/usr/gnu/bin/as'), are known to work.  The current version, from GNU
3638binutils 2.29, is known to work as well.  Note that your mileage may
3639vary if you use a combination of the GNU tools and the Solaris tools:
3640while the combination GNU 'as' + Sun 'ld' should reasonably work, the
3641reverse combination Sun 'as' + GNU 'ld' may fail to build or cause
3642memory corruption at runtime in some cases for C++ programs.  GNU 'ld'
3643usually works as well, although the version included in Solaris 10
3644cannot be used due to several bugs.  Again, the current version (2.29)
3645is known to work, but generally lacks platform specific features, so
3646better stay with Solaris 'ld'.  To use the LTO linker plugin
3647('-fuse-linker-plugin') with GNU 'ld', GNU binutils _must_ be configured
3648with '--enable-largefile'.
3649
3650   To enable symbol versioning in 'libstdc++' with the Solaris linker,
3651you need to have any version of GNU 'c++filt', which is part of GNU
3652binutils.  'libstdc++' symbol versioning will be disabled if no
3653appropriate version is found.  Solaris 'c++filt' from the Solaris Studio
3654compilers does _not_ work.
3655
3656   Sun bug 4927647 sometimes causes random spurious testsuite failures
3657related to missing diagnostic output.  This bug doesn't affect GCC
3658itself, rather it is a kernel bug triggered by the 'expect' program
3659which is used only by the GCC testsuite driver.  When the bug causes the
3660'expect' program to miss anticipated output, extra testsuite failures
3661appear.
3662
3663sparc*-*-*
3664==========
3665
3666This section contains general configuration information for all
3667SPARC-based platforms.  In addition to reading this section, please read
3668all other sections that match your target.
3669
3670   Newer versions of the GNU Multiple Precision Library (GMP), the MPFR
3671library and the MPC library are known to be miscompiled by earlier
3672versions of GCC on these platforms.  We therefore recommend the use of
3673the exact versions of these libraries listed as minimal versions in the
3674prerequisites.
3675
3676sparc-sun-solaris2*
3677===================
3678
3679When GCC is configured to use GNU binutils 2.14 or later, the binaries
3680produced are smaller than the ones produced using Sun's native tools;
3681this difference is quite significant for binaries containing debugging
3682information.
3683
3684   Starting with Solaris 7, the operating system is capable of executing
368564-bit SPARC V9 binaries.  GCC 3.1 and later properly supports this; the
3686'-m64' option enables 64-bit code generation.  However, if all you want
3687is code tuned for the UltraSPARC CPU, you should try the
3688'-mtune=ultrasparc' option instead, which produces code that, unlike
3689full 64-bit code, can still run on non-UltraSPARC machines.
3690
3691   When configuring the GNU Multiple Precision Library (GMP), the MPFR
3692library or the MPC library on a Solaris 7 or later system, the canonical
3693target triplet must be specified as the 'build' parameter on the
3694configure line.  This target triplet can be obtained by invoking
3695'./config.guess' in the toplevel source directory of GCC (and not that
3696of GMP or MPFR or MPC). For example on a Solaris 9 system:
3697
3698     % ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
3699
3700sparc-sun-solaris2.10
3701=====================
3702
3703There is a bug in older versions of the Sun assembler which breaks
3704thread-local storage (TLS). A typical error message is
3705
3706     ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o:
3707       symbol <unknown>: bad symbol type SECT: symbol type must be TLS
3708
3709This bug is fixed in Sun patch 118683-03 or later.
3710
3711sparc-*-linux*
3712==============
3713
3714sparc64-*-solaris2*
3715===================
3716
3717When configuring the GNU Multiple Precision Library (GMP), the MPFR
3718library or the MPC library, the canonical target triplet must be
3719specified as the 'build' parameter on the configure line.  For example
3720on a Solaris 9 system:
3721
3722     % ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
3723
3724sparcv9-*-solaris2*
3725===================
3726
3727This is a synonym for 'sparc64-*-solaris2*'.
3728
3729c6x-*-*
3730=======
3731
3732The C6X family of processors.  This port requires binutils-2.22 or
3733newer.
3734
3735tilegx-*-linux*
3736===============
3737
3738The TILE-Gx processor in little endian mode, running GNU/Linux.  This
3739port requires binutils-2.22 or newer.
3740
3741tilegxbe-*-linux*
3742=================
3743
3744The TILE-Gx processor in big endian mode, running GNU/Linux.  This port
3745requires binutils-2.23 or newer.
3746
3747tilepro-*-linux*
3748================
3749
3750The TILEPro processor running GNU/Linux.  This port requires
3751binutils-2.22 or newer.
3752
3753visium-*-elf
3754============
3755
3756CDS VISIUMcore processor.  This configuration is intended for embedded
3757systems.
3758
3759*-*-vxworks*
3760============
3761
3762Support for VxWorks is in flux.  At present GCC supports _only_ the very
3763recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.  We
3764welcome patches for other architectures supported by VxWorks 5.5.
3765Support for VxWorks AE would also be welcome; we believe this is merely
3766a matter of writing an appropriate "configlette" (see below).  We are
3767not interested in supporting older, a.out or COFF-based, versions of
3768VxWorks in GCC 3.
3769
3770   VxWorks comes with an older version of GCC installed in
3771'$WIND_BASE/host'; we recommend you do not overwrite it.  Choose an
3772installation PREFIX entirely outside $WIND_BASE.  Before running
3773'configure', create the directories 'PREFIX' and 'PREFIX/bin'.  Link or
3774copy the appropriate assembler, linker, etc. into 'PREFIX/bin', and set
3775your PATH to include that directory while running both 'configure' and
3776'make'.
3777
3778   You must give 'configure' the '--with-headers=$WIND_BASE/target/h'
3779switch so that it can find the VxWorks system headers.  Since VxWorks is
3780a cross compilation target only, you must also specify
3781'--target=TARGET'.  'configure' will attempt to create the directory
3782'PREFIX/TARGET/sys-include' and copy files into it; make sure the user
3783running 'configure' has sufficient privilege to do so.
3784
3785   GCC's exception handling runtime requires a special "configlette"
3786module, 'contrib/gthr_supp_vxw_5x.c'.  Follow the instructions in that
3787file to add the module to your kernel build.  (Future versions of
3788VxWorks will incorporate this module.)
3789
3790x86_64-*-*, amd64-*-*
3791=====================
3792
3793GCC supports the x86-64 architecture implemented by the AMD64 processor
3794(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
3795On GNU/Linux the default is a bi-arch compiler which is able to generate
3796both 64-bit x86-64 and 32-bit x86 code (via the '-m32' switch).
3797
3798x86_64-*-solaris2.1[0-9]*
3799=========================
3800
3801GCC also supports the x86-64 architecture implemented by the AMD64
3802processor ('amd64-*-*' is an alias for 'x86_64-*-*') on Solaris 10 or
3803later.  Unlike other systems, without special options a bi-arch compiler
3804is built which generates 32-bit code by default, but can generate 64-bit
3805x86-64 code with the '-m64' switch.  Since GCC 4.7, there is also a
3806configuration that defaults to 64-bit code, but can generate 32-bit code
3807with '-m32'.  To configure and build this way, you have to provide all
3808support libraries like 'libgmp' as 64-bit code, configure with
3809'--target=x86_64-pc-solaris2.1x' and 'CC=gcc -m64'.
3810
3811xtensa*-*-elf
3812=============
3813
3814This target is intended for embedded Xtensa systems using the 'newlib' C
3815library.  It uses ELF but does not support shared objects.
3816Designed-defined instructions specified via the Tensilica Instruction
3817Extension (TIE) language are only supported through inline assembly.
3818
3819   The Xtensa configuration information must be specified prior to
3820building GCC.  The 'include/xtensa-config.h' header file contains the
3821configuration information.  If you created your own Xtensa configuration
3822with the Xtensa Processor Generator, the downloaded files include a
3823customized copy of this header file, which you can use to replace the
3824default header file.
3825
3826xtensa*-*-linux*
3827================
3828
3829This target is for Xtensa systems running GNU/Linux.  It supports ELF
3830shared objects and the GNU C library (glibc).  It also generates
3831position-independent code (PIC) regardless of whether the '-fpic' or
3832'-fPIC' options are used.  In other respects, this target is the same as
3833the 'xtensa*-*-elf' target.
3834
3835Microsoft Windows
3836=================
3837
3838Intel 16-bit versions
3839---------------------
3840
3841The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
3842supported.
3843
3844   However, the 32-bit port has limited support for Microsoft Windows
38453.11 in the Win32s environment, as a target only.  See below.
3846
3847Intel 32-bit versions
3848---------------------
3849
3850The 32-bit versions of Windows, including Windows 95, Windows NT,
3851Windows XP, and Windows Vista, are supported by several different target
3852platforms.  These targets differ in which Windows subsystem they target
3853and which C libraries are used.
3854
3855   * Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation
3856     layer in the Win32 subsystem.
3857   * MinGW *-*-mingw32: MinGW is a native GCC port for the Win32
3858     subsystem that provides a subset of POSIX.
3859   * MKS i386-pc-mks: NuTCracker from MKS. See
3860     <https://www.mkssoftware.com> for more information.
3861
3862Intel 64-bit versions
3863---------------------
3864
3865GCC contains support for x86-64 using the mingw-w64 runtime library,
3866available from <http://mingw-w64.org/doku.php>.  This library should be
3867used with the target triple x86_64-pc-mingw32.
3868
3869   Presently Windows for Itanium is not supported.
3870
3871Windows CE
3872----------
3873
3874Windows CE is supported as a target only on Hitachi SuperH
3875(sh-wince-pe), and MIPS (mips-wince-pe).
3876
3877Other Windows Platforms
3878-----------------------
3879
3880GCC no longer supports Windows NT on the Alpha or PowerPC.
3881
3882   GCC no longer supports the Windows POSIX subsystem.  However, it does
3883support the Interix subsystem.  See above.
3884
3885   Old target names including *-*-winnt and *-*-windowsnt are no longer
3886used.
3887
3888   PW32 (i386-pc-pw32) support was never completed, and the project
3889seems to be inactive.  See <http://pw32.sourceforge.net/> for more
3890information.
3891
3892   UWIN support has been removed due to a lack of maintenance.
3893
3894*-*-cygwin
3895==========
3896
3897Ports of GCC are included with the Cygwin environment.
3898
3899   GCC will build under Cygwin without modification; it does not build
3900with Microsoft's C++ compiler and there are no plans to make it do so.
3901
3902   The Cygwin native compiler can be configured to target any 32-bit x86
3903cpu architecture desired; the default is i686-pc-cygwin.  It should be
3904used with as up-to-date a version of binutils as possible; use either
3905the latest official GNU binutils release in the Cygwin distribution, or
3906version 2.20 or above if building your own.
3907
3908*-*-mingw32
3909===========
3910
3911GCC will build with and support only MinGW runtime 3.12 and later.
3912Earlier versions of headers are incompatible with the new default
3913semantics of 'extern inline' in '-std=c99' and '-std=gnu99' modes.
3914
3915Older systems
3916=============
3917
3918GCC contains support files for many older (1980s and early 1990s) Unix
3919variants.  For the most part, support for these systems has not been
3920deliberately removed, but it has not been maintained for several years
3921and may suffer from bitrot.
3922
3923   Starting with GCC 3.1, each release has a list of "obsoleted"
3924systems.  Support for these systems is still present in that release,
3925but 'configure' will fail unless the '--enable-obsolete' option is
3926given.  Unless a maintainer steps forward, support for these systems
3927will be removed from the next release of GCC.
3928
3929   Support for old systems as hosts for GCC can cause problems if the
3930workarounds for compiler, library and operating system bugs affect the
3931cleanliness or maintainability of the rest of GCC.  In some cases, to
3932bring GCC up on such a system, if still possible with current GCC, may
3933require first installing an old version of GCC which did work on that
3934system, and using it to compile a more recent GCC, to avoid bugs in the
3935vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
3936'old-releases' directory on the GCC mirror sites.  Header bugs may
3937generally be avoided using 'fixincludes', but bugs or deficiencies in
3938libraries and the operating system may still cause problems.
3939
3940   Support for older systems as targets for cross-compilation is less
3941problematic than support for them as hosts for GCC; if an enthusiast
3942wishes to make such a target work again (including resurrecting any of
3943the targets that never worked with GCC 2, starting from the last version
3944before they were removed), patches following the usual requirements
3945would be likely to be accepted, since they should not affect the support
3946for more modern targets.
3947
3948   For some systems, old versions of GNU binutils may also be useful,
3949and are available from 'pub/binutils/old-releases' on sourceware.org
3950mirror sites.
3951
3952   Some of the information on specific systems above relates to such
3953older systems, but much of the information about GCC on such systems
3954(which may no longer be applicable to current GCC) is to be found in the
3955GCC texinfo manual.
3956
3957all ELF targets (SVR4, Solaris 2, etc.)
3958=======================================
3959
3960C++ support is significantly better on ELF targets if you use the GNU
3961linker; duplicate copies of inlines, vtables and template instantiations
3962will be discarded automatically.
3963
3964
3965File: gccinstall.info,  Node: Old,  Next: GNU Free Documentation License,  Prev: Specific,  Up: Top
3966
396710 Old installation documentation
3968*********************************
3969
3970Note most of this information is out of date and superseded by the
3971previous chapters of this manual.  It is provided for historical
3972reference only, because of a lack of volunteers to merge it into the
3973main manual.
3974
3975* Menu:
3976
3977* Configurations::    Configurations Supported by GCC.
3978
3979   Here is the procedure for installing GCC on a GNU or Unix system.
3980
3981  1. If you have chosen a configuration for GCC which requires other GNU
3982     tools (such as GAS or the GNU linker) instead of the standard
3983     system tools, install the required tools in the build directory
3984     under the names 'as', 'ld' or whatever is appropriate.
3985
3986     Alternatively, you can do subsequent compilation using a value of
3987     the 'PATH' environment variable such that the necessary GNU tools
3988     come before the standard system tools.
3989
3990  2. Specify the host, build and target machine configurations.  You do
3991     this when you run the 'configure' script.
3992
3993     The "build" machine is the system which you are using, the "host"
3994     machine is the system where you want to run the resulting compiler
3995     (normally the build machine), and the "target" machine is the
3996     system for which you want the compiler to generate code.
3997
3998     If you are building a compiler to produce code for the machine it
3999     runs on (a native compiler), you normally do not need to specify
4000     any operands to 'configure'; it will try to guess the type of
4001     machine you are on and use that as the build, host and target
4002     machines.  So you don't need to specify a configuration when
4003     building a native compiler unless 'configure' cannot figure out
4004     what your configuration is or guesses wrong.
4005
4006     In those cases, specify the build machine's "configuration name"
4007     with the '--host' option; the host and target will default to be
4008     the same as the host machine.
4009
4010     Here is an example:
4011
4012          ./configure --host=sparc-sun-sunos4.1
4013
4014     A configuration name may be canonical or it may be more or less
4015     abbreviated.
4016
4017     A canonical configuration name has three parts, separated by
4018     dashes.  It looks like this: 'CPU-COMPANY-SYSTEM'.  (The three
4019     parts may themselves contain dashes; 'configure' can figure out
4020     which dashes serve which purpose.)  For example,
4021     'm68k-sun-sunos4.1' specifies a Sun 3.
4022
4023     You can also replace parts of the configuration by nicknames or
4024     aliases.  For example, 'sun3' stands for 'm68k-sun', so
4025     'sun3-sunos4.1' is another way to specify a Sun 3.
4026
4027     You can specify a version number after any of the system types, and
4028     some of the CPU types.  In most cases, the version is irrelevant,
4029     and will be ignored.  So you might as well specify the version if
4030     you know it.
4031
4032     See *note Configurations::, for a list of supported configuration
4033     names and notes on many of the configurations.  You should check
4034     the notes in that section before proceeding any further with the
4035     installation of GCC.
4036
4037
4038File: gccinstall.info,  Node: Configurations,  Up: Old
4039
404010.1 Configurations Supported by GCC
4041====================================
4042
4043Here are the possible CPU types:
4044
4045     1750a, a29k, alpha, arm, avr, cN, clipper, dsp16xx, elxsi, fr30,
4046     h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860,
4047     i960, ip2k, m32r, m68000, m68k, m88k, mcore, mips, mipsel, mips64,
4048     mips64el, mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp,
4049     rs6000, sh, sparc, sparclite, sparc64, v850, vax, we32k.
4050
4051   Here are the recognized company names.  As you can see, customary
4052abbreviations are used rather than the longer official names.
4053
4054     acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent,
4055     convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, hp,
4056     ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron, plexus,
4057     sequent, sgi, sony, sun, tti, unicom, wrs.
4058
4059   The company name is meaningful only to disambiguate when the rest of
4060the information supplied is insufficient.  You can omit it, writing just
4061'CPU-SYSTEM', if it is not needed.  For example, 'vax-ultrix4.2' is
4062equivalent to 'vax-dec-ultrix4.2'.
4063
4064   Here is a list of system types:
4065
4066     386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff,
4067     ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
4068     genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna,
4069     lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf,
4070     osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym,
4071     sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks,
4072     winnt, xenix.
4073
4074You can omit the system type; then 'configure' guesses the operating
4075system from the CPU and company.
4076
4077   You can add a version number to the system type; this may or may not
4078make a difference.  For example, you can write 'bsd4.3' or 'bsd4.4' to
4079distinguish versions of BSD.  In practice, the version number is most
4080needed for 'sysv3' and 'sysv4', which are often treated differently.
4081
4082   'linux-gnu' is the canonical name for the GNU/Linux target; however
4083GCC will also accept 'linux'.  The version of the kernel in use is not
4084relevant on these systems.  A suffix such as 'libc1' or 'aout'
4085distinguishes major versions of the C library; all of the suffixed
4086versions are obsolete.
4087
4088   If you specify an impossible combination such as 'i860-dg-vms', then
4089you may get an error message from 'configure', or it may ignore part of
4090the information and do the best it can with the rest.  'configure'
4091always prints the canonical name for the alternative that it used.  GCC
4092does not support all possible alternatives.
4093
4094   Often a particular model of machine has a name.  Many machine names
4095are recognized as aliases for CPU/company combinations.  Thus, the
4096machine name 'sun3', mentioned above, is an alias for 'm68k-sun'.
4097Sometimes we accept a company name as a machine name, when the name is
4098popularly used for a particular machine.  Here is a table of the known
4099machine names:
4100
4101     3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
4102     balance, convex-cN, crds, decstation-3100, decstation, delta,
4103     encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
4104     hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
4105     mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
4106     powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3, sun4,
4107     symmetry, tower-32, tower.
4108
4109Remember that a machine name specifies both the cpu type and the company
4110name.
4111
4112
4113File: gccinstall.info,  Node: GNU Free Documentation License,  Next: Concept Index,  Prev: Old,  Up: Top
4114
4115GNU Free Documentation License
4116******************************
4117
4118                     Version 1.3, 3 November 2008
4119
4120     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
4121     <http://fsf.org/>
4122
4123     Everyone is permitted to copy and distribute verbatim copies
4124     of this license document, but changing it is not allowed.
4125
4126  0. PREAMBLE
4127
4128     The purpose of this License is to make a manual, textbook, or other
4129     functional and useful document "free" in the sense of freedom: to
4130     assure everyone the effective freedom to copy and redistribute it,
4131     with or without modifying it, either commercially or
4132     noncommercially.  Secondarily, this License preserves for the
4133     author and publisher a way to get credit for their work, while not
4134     being considered responsible for modifications made by others.
4135
4136     This License is a kind of "copyleft", which means that derivative
4137     works of the document must themselves be free in the same sense.
4138     It complements the GNU General Public License, which is a copyleft
4139     license designed for free software.
4140
4141     We have designed this License in order to use it for manuals for
4142     free software, because free software needs free documentation: a
4143     free program should come with manuals providing the same freedoms
4144     that the software does.  But this License is not limited to
4145     software manuals; it can be used for any textual work, regardless
4146     of subject matter or whether it is published as a printed book.  We
4147     recommend this License principally for works whose purpose is
4148     instruction or reference.
4149
4150  1. APPLICABILITY AND DEFINITIONS
4151
4152     This License applies to any manual or other work, in any medium,
4153     that contains a notice placed by the copyright holder saying it can
4154     be distributed under the terms of this License.  Such a notice
4155     grants a world-wide, royalty-free license, unlimited in duration,
4156     to use that work under the conditions stated herein.  The
4157     "Document", below, refers to any such manual or work.  Any member
4158     of the public is a licensee, and is addressed as "you".  You accept
4159     the license if you copy, modify or distribute the work in a way
4160     requiring permission under copyright law.
4161
4162     A "Modified Version" of the Document means any work containing the
4163     Document or a portion of it, either copied verbatim, or with
4164     modifications and/or translated into another language.
4165
4166     A "Secondary Section" is a named appendix or a front-matter section
4167     of the Document that deals exclusively with the relationship of the
4168     publishers or authors of the Document to the Document's overall
4169     subject (or to related matters) and contains nothing that could
4170     fall directly within that overall subject.  (Thus, if the Document
4171     is in part a textbook of mathematics, a Secondary Section may not
4172     explain any mathematics.)  The relationship could be a matter of
4173     historical connection with the subject or with related matters, or
4174     of legal, commercial, philosophical, ethical or political position
4175     regarding them.
4176
4177     The "Invariant Sections" are certain Secondary Sections whose
4178     titles are designated, as being those of Invariant Sections, in the
4179     notice that says that the Document is released under this License.
4180     If a section does not fit the above definition of Secondary then it
4181     is not allowed to be designated as Invariant.  The Document may
4182     contain zero Invariant Sections.  If the Document does not identify
4183     any Invariant Sections then there are none.
4184
4185     The "Cover Texts" are certain short passages of text that are
4186     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
4187     that says that the Document is released under this License.  A
4188     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
4189     be at most 25 words.
4190
4191     A "Transparent" copy of the Document means a machine-readable copy,
4192     represented in a format whose specification is available to the
4193     general public, that is suitable for revising the document
4194     straightforwardly with generic text editors or (for images composed
4195     of pixels) generic paint programs or (for drawings) some widely
4196     available drawing editor, and that is suitable for input to text
4197     formatters or for automatic translation to a variety of formats
4198     suitable for input to text formatters.  A copy made in an otherwise
4199     Transparent file format whose markup, or absence of markup, has
4200     been arranged to thwart or discourage subsequent modification by
4201     readers is not Transparent.  An image format is not Transparent if
4202     used for any substantial amount of text.  A copy that is not
4203     "Transparent" is called "Opaque".
4204
4205     Examples of suitable formats for Transparent copies include plain
4206     ASCII without markup, Texinfo input format, LaTeX input format,
4207     SGML or XML using a publicly available DTD, and standard-conforming
4208     simple HTML, PostScript or PDF designed for human modification.
4209     Examples of transparent image formats include PNG, XCF and JPG.
4210     Opaque formats include proprietary formats that can be read and
4211     edited only by proprietary word processors, SGML or XML for which
4212     the DTD and/or processing tools are not generally available, and
4213     the machine-generated HTML, PostScript or PDF produced by some word
4214     processors for output purposes only.
4215
4216     The "Title Page" means, for a printed book, the title page itself,
4217     plus such following pages as are needed to hold, legibly, the
4218     material this License requires to appear in the title page.  For
4219     works in formats which do not have any title page as such, "Title
4220     Page" means the text near the most prominent appearance of the
4221     work's title, preceding the beginning of the body of the text.
4222
4223     The "publisher" means any person or entity that distributes copies
4224     of the Document to the public.
4225
4226     A section "Entitled XYZ" means a named subunit of the Document
4227     whose title either is precisely XYZ or contains XYZ in parentheses
4228     following text that translates XYZ in another language.  (Here XYZ
4229     stands for a specific section name mentioned below, such as
4230     "Acknowledgements", "Dedications", "Endorsements", or "History".)
4231     To "Preserve the Title" of such a section when you modify the
4232     Document means that it remains a section "Entitled XYZ" according
4233     to this definition.
4234
4235     The Document may include Warranty Disclaimers next to the notice
4236     which states that this License applies to the Document.  These
4237     Warranty Disclaimers are considered to be included by reference in
4238     this License, but only as regards disclaiming warranties: any other
4239     implication that these Warranty Disclaimers may have is void and
4240     has no effect on the meaning of this License.
4241
4242  2. VERBATIM COPYING
4243
4244     You may copy and distribute the Document in any medium, either
4245     commercially or noncommercially, provided that this License, the
4246     copyright notices, and the license notice saying this License
4247     applies to the Document are reproduced in all copies, and that you
4248     add no other conditions whatsoever to those of this License.  You
4249     may not use technical measures to obstruct or control the reading
4250     or further copying of the copies you make or distribute.  However,
4251     you may accept compensation in exchange for copies.  If you
4252     distribute a large enough number of copies you must also follow the
4253     conditions in section 3.
4254
4255     You may also lend copies, under the same conditions stated above,
4256     and you may publicly display copies.
4257
4258  3. COPYING IN QUANTITY
4259
4260     If you publish printed copies (or copies in media that commonly
4261     have printed covers) of the Document, numbering more than 100, and
4262     the Document's license notice requires Cover Texts, you must
4263     enclose the copies in covers that carry, clearly and legibly, all
4264     these Cover Texts: Front-Cover Texts on the front cover, and
4265     Back-Cover Texts on the back cover.  Both covers must also clearly
4266     and legibly identify you as the publisher of these copies.  The
4267     front cover must present the full title with all words of the title
4268     equally prominent and visible.  You may add other material on the
4269     covers in addition.  Copying with changes limited to the covers, as
4270     long as they preserve the title of the Document and satisfy these
4271     conditions, can be treated as verbatim copying in other respects.
4272
4273     If the required texts for either cover are too voluminous to fit
4274     legibly, you should put the first ones listed (as many as fit
4275     reasonably) on the actual cover, and continue the rest onto
4276     adjacent pages.
4277
4278     If you publish or distribute Opaque copies of the Document
4279     numbering more than 100, you must either include a machine-readable
4280     Transparent copy along with each Opaque copy, or state in or with
4281     each Opaque copy a computer-network location from which the general
4282     network-using public has access to download using public-standard
4283     network protocols a complete Transparent copy of the Document, free
4284     of added material.  If you use the latter option, you must take
4285     reasonably prudent steps, when you begin distribution of Opaque
4286     copies in quantity, to ensure that this Transparent copy will
4287     remain thus accessible at the stated location until at least one
4288     year after the last time you distribute an Opaque copy (directly or
4289     through your agents or retailers) of that edition to the public.
4290
4291     It is requested, but not required, that you contact the authors of
4292     the Document well before redistributing any large number of copies,
4293     to give them a chance to provide you with an updated version of the
4294     Document.
4295
4296  4. MODIFICATIONS
4297
4298     You may copy and distribute a Modified Version of the Document
4299     under the conditions of sections 2 and 3 above, provided that you
4300     release the Modified Version under precisely this License, with the
4301     Modified Version filling the role of the Document, thus licensing
4302     distribution and modification of the Modified Version to whoever
4303     possesses a copy of it.  In addition, you must do these things in
4304     the Modified Version:
4305
4306       A. Use in the Title Page (and on the covers, if any) a title
4307          distinct from that of the Document, and from those of previous
4308          versions (which should, if there were any, be listed in the
4309          History section of the Document).  You may use the same title
4310          as a previous version if the original publisher of that
4311          version gives permission.
4312
4313       B. List on the Title Page, as authors, one or more persons or
4314          entities responsible for authorship of the modifications in
4315          the Modified Version, together with at least five of the
4316          principal authors of the Document (all of its principal
4317          authors, if it has fewer than five), unless they release you
4318          from this requirement.
4319
4320       C. State on the Title page the name of the publisher of the
4321          Modified Version, as the publisher.
4322
4323       D. Preserve all the copyright notices of the Document.
4324
4325       E. Add an appropriate copyright notice for your modifications
4326          adjacent to the other copyright notices.
4327
4328       F. Include, immediately after the copyright notices, a license
4329          notice giving the public permission to use the Modified
4330          Version under the terms of this License, in the form shown in
4331          the Addendum below.
4332
4333       G. Preserve in that license notice the full lists of Invariant
4334          Sections and required Cover Texts given in the Document's
4335          license notice.
4336
4337       H. Include an unaltered copy of this License.
4338
4339       I. Preserve the section Entitled "History", Preserve its Title,
4340          and add to it an item stating at least the title, year, new
4341          authors, and publisher of the Modified Version as given on the
4342          Title Page.  If there is no section Entitled "History" in the
4343          Document, create one stating the title, year, authors, and
4344          publisher of the Document as given on its Title Page, then add
4345          an item describing the Modified Version as stated in the
4346          previous sentence.
4347
4348       J. Preserve the network location, if any, given in the Document
4349          for public access to a Transparent copy of the Document, and
4350          likewise the network locations given in the Document for
4351          previous versions it was based on.  These may be placed in the
4352          "History" section.  You may omit a network location for a work
4353          that was published at least four years before the Document
4354          itself, or if the original publisher of the version it refers
4355          to gives permission.
4356
4357       K. For any section Entitled "Acknowledgements" or "Dedications",
4358          Preserve the Title of the section, and preserve in the section
4359          all the substance and tone of each of the contributor
4360          acknowledgements and/or dedications given therein.
4361
4362       L. Preserve all the Invariant Sections of the Document, unaltered
4363          in their text and in their titles.  Section numbers or the
4364          equivalent are not considered part of the section titles.
4365
4366       M. Delete any section Entitled "Endorsements".  Such a section
4367          may not be included in the Modified Version.
4368
4369       N. Do not retitle any existing section to be Entitled
4370          "Endorsements" or to conflict in title with any Invariant
4371          Section.
4372
4373       O. Preserve any Warranty Disclaimers.
4374
4375     If the Modified Version includes new front-matter sections or
4376     appendices that qualify as Secondary Sections and contain no
4377     material copied from the Document, you may at your option designate
4378     some or all of these sections as invariant.  To do this, add their
4379     titles to the list of Invariant Sections in the Modified Version's
4380     license notice.  These titles must be distinct from any other
4381     section titles.
4382
4383     You may add a section Entitled "Endorsements", provided it contains
4384     nothing but endorsements of your Modified Version by various
4385     parties--for example, statements of peer review or that the text
4386     has been approved by an organization as the authoritative
4387     definition of a standard.
4388
4389     You may add a passage of up to five words as a Front-Cover Text,
4390     and a passage of up to 25 words as a Back-Cover Text, to the end of
4391     the list of Cover Texts in the Modified Version.  Only one passage
4392     of Front-Cover Text and one of Back-Cover Text may be added by (or
4393     through arrangements made by) any one entity.  If the Document
4394     already includes a cover text for the same cover, previously added
4395     by you or by arrangement made by the same entity you are acting on
4396     behalf of, you may not add another; but you may replace the old
4397     one, on explicit permission from the previous publisher that added
4398     the old one.
4399
4400     The author(s) and publisher(s) of the Document do not by this
4401     License give permission to use their names for publicity for or to
4402     assert or imply endorsement of any Modified Version.
4403
4404  5. COMBINING DOCUMENTS
4405
4406     You may combine the Document with other documents released under
4407     this License, under the terms defined in section 4 above for
4408     modified versions, provided that you include in the combination all
4409     of the Invariant Sections of all of the original documents,
4410     unmodified, and list them all as Invariant Sections of your
4411     combined work in its license notice, and that you preserve all
4412     their Warranty Disclaimers.
4413
4414     The combined work need only contain one copy of this License, and
4415     multiple identical Invariant Sections may be replaced with a single
4416     copy.  If there are multiple Invariant Sections with the same name
4417     but different contents, make the title of each such section unique
4418     by adding at the end of it, in parentheses, the name of the
4419     original author or publisher of that section if known, or else a
4420     unique number.  Make the same adjustment to the section titles in
4421     the list of Invariant Sections in the license notice of the
4422     combined work.
4423
4424     In the combination, you must combine any sections Entitled
4425     "History" in the various original documents, forming one section
4426     Entitled "History"; likewise combine any sections Entitled
4427     "Acknowledgements", and any sections Entitled "Dedications".  You
4428     must delete all sections Entitled "Endorsements."
4429
4430  6. COLLECTIONS OF DOCUMENTS
4431
4432     You may make a collection consisting of the Document and other
4433     documents released under this License, and replace the individual
4434     copies of this License in the various documents with a single copy
4435     that is included in the collection, provided that you follow the
4436     rules of this License for verbatim copying of each of the documents
4437     in all other respects.
4438
4439     You may extract a single document from such a collection, and
4440     distribute it individually under this License, provided you insert
4441     a copy of this License into the extracted document, and follow this
4442     License in all other respects regarding verbatim copying of that
4443     document.
4444
4445  7. AGGREGATION WITH INDEPENDENT WORKS
4446
4447     A compilation of the Document or its derivatives with other
4448     separate and independent documents or works, in or on a volume of a
4449     storage or distribution medium, is called an "aggregate" if the
4450     copyright resulting from the compilation is not used to limit the
4451     legal rights of the compilation's users beyond what the individual
4452     works permit.  When the Document is included in an aggregate, this
4453     License does not apply to the other works in the aggregate which
4454     are not themselves derivative works of the Document.
4455
4456     If the Cover Text requirement of section 3 is applicable to these
4457     copies of the Document, then if the Document is less than one half
4458     of the entire aggregate, the Document's Cover Texts may be placed
4459     on covers that bracket the Document within the aggregate, or the
4460     electronic equivalent of covers if the Document is in electronic
4461     form.  Otherwise they must appear on printed covers that bracket
4462     the whole aggregate.
4463
4464  8. TRANSLATION
4465
4466     Translation is considered a kind of modification, so you may
4467     distribute translations of the Document under the terms of section
4468     4.  Replacing Invariant Sections with translations requires special
4469     permission from their copyright holders, but you may include
4470     translations of some or all Invariant Sections in addition to the
4471     original versions of these Invariant Sections.  You may include a
4472     translation of this License, and all the license notices in the
4473     Document, and any Warranty Disclaimers, provided that you also
4474     include the original English version of this License and the
4475     original versions of those notices and disclaimers.  In case of a
4476     disagreement between the translation and the original version of
4477     this License or a notice or disclaimer, the original version will
4478     prevail.
4479
4480     If a section in the Document is Entitled "Acknowledgements",
4481     "Dedications", or "History", the requirement (section 4) to
4482     Preserve its Title (section 1) will typically require changing the
4483     actual title.
4484
4485  9. TERMINATION
4486
4487     You may not copy, modify, sublicense, or distribute the Document
4488     except as expressly provided under this License.  Any attempt
4489     otherwise to copy, modify, sublicense, or distribute it is void,
4490     and will automatically terminate your rights under this License.
4491
4492     However, if you cease all violation of this License, then your
4493     license from a particular copyright holder is reinstated (a)
4494     provisionally, unless and until the copyright holder explicitly and
4495     finally terminates your license, and (b) permanently, if the
4496     copyright holder fails to notify you of the violation by some
4497     reasonable means prior to 60 days after the cessation.
4498
4499     Moreover, your license from a particular copyright holder is
4500     reinstated permanently if the copyright holder notifies you of the
4501     violation by some reasonable means, this is the first time you have
4502     received notice of violation of this License (for any work) from
4503     that copyright holder, and you cure the violation prior to 30 days
4504     after your receipt of the notice.
4505
4506     Termination of your rights under this section does not terminate
4507     the licenses of parties who have received copies or rights from you
4508     under this License.  If your rights have been terminated and not
4509     permanently reinstated, receipt of a copy of some or all of the
4510     same material does not give you any rights to use it.
4511
4512  10. FUTURE REVISIONS OF THIS LICENSE
4513
4514     The Free Software Foundation may publish new, revised versions of
4515     the GNU Free Documentation License from time to time.  Such new
4516     versions will be similar in spirit to the present version, but may
4517     differ in detail to address new problems or concerns.  See
4518     <http://www.gnu.org/copyleft/>.
4519
4520     Each version of the License is given a distinguishing version
4521     number.  If the Document specifies that a particular numbered
4522     version of this License "or any later version" applies to it, you
4523     have the option of following the terms and conditions either of
4524     that specified version or of any later version that has been
4525     published (not as a draft) by the Free Software Foundation.  If the
4526     Document does not specify a version number of this License, you may
4527     choose any version ever published (not as a draft) by the Free
4528     Software Foundation.  If the Document specifies that a proxy can
4529     decide which future versions of this License can be used, that
4530     proxy's public statement of acceptance of a version permanently
4531     authorizes you to choose that version for the Document.
4532
4533  11. RELICENSING
4534
4535     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
4536     World Wide Web server that publishes copyrightable works and also
4537     provides prominent facilities for anybody to edit those works.  A
4538     public wiki that anybody can edit is an example of such a server.
4539     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
4540     site means any set of copyrightable works thus published on the MMC
4541     site.
4542
4543     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
4544     license published by Creative Commons Corporation, a not-for-profit
4545     corporation with a principal place of business in San Francisco,
4546     California, as well as future copyleft versions of that license
4547     published by that same organization.
4548
4549     "Incorporate" means to publish or republish a Document, in whole or
4550     in part, as part of another Document.
4551
4552     An MMC is "eligible for relicensing" if it is licensed under this
4553     License, and if all works that were first published under this
4554     License somewhere other than this MMC, and subsequently
4555     incorporated in whole or in part into the MMC, (1) had no cover
4556     texts or invariant sections, and (2) were thus incorporated prior
4557     to November 1, 2008.
4558
4559     The operator of an MMC Site may republish an MMC contained in the
4560     site under CC-BY-SA on the same site at any time before August 1,
4561     2009, provided the MMC is eligible for relicensing.
4562
4563ADDENDUM: How to use this License for your documents
4564====================================================
4565
4566To use this License in a document you have written, include a copy of
4567the License in the document and put the following copyright and license
4568notices just after the title page:
4569
4570       Copyright (C)  YEAR  YOUR NAME.
4571       Permission is granted to copy, distribute and/or modify this document
4572       under the terms of the GNU Free Documentation License, Version 1.3
4573       or any later version published by the Free Software Foundation;
4574       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
4575       Texts.  A copy of the license is included in the section entitled ``GNU
4576       Free Documentation License''.
4577
4578   If you have Invariant Sections, Front-Cover Texts and Back-Cover
4579Texts, replace the "with...Texts."  line with this:
4580
4581         with the Invariant Sections being LIST THEIR TITLES, with
4582         the Front-Cover Texts being LIST, and with the Back-Cover Texts
4583         being LIST.
4584
4585   If you have Invariant Sections without Cover Texts, or some other
4586combination of the three, merge those two alternatives to suit the
4587situation.
4588
4589   If your document contains nontrivial examples of program code, we
4590recommend releasing these examples in parallel under your choice of free
4591software license, such as the GNU General Public License, to permit
4592their use in free software.
4593
4594
4595File: gccinstall.info,  Node: Concept Index,  Prev: GNU Free Documentation License,  Up: Top
4596
4597Concept Index
4598*************
4599
4600�[index�]
4601* Menu:
4602
4603* Binaries:                              Binaries.           (line    6)
4604* build_configargs:                      Configuration.      (line 1568)
4605* Configuration:                         Configuration.      (line    6)
4606* configurations supported by GCC:       Configurations.     (line    6)
4607* Downloading GCC:                       Downloading the source.
4608                                                             (line    6)
4609* Downloading the Source:                Downloading the source.
4610                                                             (line    6)
4611* FDL, GNU Free Documentation License:   GNU Free Documentation License.
4612                                                             (line    6)
4613* Host specific installation:            Specific.           (line    6)
4614* host_configargs:                       Configuration.      (line 1572)
4615* Installing GCC: Binaries:              Binaries.           (line    6)
4616* Installing GCC: Building:              Building.           (line    6)
4617* Installing GCC: Configuration:         Configuration.      (line    6)
4618* Installing GCC: Testing:               Testing.            (line    6)
4619* Prerequisites:                         Prerequisites.      (line    6)
4620* Specific:                              Specific.           (line    6)
4621* Specific installation notes:           Specific.           (line    6)
4622* Target specific installation:          Specific.           (line    6)
4623* Target specific installation notes:    Specific.           (line    6)
4624* target_configargs:                     Configuration.      (line 1576)
4625* Testing:                               Testing.            (line    6)
4626* Testsuite:                             Testing.            (line    6)
4627
4628
4629
4630Tag Table:
4631Node: Top1696
4632Node: Installing GCC2254
4633Node: Prerequisites3888
4634Node: Downloading the source14491
4635Node: Configuration16162
4636Ref: with-gnu-as31780
4637Ref: with-as32675
4638Ref: with-gnu-ld34088
4639Ref: WithAixSoname54559
4640Ref: AixLdCommand55220
4641Node: Building90687
4642Node: Testing107053
4643Node: Final install114925
4644Node: Binaries120225
4645Node: Specific121352
4646Ref: aarch64-x-x121859
4647Ref: alpha-x-x123291
4648Ref: amd64-x-solaris210123700
4649Ref: arc-x-elf32123803
4650Ref: arc-linux-uclibc123979
4651Ref: arm-x-eabi124120
4652Ref: avr124373
4653Ref: bfin124954
4654Ref: cr16125196
4655Ref: cris125612
4656Ref: dos126310
4657Ref: epiphany-x-elf126633
4658Ref: x-x-freebsd126738
4659Ref: ft32-x-elf128538
4660Ref: h8300-hms128636
4661Ref: hppa-hp-hpux128988
4662Ref: hppa-hp-hpux10131360
4663Ref: hppa-hp-hpux11131773
4664Ref: x-x-linux-gnu137175
4665Ref: ix86-x-linux137368
4666Ref: ix86-x-solaris210137681
4667Ref: ia64-x-linux139026
4668Ref: ia64-x-hpux139796
4669Ref: x-ibm-aix140351
4670Ref: TransferAixShobj144013
4671Ref: iq2000-x-elf147823
4672Ref: lm32-x-elf147963
4673Ref: lm32-x-uclinux148067
4674Ref: m32c-x-elf148195
4675Ref: m32r-x-elf148297
4676Ref: m68k-x-x148399
4677Ref: m68k-x-uclinux149437
4678Ref: microblaze-x-elf149682
4679Ref: mips-x-x149801
4680Ref: moxie-x-elf151711
4681Ref: msp430-x-elf151758
4682Ref: nds32le-x-elf151861
4683Ref: nds32be-x-elf151933
4684Ref: nvptx-x-none152002
4685Ref: powerpc-x-x152565
4686Ref: powerpc-x-darwin152756
4687Ref: powerpc-x-elf153250
4688Ref: powerpc-x-linux-gnu153335
4689Ref: powerpc-x-netbsd153430
4690Ref: powerpc-x-eabisim153518
4691Ref: powerpc-x-eabi153644
4692Ref: powerpcle-x-elf153720
4693Ref: powerpcle-x-eabisim153812
4694Ref: powerpcle-x-eabi153945
4695Ref: rl78-x-elf154028
4696Ref: riscv32-x-elf154134
4697Ref: riscv32-x-linux154344
4698Ref: riscv64-x-elf154522
4699Ref: riscv64-x-linux154732
4700Ref: rx-x-elf154910
4701Ref: s390-x-linux154956
4702Ref: s390x-x-linux155028
4703Ref: s390x-ibm-tpf155115
4704Ref: x-x-solaris2155246
4705Ref: sparc-x-x159113
4706Ref: sparc-sun-solaris2159615
4707Ref: sparc-sun-solaris210160754
4708Ref: sparc-x-linux161129
4709Ref: sparc64-x-solaris2161160
4710Ref: sparcv9-x-solaris2161493
4711Ref: c6x-x-x161580
4712Ref: tilegx-*-linux161672
4713Ref: tilegxbe-*-linux161814
4714Ref: tilepro-*-linux161957
4715Ref: visium-x-elf162078
4716Ref: x-x-vxworks162186
4717Ref: x86-64-x-x163709
4718Ref: x86-64-x-solaris210164037
4719Ref: xtensa-x-elf164701
4720Ref: xtensa-x-linux165372
4721Ref: windows165713
4722Ref: x-x-cygwin167554
4723Ref: x-x-mingw32168107
4724Ref: older168333
4725Ref: elf170450
4726Node: Old170708
4727Node: Configurations173841
4728Node: GNU Free Documentation License177379
4729Node: Concept Index202507
4730
4731End Tag Table
4732
4733
4734Local Variables:
4735coding: utf-8
4736End:
4737