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