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