Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(777)

Unified Diff: gcc/gcc/doc/gccinstall.info

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gcc/doc/gcc.texi ('k') | gcc/gcc/doc/gccint.texi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gcc/doc/gccinstall.info
diff --git a/gcc/gcc/doc/gccinstall.info b/gcc/gcc/doc/gccinstall.info
index bea81ac37508b9484afddb355bf3910ab34ebecc..960dda1e21b879ae97265f22a7051671665c3cee 100644
--- a/gcc/gcc/doc/gccinstall.info
+++ b/gcc/gcc/doc/gccinstall.info
@@ -1,5 +1,5 @@
-This is doc/gccinstall.info, produced by makeinfo version 4.13 from
-/d/gcc-4.4.3/gcc-4.4.3/gcc/doc/install.texi.
+This is doc/gccinstall.info, produced by makeinfo version 4.12 from
+/space/rguenther/gcc-4.5.1/gcc-4.5.1/gcc/doc/install.texi.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
@@ -174,7 +174,7 @@ GNU tar version 1.14 (or later)
systems' `tar' programs will also work, only try GNU `tar' if you
have problems.
-GNU Multiple Precision Library (GMP) version 4.1 (or later)
+GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
Necessary to build GCC. If you do not have it installed in your
library search path, you will have to configure with the
`--with-gmp' configure option. See also `--with-gmp-lib' and
@@ -182,19 +182,23 @@ GNU Multiple Precision Library (GMP) version 4.1 (or later)
is found in a subdirectory of your GCC sources named `gmp', it
will be built together with GCC.
-MPFR Library version 2.3.2 (or later)
+MPFR Library version 2.4.2 (or later)
Necessary to build GCC. It can be downloaded from
- `http://www.mpfr.org/'. The version of MPFR that is bundled with
- GMP 4.1.x contains numerous bugs. Although GCC may appear to
- function with the buggy versions of MPFR, there are a few bugs
- that will not be fixed when using this version. It is strongly
- recommended to upgrade to the recommended version of MPFR.
-
- The `--with-mpfr' configure option should be used if your MPFR
- Library is not installed in your default library search path. See
- also `--with-mpfr-lib' and `--with-mpfr-include'. Alternatively,
- if a MPFR source distribution is found in a subdirectory of your
- GCC sources named `mpfr', it will be built together with GCC.
+ `http://www.mpfr.org/'. The `--with-mpfr' configure option should
+ be used if your MPFR Library is not installed in your default
+ library search path. See also `--with-mpfr-lib' and
+ `--with-mpfr-include'. Alternatively, if a MPFR source
+ distribution is found in a subdirectory of your GCC sources named
+ `mpfr', it will be built together with GCC.
+
+MPC Library version 0.8.1 (or later)
+ Necessary to build GCC. It can be downloaded from
+ `http://www.multiprecision.org/'. The `--with-mpc' configure
+ option should be used if your MPC Library is not installed in your
+ default library search path. See also `--with-mpc-lib' and
+ `--with-mpc-include'. Alternatively, if an MPC source
+ distribution is found in a subdirectory of your GCC sources named
+ `mpc', it will be built together with GCC.
Parma Polyhedra Library (PPL) version 0.10
Necessary to build GCC with the Graphite loop optimizations. It
@@ -216,16 +220,27 @@ CLooG-PPL version 0.15
`jar', or InfoZIP (`zip' and `unzip')
Necessary to build libgcj, the GCJ runtime.
+libelf version 0.8.12 (or later)
+ Necessary to build link-time optimization (LTO) support. It can be
+ downloaded from
+ `http://www.mr511.de/software/libelf-0.8.12.tar.gz', though it is
+ commonly available in several systems. The versions in IRIX 5 and
+ 6 don't work since they lack `gelf.h'. The version in Solaris 2
+ does work.
+
+ The `--with-libelf' configure option should be used if libelf is
+ not installed in your default library search patch.
+
Tools/packages necessary for modifying GCC
==========================================
-autoconf version 2.59
-GNU m4 version 1.4 (or later)
+autoconf version 2.64
+GNU m4 version 1.4.6 (or later)
Necessary when modifying `configure.ac', `aclocal.m4', etc. to
regenerate `configure' and `config.in' files.
-automake version 1.9.6
+automake version 1.11.1
Necessary when modifying a `Makefile.am' file to regenerate its
associated `Makefile.in'.
@@ -235,9 +250,9 @@ automake version 1.9.6
any of their subdirectories.
For directories that use automake, GCC requires the latest release
- in the 1.9.x series, which is currently 1.9.6. When regenerating
+ in the 1.11 series, which is currently 1.11.1. When regenerating
a directory to a newer version, please update all the directories
- using an older 1.9.x to the latest released version.
+ using an older 1.11 to the latest released version.
gettext version 0.14.5 (or later)
Needed to regenerate `gcc.pot'.
@@ -321,7 +336,7 @@ gjavah
antlr.jar version 2.7.1 (or later)
antlr binary
If you wish to build the `gjdoc' binary in libjava, you will need
- to have a `antlr.jar' library available. The library is searched
+ to have an `antlr.jar' library available. The library is searched
in system locations but can be configured with `--with-antlr-jar='
instead. When configuring with `--enable-java-maintainer-mode',
you will need to have one of the executables named `cantlr',
@@ -365,11 +380,11 @@ of the binutils you intend to build alongside the compiler (`bfd',
`binutils', `gas', `gprof', `ld', `opcodes', ...) to the directory
containing the GCC sources.
- Likewise, the GMP and MPFR libraries can be automatically built
-together with GCC. Unpack the GMP and/or MPFR source distributions in
-the directory containing the GCC sources and rename their directories to
-`gmp' and `mpfr', respectively (or use symbolic links with the same
-name).
+ Likewise the GMP, MPFR and MPC libraries can be automatically built
+together with GCC. Unpack the GMP, MPFR and/or MPC source
+distributions in the directory containing the GCC sources and rename
+their directories to `gmp', `mpfr' and `mpc', respectively (or use
+symbolic links with the same name).

File: gccinstall.info, Node: Configuration, Next: Building, Prev: Downloading the source, Up: Installing GCC
@@ -385,8 +400,8 @@ for both native and cross targets.
use OBJDIR to refer to the toplevel build/object directory.
If you obtained the sources via SVN, SRCDIR must refer to the top
-`gcc' directory, the one where the `MAINTAINERS' can be found, and not
-its `gcc' subdirectory, otherwise the build will fail.
+`gcc' directory, the one where the `MAINTAINERS' file can be found, and
+not its `gcc' subdirectory, otherwise the build will fail.
If either SRCDIR or OBJDIR is located on an automounted NFS file
system, the shell's built-in `pwd' command will return temporary
@@ -396,7 +411,7 @@ automounter-aware `pwd' command, e.g., `pawd' or `amq -w', during the
configuration and build phases.
First, we *highly* recommend that GCC be built into a separate
-directory than the sources which does *not* reside within the source
+directory from the sources which does *not* reside within the source
tree. This is how we generally build GCC; building where SRCDIR ==
OBJDIR should still work, but doesn't get extensive testing; building
where OBJDIR is a subdirectory of SRCDIR is unsupported.
@@ -449,10 +464,11 @@ Target specification
* GCC has code to correctly determine the correct value for TARGET
for nearly all native systems. Therefore, we highly recommend you
- not provide a configure target when configuring a native compiler.
+ do not provide a configure target when configuring a native
+ compiler.
* TARGET must be specified as `--target=TARGET' when configuring a
- cross compiler; examples of valid targets would be m68k-coff,
+ cross compiler; examples of valid targets would be m68k-elf,
sh-elf, etc.
* Specifying just TARGET instead of `--target=TARGET' implies that
@@ -506,25 +522,43 @@ option.
Specify the installation directory for the shared libgcc
library. The default is `LIBDIR'.
+ `--datarootdir=DIRNAME'
+ Specify the root of the directory tree for read-only
+ architecture-independent data files referenced by GCC. The
+ default is `PREFIX/share'.
+
`--infodir=DIRNAME'
Specify the installation directory for documentation in info
- format. The default is `PREFIX/info'.
+ format. The default is `DATAROOTDIR/info'.
`--datadir=DIRNAME'
Specify the installation directory for some
architecture-independent data files referenced by GCC. The
- default is `PREFIX/share'.
+ default is `DATAROOTDIR'.
+
+ `--docdir=DIRNAME'
+ Specify the installation directory for documentation files
+ (other than Info) for GCC. The default is `DATAROOTDIR/doc'.
+
+ `--htmldir=DIRNAME'
+ Specify the installation directory for HTML documentation
+ files. The default is `DOCDIR'.
+
+ `--pdfdir=DIRNAME'
+ Specify the installation directory for PDF documentation
+ files. The default is `DOCDIR'.
`--mandir=DIRNAME'
Specify the installation directory for manual pages. The
- default is `PREFIX/man'. (Note that the manual pages are
- only extracts from the full GCC manuals, which are provided
- in Texinfo format. The manpages are derived by an automatic
- conversion process from parts of the full manual.)
+ default is `DATAROOTDIR/man'. (Note that the manual pages
+ are only extracts from the full GCC manuals, which are
+ provided in Texinfo format. The manpages are derived by an
+ automatic conversion process from parts of the full manual.)
`--with-gxx-include-dir=DIRNAME'
Specify the installation directory for G++ header files. The
- default is `PREFIX/include/c++/VERSION'.
+ default depends on other configuration options, and differs
+ between cross and native configurations.
`--program-prefix=PREFIX'
@@ -775,6 +809,56 @@ option.
biendian, sysv, aix.
+`--with-multilib-list=LIST'
+`--without-multilib-list'
+ Specify what multilibs to build. Currently only implemented for
+ sh*-*-*.
+
+ LIST is a comma separated list of CPU names. These must be of the
+ form `sh*' or `m*' (in which case they match the compiler option
+ for that processor). The list should not contain any endian
+ options - these are handled by `--with-endian'.
+
+ If LIST is empty, then there will be no multilibs for extra
+ processors. The multilib for the secondary endian remains enabled.
+
+ As a special case, if an entry in the list starts with a `!'
+ (exclamation point), then it is added to the list of excluded
+ multilibs. Entries of this sort should be compatible with
+ `MULTILIB_EXCLUDES' (once the leading `!' has been stripped).
+
+ If `--with-multilib-list' is not given, then a default set of
+ multilibs is selected based on the value of `--target'. This is
+ usually the complete set of libraries, but some targets imply a
+ more specialized subset.
+
+ Example 1: to configure a compiler for SH4A only, but supporting
+ both endians, with little endian being the default:
+ --with-cpu=sh4a --with-endian=little,big --with-multilib-list=
+
+ Example 2: to configure a compiler for both SH4A and SH4AL-DSP,
+ but with only little endian SH4AL:
+ --with-cpu=sh4a --with-endian=little,big --with-multilib-list=sh4al,!mb/m4al
+
+`--with-endian=ENDIANS'
+ Specify what endians to use. Currently only implemented for
+ sh*-*-*.
+
+ ENDIANS may be one of the following:
+ `big'
+ Use big endian exclusively.
+
+ `little'
+ Use little endian exclusively.
+
+ `big,little'
+ Use big endian by default. Provide a multilib for little
+ endian.
+
+ `little,big'
+ Use little endian by default. Provide a multilib for big
+ endian.
+
`--enable-threads'
Specify that the target supports threads. This affects the
Objective-C compiler and runtime library, and exception handling
@@ -833,7 +917,9 @@ option.
Disable thread support, should work for all platforms.
`solaris'
- Sun Solaris 2 thread support.
+ Sun Solaris 2/Unix International thread support. Only use
+ this if you really need to use this legacy API instead of the
+ default, `posix'.
`vxworks'
VxWorks thread support.
@@ -864,8 +950,8 @@ option.
switch. This option is only supported on some targets, including
ARM, i386, M68k, PowerPC, and SPARC. The `--with-cpu-32' and
`--with-cpu-64' options specify separate default CPUs for 32-bit
- and 64-bit modes; these options are only supported for i386 and
- x86-64.
+ and 64-bit modes; these options are only supported for i386,
+ x86-64 and PowerPC.
`--with-schedule=CPU'
`--with-arch=CPU'
@@ -887,6 +973,11 @@ option.
Specify if the compiler should default to `-marm' or `-mthumb'.
This option is only supported on ARM targets.
+`--with-fpmath=sse'
+ Specify if the compiler should default to `-msse2' and
+ `-mfpmath=sse'. This option is only supported on i386 and x86-64
+ targets.
+
`--with-divide=TYPE'
Specify how the compiler should generate code for checking for
division by zero. This option is only supported on the MIPS
@@ -907,6 +998,14 @@ option.
On MIPS targets, make `-mno-llsc' the default when no `-mllsc'
option is passed.
+`--with-synci'
+ On MIPS targets, make `-msynci' the default when no `-mno-synci'
+ option is passed.
+
+`--without-synci'
+ On MIPS targets, make `-mno-synci' the default when no `-msynci'
+ option is passed. This is the default.
+
`--with-mips-plt'
On MIPS targets, make use of copy relocations and PLTs. These
features are extensions to the traditional SVR4-based MIPS ABIs
@@ -924,13 +1023,14 @@ option.
Specify that target libraries should be optimized for code space
instead of code speed. This is the default for the m32r platform.
-`--disable-cpp'
- Specify that a user visible `cpp' program should not be installed.
-
`--with-cpp-install-dir=DIRNAME'
Specify that the user visible `cpp' program should be installed in
`PREFIX/DIRNAME/cpp', in addition to BINDIR.
+`--enable-comdat'
+ Enable COMDAT group support. This is primarily used to override
+ the automatically detected value.
+
`--enable-initfini-array'
Force the use of sections `.init_array' and `.fini_array' (instead
of `.init' and `.fini') for constructors and destructors. Option
@@ -939,13 +1039,19 @@ option.
whether the `.init_array' and `.fini_array' sections are supported
and, if they are, use them.
+`--enable-build-with-cxx'
+ Build GCC using a C++ compiler rather than a C compiler. This is
+ an experimental option which may become the default in a later
+ release.
+
`--enable-maintainer-mode'
- The build rules that regenerate the GCC master message catalog
- `gcc.pot' are normally disabled. This is because it can only be
- rebuilt if the complete source tree is present. If you have
- changed the sources and want to rebuild the catalog, configuring
- with `--enable-maintainer-mode' will enable this. Note that you
- need a recent version of the `gettext' tools to do so.
+ The build rules that regenerate the Autoconf and Automake output
+ files as well as the GCC master message catalog `gcc.pot' are
+ normally disabled. This is because it can only be rebuilt if the
+ complete source tree is present. If you have changed the sources
+ and want to rebuild the catalog, configuring with
+ `--enable-maintainer-mode' will enable this. Note that you need a
+ recent version of the `gettext' tools to do so.
`--disable-bootstrap'
For a native build, the default configuration is to perform a
@@ -955,8 +1061,8 @@ option.
`--enable-bootstrap'
In special cases, you may want to perform a 3-stage build even if
- the target and host triplets are different. This could happen
- when the host can run code compiled for the target (e.g. host is
+ the target and host triplets are different. This is possible when
+ the host can run code compiled for the target (e.g. host is
i686-linux, target is i486-linux). Starting from GCC 4.2, to do
this you have to configure explicitly with `--enable-bootstrap'.
@@ -1043,8 +1149,9 @@ option.
This option enables the 32-bit target to be a bi-arch compiler,
which is useful when you want a bi-arch compiler that defaults to
32-bit, and you are building a bi-arch or multi-arch binutils in a
- combined tree. Currently, this option only affects sparc-linux,
- powerpc-linux and x86-linux.
+ combined tree. On mips-linux, this will build a tri-arch compiler
+ (ABI o32/n32/64), defaulted to o32. Currently, this option only
+ affects sparc-linux, powerpc-linux, x86-linux and mips-linux.
`--enable-secureplt'
This option enables `-msecure-plt' by default for powerpc-linux.
@@ -1115,7 +1222,6 @@ option.
internal errors causing wrong code to be generated.
`--disable-stage1-checking'
-
`--enable-stage1-checking'
`--enable-stage1-checking=LIST'
If no `--enable-checking' option is specified the stage1 compiler
@@ -1221,16 +1327,23 @@ option.
`--with-mpfr=PATHNAME'
`--with-mpfr-include=PATHNAME'
`--with-mpfr-lib=PATHNAME'
- If you do not have GMP (the GNU Multiple Precision library) and the
- MPFR Libraries installed in a standard location and you want to
- build GCC, you can explicitly specify the directory where they are
- installed (`--with-gmp=GMPINSTALLDIR',
- `--with-mpfr=MPFRINSTALLDIR'). The `--with-gmp=GMPINSTALLDIR'
- option is shorthand for `--with-gmp-lib=GMPINSTALLDIR/lib' and
+`--with-mpc=PATHNAME'
+`--with-mpc-include=PATHNAME'
+`--with-mpc-lib=PATHNAME'
+ If you do not have GMP (the GNU Multiple Precision library), the
+ MPFR library and/or the MPC library installed in a standard
+ location and you want to build GCC, you can explicitly specify the
+ directory where they are installed (`--with-gmp=GMPINSTALLDIR',
+ `--with-mpfr=MPFRINSTALLDIR', `--with-mpc=MPCINSTALLDIR'). The
+ `--with-gmp=GMPINSTALLDIR' option is shorthand for
+ `--with-gmp-lib=GMPINSTALLDIR/lib' and
`--with-gmp-include=GMPINSTALLDIR/include'. Likewise the
`--with-mpfr=MPFRINSTALLDIR' option is shorthand for
`--with-mpfr-lib=MPFRINSTALLDIR/lib' and
- `--with-mpfr-include=MPFRINSTALLDIR/include'. If these shorthand
+ `--with-mpfr-include=MPFRINSTALLDIR/include', also the
+ `--with-mpc=MPCINSTALLDIR' option is shorthand for
+ `--with-mpc-lib=MPCINSTALLDIR/lib' and
+ `--with-mpc-include=MPCINSTALLDIR/include'. If these shorthand
assumptions are not correct, you can use the explicit include and
lib options directly.
@@ -1262,29 +1375,97 @@ option.
need this option; shared library dependencies will cause the
linker to search for the standard C++ library automatically.
+`--with-stage1-ldflags=FLAGS'
+ This option may be used to set linker flags to be used when linking
+ stage 1 of GCC. These are also used when linking GCC if
+ configured with `--disable-bootstrap'. By default no special
+ flags are used.
+
+`--with-stage1-libs=LIBS'
+ This option may be used to set libraries to be used when linking
+ stage 1 of GCC. These are also used when linking GCC if
+ configured with `--disable-bootstrap'. The default is the
+ argument to `--with-host-libstdcxx', if specified.
+
+`--with-boot-ldflags=FLAGS'
+ This option may be used to set linker flags to be used when linking
+ stage 2 and later when bootstrapping GCC. By default no special
+ flags are used.
+
+`--with-boot-libs=LIBS'
+ This option may be used to set libraries to be used when linking
+ stage 2 and later when bootstrapping GCC. The default is the
+ argument to `--with-host-libstdcxx', if specified.
+
`--with-debug-prefix-map=MAP'
Convert source directory names using `-fdebug-prefix-map' when
building runtime libraries. `MAP' is a space-separated list of
maps of the form `OLD=NEW'.
+`--enable-linker-build-id'
+ Tells GCC to pass `--build-id' option to the linker for all final
+ links (links performed without the `-r' or `--relocatable'
+ option), if the linker supports it. If you specify
+ `--enable-linker-build-id', but your linker does not support
+ `--build-id' option, a warning is issued and the
+ `--enable-linker-build-id' option is ignored. The default is off.
+
+`--enable-gnu-unique-object'
+`--disable-gnu-unique-object'
+ Tells GCC to use the gnu_unique_object relocation for C++ template
+ static data members and inline function local statics. Enabled by
+ default for a native toolchain with an assembler that accepts it
+ and GLIBC 2.11 or above, otherwise disabled.
+
+`--enable-lto'
+ Enable support for link-time optimization (LTO). This is enabled
+ by default if a working libelf implementation is found (see
+ `--with-libelf').
+
+`--with-libelf=PATHNAME'
+`--with-libelf-include=PATHNAME'
+`--with-libelf-lib=PATHNAME'
+ If you do not have libelf installed in a standard location and you
+ want to enable support for link-time optimization (LTO), you can
+ explicitly specify the directory where libelf is installed
+ (`--with-libelf=LIBELFINSTALLDIR'). The
+ `--with-libelf=LIBELFINSTALLDIR' option is shorthand for
+ `--with-libelf-include=LIBELFINSTALLDIR/include'
+ `--with-libelf-lib=LIBELFINSTALLDIR/lib'.
+
+`--enable-gold'
+ Enable support for using `gold' as the linker. If gold support is
+ enabled together with `--enable-lto', an additional directory
+ `lto-plugin' will be built. The code in this directory is a
+ plugin for gold that allows the link-time optimizer to extract
+ object files with LTO information out of library archives. See
+ `-flto' and `-fwhopr' for details.
Cross-Compiler-Specific Options
-------------------------------
The following options only apply to building cross compilers.
+
`--with-sysroot'
`--with-sysroot=DIR'
Tells GCC to consider DIR as the root of a tree that contains a
(subset of) the root filesystem of the target operating system.
Target system headers, libraries and run-time object files will be
- searched in there. The specified directory is not copied into the
- install tree, unlike the options `--with-headers' and
- `--with-libs' that this option obsoletes. The default value, in
- case `--with-sysroot' is not given an argument, is
+ searched in there. More specifically, this acts as if
+ `--sysroot=DIR' was added to the default options of the built
+ compiler. The specified directory is not copied into the install
+ tree, unlike the options `--with-headers' and `--with-libs' that
+ this option obsoletes. The default value, in case
+ `--with-sysroot' is not given an argument, is
`${gcc_tooldir}/sys-root'. If the specified directory is a
subdirectory of `${exec_prefix}', then it will be found relative to
the GCC binaries if the installation tree is moved.
+ This option affects the system root for the compiler used to build
+ target libraries (which runs on the build system) and the compiler
+ newly installed with `make install'; it does not affect the
+ compiler which is used to build GCC itself.
+
`--with-build-sysroot'
`--with-build-sysroot=DIR'
Tells GCC to consider DIR as the system root (see
@@ -1317,7 +1498,7 @@ The following options only apply to building cross compilers.
so GCC can build the exception handling for libgcc.
`--with-libs'
-`--with-libs=``DIR1 DIR2 ... DIRN'''
+`--with-libs="DIR1 DIR2 ... DIRN"'
Deprecated in favor of `--with-sysroot'. Specifies a list of
directories which contain the target runtime libraries. These
libraries will be copied into the `gcc' install directory. If the
@@ -1335,7 +1516,7 @@ The following options only apply to building cross compilers.
between the system you are building GCC on, and the system where
you will deploy it.
- For example, on a `ia64-hp-hpux' system, you may have the GNU
+ For example, on an `ia64-hp-hpux' system, you may have the GNU
assembler and linker in `/usr/bin', and the native tools in a
different path, and build a toolchain that expects to find the
native tools in `/usr/bin'.
@@ -1518,6 +1699,9 @@ General Options
`--enable-aot-compile-rpm'
Adds aot-compile-rpm to the list of installed scripts.
+`--enable-browser-plugin'
+ Build the gcjwebplugin web browser plugin.
+
`ansi'
Use the single-byte `char' and the Win32 A functions natively,
translating to and from UNICODE when using these functions.
@@ -1679,7 +1863,7 @@ bootstrapped, you can use `CFLAGS_FOR_TARGET' to modify their
compilation flags, as for non-bootstrapped target libraries. Again, if
the native compiler miscompiles the stage1 compiler, you may need to
work around this by avoiding non-working parts of the stage1 compiler.
-Use `STAGE1_LIBCFLAGS' to this end.
+Use `STAGE1_TFLAGS' to this end.
If you used the flag `--enable-languages=...' to restrict the
compilers to be built, only those you've actually enabled will be
@@ -1702,6 +1886,78 @@ are building on: for example, you could build a
`powerpc64-unknown-linux-gnu' host. In this case, pass
`--enable-bootstrap' to the configure script.
+ `BUILD_CONFIG' can be used to bring in additional customization to
+the build. It can be set to a whitespace-separated list of names. For
+each such `NAME', top-level `config/`NAME'.mk' will be included by the
+top-level `Makefile', bringing in any settings it contains. The
+default `BUILD_CONFIG' can be set using the configure option
+`--with-build-config=`NAME'...'. Some examples of supported build
+configurations are:
+
+`bootstrap-O1'
+ Removes any `-O'-started option from `BOOT_CFLAGS', and adds `-O1'
+ to it. `BUILD_CONFIG=bootstrap-O1' is equivalent to
+ `BOOT_CFLAGS='-g -O1''.
+
+`bootstrap-O3'
+ Analogous to `bootstrap-O1'.
+
+`bootstrap-debug'
+ Verifies that the compiler generates the same executable code,
+ whether or not it is asked to emit debug information. To this
+ end, this option builds stage2 host programs without debug
+ information, and uses `contrib/compare-debug' to compare them with
+ the stripped stage3 object files. If `BOOT_CFLAGS' is overridden
+ so as to not enable debug information, stage2 will have it, and
+ stage3 won't. This option is enabled by default when GCC
+ bootstrapping is enabled, if `strip' can turn object files
+ compiled with and without debug info into identical object files.
+ In addition to better test coverage, this option makes default
+ bootstraps faster and leaner.
+
+`bootstrap-debug-big'
+ Rather than comparing stripped object files, as in
+ `bootstrap-debug', this option saves internal compiler dumps
+ during stage2 and stage3 and compares them as well, which helps
+ catch additional potential problems, but at a great cost in terms
+ of disk space. It can be specified in addition to
+ `bootstrap-debug'.
+
+`bootstrap-debug-lean'
+ This option saves disk space compared with `bootstrap-debug-big',
+ but at the expense of some recompilation. Instead of saving the
+ dumps of stage2 and stage3 until the final compare, it uses
+ `-fcompare-debug' to generate, compare and remove the dumps during
+ stage3, repeating the compilation that already took place in
+ stage2, whose dumps were not saved.
+
+`bootstrap-debug-lib'
+ This option tests executable code invariance over debug information
+ generation on target libraries, just like `bootstrap-debug-lean'
+ tests it on host programs. It builds stage3 libraries with
+ `-fcompare-debug', and it can be used along with any of the
+ `bootstrap-debug' options above.
+
+ There aren't `-lean' or `-big' counterparts to this option because
+ most libraries are only build in stage3, so bootstrap compares
+ would not get significant coverage. Moreover, the few libraries
+ built in stage2 are used in stage3 host programs, so we wouldn't
+ want to compile stage2 libraries with different options for
+ comparison purposes.
+
+`bootstrap-debug-ckovw'
+ Arranges for error messages to be issued if the compiler built on
+ any stage is run without the option `-fcompare-debug'. This is
+ useful to verify the full `-fcompare-debug' testing coverage. It
+ must be used along with `bootstrap-debug-lean' and
+ `bootstrap-debug-lib'.
+
+`bootstrap-time'
+ Arranges for the run time of each program started by the GCC
+ driver, built in any stage, to be logged to `time.log', in the top
+ level of the build tree.
+
+
5.2 Building a cross compiler
=============================
@@ -1709,7 +1965,7 @@ When building a cross compiler, it is not generally possible to do a
3-stage bootstrap of the compiler. This makes for an interesting
problem as parts of GCC can only be built with GCC.
- To build a cross compiler, we first recommend building and
+ To build a cross compiler, we recommend first building and
installing a native compiler. You can then use the native GCC compiler
to build the cross compiler. The installed native compiler needs to be
GCC version 2.95 or later.
@@ -1778,7 +2034,7 @@ definition of `STARTFILE_SPEC' to find out what start files it uses.
5.3 Building in parallel
========================
-GNU Make 3.79 and above, which is necessary to build GCC, support
+GNU Make 3.80 and above, which is necessary to build GCC, support
building in parallel. To activate this, you can use `make -j 2'
instead of `make'. You can also specify a bigger number, and in most
cases using a value greater than the number of processors in your
@@ -2187,13 +2443,6 @@ makers.
* The GFortran Wiki has links to GNU Fortran binaries for several
platforms.
- In addition to those specific offerings, you can get a binary
-distribution CD-ROM from the Free Software Foundation. It contains
-binaries for a number of platforms, and includes not only GCC, but
-other stuff as well. The current CD does not contain the latest
-version of GCC, but it should allow bootstrapping the compiler. An
-updated version of that disk is in the works.
-

File: gccinstall.info, Node: Specific, Next: Old, Prev: Binaries, Up: Top
@@ -2224,52 +2473,33 @@ alpha*-dec-osf*
===============
Systems using processors that implement the DEC Alpha architecture and
-are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
-Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
+are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or
+Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP
+systems.
As of GCC 3.2, versions before `alpha*-dec-osf4' are no longer
supported. (These are the versions which identify themselves as DEC
-OSF/1.)
-
- In Digital Unix V4.0, virtual memory exhausted bootstrap failures
-may be fixed by configuring with `--with-gc=simple', reconfiguring
-Kernel Virtual Memory and Swap parameters per the `/usr/sbin/sys_check'
-Tuning Suggestions, or applying the patch in
-`http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html'.
-
- In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
-currently (2001-06-13) work with `mips-tfile'. As a workaround, we
-need to use the old assembler, invoked via the barely documented
-`-oldas' option. To bootstrap GCC, you either need to use the Compaq C
-Compiler:
-
- % CC=cc SRCDIR/configure [OPTIONS] [TARGET]
-
- or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX
-V4.0:
-
- % CC=gcc -Wa,-oldas SRCDIR/configure [OPTIONS] [TARGET]
-
- As of GNU binutils 2.11.2, neither GNU `as' nor GNU `ld' are
+OSF/1.) As of GCC 4.5, support for Tru64 UNIX V4.0 and V5.0 has been
+obsoleted, but can still be enabled by configuring with
+`--enable-obsolete'. Support will be removed in GCC 4.6.
+
+ On Tru64 UNIX, virtual memory exhausted bootstrap failures may be
+fixed by reconfiguring Kernel Virtual Memory and Swap parameters per
+the `/usr/sbin/sys_check' Tuning Suggestions, or applying the patch in
+`http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html'. Depending on the OS
+version used, you need a data segment size between 512 MB and 1 GB, so
+simply use `ulimit -Sd unlimited'.
+
+ As of GNU binutils 2.20.1, neither GNU `as' nor GNU `ld' are
supported on Tru64 UNIX, so you must not configure GCC with
`--with-gnu-as' or `--with-gnu-ld'.
GCC writes a `.verstamp' directive to the assembler output file
unless it is built as a cross-compiler. It gets the version to use from
the system header file `/usr/include/stamp.h'. If you install a new
-version of DEC Unix, you should rebuild GCC to pick up the new version
+version of Tru64 UNIX, you should rebuild GCC to pick up the new version
stamp.
- `make compare' may fail on old versions of DEC Unix unless you add
-`-save-temps' to `BOOT_CFLAGS'. On these systems, the name of the
-assembler input file is stored in the object file, and that makes
-comparison fail if it differs between the `stage1' and `stage2'
-compilations. The option `-save-temps' forces a fixed name to be used
-for the assembler input file, instead of a randomly chosen name in
-`/tmp'. Do not add `-save-temps' unless the comparisons fail without
-that option. If you add `-save-temps', you will have to manually
-delete the `.i' and `.s' files after each series of compilations.
-
GCC now supports both the native (ECOFF) debugging format used by DBX
and GDB and an encapsulated STABS format for use only with GDB. See the
discussion of the `--with-stabs' option of `configure' above for more
@@ -2300,19 +2530,6 @@ ARM-family processors. Subtargets that use the ELF object format
require GNU binutils 2.13 or newer. Such subtargets include:
`arm-*-freebsd', `arm-*-netbsdelf', `arm-*-*linux' and `arm-*-rtems'.
-arm-*-coff
-==========
-
-ARM-family processors. Note that there are two different varieties of
-PE format subtarget supported: `arm-wince-pe' and `arm-pe' as well as a
-standard COFF target `arm-*-coff'.
-
-arm-*-aout
-==========
-
-ARM-family processors. These targets support the AOUT file format:
-`arm-*-aout', `arm-*-netbsd'.
-
avr
===
@@ -2401,48 +2618,37 @@ and includes all the necessary compilation tools and libraries.
*-*-freebsd*
============
-The version of binutils installed in `/usr/bin' probably works with
-this release of GCC. However, on FreeBSD 4, bootstrapping against the
-latest FSF binutils is known to improve overall testsuite results; and,
-on FreeBSD/alpha, using binutils 2.14 or later is required to build
-libjava.
-
- Support for FreeBSD 1 was discontinued in GCC 3.2.
-
- Support for FreeBSD 2 will be discontinued after GCC 3.4. The
-following was true for GCC 3.1 but the current status is unknown. For
-FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All configuration
-support and files as shipped with GCC 2.95 are still in place. FreeBSD
-2.2.7 has been known to bootstrap completely; however, it is unknown
-which version of binutils was used (it is assumed that it was the
-system copy in `/usr/bin') and C++ EH failures were noted.
-
- For FreeBSD using the ELF file format: DWARF 2 debugging is now the
-default for all CPU architectures. It had been the default on
-FreeBSD/alpha since its inception. You may use `-gstabs' instead of
-`-g', if you really want the old debugging format. There are no known
-issues with mixing object files and libraries with different debugging
+Support for FreeBSD 1 was discontinued in GCC 3.2. Support for FreeBSD
+2 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC
+4.0.
+
+ In GCC 4.5, we enabled the use of `dl_iterate_phdr' inside boehm-gc
+on FreeBSD 7 or later. In order to better match the configuration of
+the FreeBSD system compiler: We also enabled the check to see if libc
+provides SSP support (which it does on FreeBSD 7), the use of
+`dl_iterate_phdr' inside `libgcc_s.so.1' (on FreeBSD 7 or later) and
+the use of `__cxa_atexit' by default (on FreeBSD 6 or later).
+
+ We support FreeBSD using the ELF file format with DWARF 2 debugging
+for all CPU architectures. You may use `-gstabs' instead of `-g', if
+you really want the old debugging format. There are no known issues
+with mixing object files and libraries with different debugging
formats. Otherwise, this release of GCC should now match more of the
configuration used in the stock FreeBSD configuration of GCC. In
particular, `--enable-threads' is now configured by default. However,
as a general user, do not attempt to replace the system compiler with
this release. Known to bootstrap and check with good results on
-FreeBSD 4.9-STABLE and 5-CURRENT. In the past, known to bootstrap and
-check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5,
-4.8-STABLE.
-
- In principle, `--enable-threads' is now compatible with
-`--enable-libgcj' on FreeBSD. However, it has only been built and
-tested on `i386-*-freebsd[45]' and `alpha-*-freebsd[45]'. The static
-library may be incorrectly built (symbols are missing at link time).
-There is a rare timing-based startup hang (probably involves an
-assumption about the thread library). Multi-threaded boehm-gc
-(required for libjava) exposes severe threaded signal-handling bugs on
-FreeBSD before 4.5-RELEASE. Other CPU architectures supported by
-FreeBSD will require additional configuration tuning in, at the very
-least, both boehm-gc and libffi.
-
- Shared `libgcc_s.so' is now built and installed by default.
+FreeBSD 7.2-STABLE. In the past, known to bootstrap and check with
+good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8, 4.9 and
+5-CURRENT.
+
+ The version of binutils installed in `/usr/bin' probably works with
+this release of GCC. Bootstrapping against the latest GNU binutils
+and/or the version found in `/usr/ports/devel/binutils' has been known
+to enable additional features and improve overall testsuite results.
+However, it is currently known that boehm-gc (which itself is required
+for java) may not configure properly on FreeBSD prior to the FreeBSD
+7.0 release with GNU binutils after 2.16.1.
h8300-hms
=========
@@ -2649,15 +2855,49 @@ See bug 10877 for more information.
is possible you have a hardware problem. Further information on this
can be found on www.bitwizard.nl.
+i?86-*-solaris2.[89]
+====================
+
+The Sun assembler in Solaris 8 and 9 has several bugs and limitations.
+While GCC works around them, several features are missing, so it is
+recommended to use the GNU assembler instead. There is no bundled
+version, but the current version, from GNU binutils 2.20.1, is known to
+work.
+
+ Solaris~2/x86 doesn't support the execution of SSE/SSE2 instructions
+before Solaris~9 4/04, even if the CPU supports them. Programs will
+receive `SIGILL' if they try. The fix is available both in Solaris~9
+Update~6 and kernel patch 112234-12 or newer. There is no
+corresponding patch for Solaris 8. To avoid this problem, `-march'
+defaults to `pentiumpro' on Solaris 8 and 9. If you have the patch
+installed, you can configure GCC with an appropriate `--with-arch'
+option, but need GNU `as' for SSE2 support.
+
i?86-*-solaris2.10
==================
Use this for Solaris 10 or later on x86 and x86-64 systems. This
-configuration is supported by GCC 4.0 and later versions only.
-
- It is recommended that you configure GCC to use the GNU assembler in
-`/usr/sfw/bin/gas' but the Sun linker, using the options `--with-gnu-as
---with-as=/usr/sfw/bin/gas --without-gnu-ld --with-ld=/usr/ccs/bin/ld'.
+configuration is supported by GCC 4.0 and later versions only. Unlike
+`sparcv9-sun-solaris2*', there is no corresponding 64-bit configuration
+like `amd64-*-solaris2*' or `x86_64-*-solaris2*'.
+
+ It is recommended that you configure GCC to use the GNU assembler, in
+`/usr/sfw/bin/gas'. The versions included in Solaris 10, from GNU
+binutils 2.15, and Solaris 11, from GNU binutils 2.19, work fine,
+although the current version, from GNU binutils 2.20.1, is known to
+work, too. Recent versions of the Sun assembler in `/usr/ccs/bin/as'
+work almost as well, though.
+
+ For linking, the Sun linker, is preferred. If you want to use the
+GNU linker instead, which is available in `/usr/sfw/bin/gld', note that
+due to a packaging bug the version in Solaris 10, from GNU binutils
+2.15, cannot be used, while the version in Solaris 11, from GNU binutils
+2.19, works, as does the latest version, from GNU binutils 2.20.1.
+
+ To use GNU `as', configure with the options `--with-gnu-as
+--with-as=/usr/sfw/bin/gas'. It may be necessary to configure with
+`--without-gnu-ld --with-ld=/usr/ccs/bin/ld' to guarantee use of Sun
+`ld'.
ia64-*-linux
============
@@ -2694,11 +2934,24 @@ the system libunwind library will always be used.
==========
Support for AIX version 3 and older was discontinued in GCC 3.4.
+Support for AIX version 4.2 and older was discontinued in GCC 4.5.
"out of memory" bootstrap failures may indicate a problem with
process resource limits (ulimit). Hard limits are configured in the
`/etc/security/limits' system configuration file.
+ GCC can bootstrap with recent versions of IBM XLC, but bootstrapping
+with an earlier release of GCC is recommended. Bootstrapping with XLC
+requires a larger data segment, which can be enabled through the
+LDR_CNTRL environment variable, e.g.,
+
+ % LDR_CNTRL=MAXDATA=0x50000000
+ % export LDR_CNTRL
+
+ One can start with a pre-compiled version of GCC to build from
+sources. One may delete GCC's "fixed" header files when starting with
+a version of GCC built for an earlier release of AIX.
+
To speed up the configuration phases of bootstrapping and installing
GCC, one may use GNU Bash instead of AIX `/bin/sh', e.g.,
@@ -2724,17 +2977,15 @@ environment variable does not provide a definition that will confuse
`configure'. If this error occurs during stage2 or later, then the
problem most likely is the version of Make (see above).
- The native `as' and `ld' are recommended for bootstrapping on AIX 4
-and required for bootstrapping on AIX 5L. The GNU Assembler reports
-that it supports WEAK symbols on AIX 4, which causes GCC to try to
-utilize weak symbol functionality although it is not supported. The GNU
-Assembler and Linker do not support AIX 5L sufficiently to bootstrap
-GCC. The native AIX tools do interoperate with GCC.
+ The native `as' and `ld' are recommended for bootstrapping on AIX.
+The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is
+required to bootstrap on AIX 5. The native AIX tools do interoperate
+with GCC.
Building `libstdc++.a' requires a fix for an AIX Assembler bug APAR
IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix
for another AIX Assembler bug and a co-dependent AIX Archiver fix
-referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1)
+referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
`libstdc++' in GCC 3.4 increments the major version number of the
shared object and GCC installation places the `libstdc++.a' shared
@@ -2803,9 +3054,6 @@ reported where GCC does not produce the same floating-point formats
that the assembler expects. If one encounters this problem, set the
`LANG' environment variable to `C' or `En_US'.
- By default, GCC for AIX 4.1 and above produces code that can be used
-on both Power or PowerPC processors.
-
A default can be specified with the `-mcpu=CPU_TYPE' switch and
using the configure option `--with-cpu-CPU_TYPE'.
@@ -2815,6 +3063,18 @@ iq2000-*-elf
Vitesse IQ2000 processors. These are used in embedded applications.
There are no standard Unix configurations.
+lm32-*-elf
+==========
+
+Lattice Mico32 processor. This configuration is intended for embedded
+systems.
+
+lm32-*-uclinux
+==============
+
+Lattice Mico32 processor. This configuration is intended for embedded
+systems running uClinux.
+
m32c-*-elf
==========
@@ -2842,14 +3102,14 @@ applications. There are no standard Unix configurations.
m68k-*-*
========
-By default, `m68k-*-aout', `m68k-*-coff*', `m68k-*-elf*',
-`m68k-*-rtems', `m68k-*-uclinux' and `m68k-*-linux' build libraries
-for both M680x0 and ColdFire processors. If you only need the M680x0
-libraries, you can omit the ColdFire ones by passing `--with-arch=m68k'
-to `configure'. Alternatively, you can omit the M680x0 libraries by
-passing `--with-arch=cf' to `configure'. These targets default to 5206
-or 5475 code as appropriate for the target system when configured with
-`--with-arch=cf' and 68020 code otherwise.
+By default, `m68k-*-elf*', `m68k-*-rtems', `m68k-*-uclinux' and
+`m68k-*-linux' build libraries for both M680x0 and ColdFire processors.
+If you only need the M680x0 libraries, you can omit the ColdFire ones
+by passing `--with-arch=m68k' to `configure'. Alternatively, you can
+omit the M680x0 libraries by passing `--with-arch=cf' to `configure'.
+These targets default to 5206 or 5475 code as appropriate for the
+target system when configured with `--with-arch=cf' and 68020 code
+otherwise.
The `m68k-*-netbsd' and `m68k-*-openbsd' targets also support the
`--with-arch' option. They will generate ColdFire CFV4e code when
@@ -2869,6 +3129,12 @@ improved support for C++ and flat shared libraries, both of which were
ABI changes. However, you can still use the original ABI by
configuring for `m68k-uclinuxoldabi' or `m68k-VENDOR-uclinuxoldabi'.
+mep-*-elf
+=========
+
+Toshiba Media embedded Processor. This configuration is intended for
+embedded systems.
+
mips-*-*
========
@@ -2923,48 +3189,68 @@ after Nov. 9, 2006) should be free from both of these problems.
mips-sgi-irix5
==============
-In order to compile GCC on an SGI running IRIX 5, the `compiler_dev.hdr'
-subsystem must be installed from the IDO CD-ROM supplied by SGI. It is
-also available for download from
-`ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist'.
+Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with `--enable-obsolete'. Support will be
+removed in GCC 4.6.
+
+ In order to compile GCC on an SGI running IRIX 5, the
+`compiler_dev.hdr' subsystem must be installed from the IDO CD-ROM
+supplied by SGI. It is also available for download from
+`http://freeware.sgi.com/ido.html'.
If you use the MIPS C compiler to bootstrap, it may be necessary to
increase its table size for switch statements with the `-Wf,-XNg1500'
option. If you use the `-O2' optimization option, you also need to use
`-Olimit 3000'.
+ GCC must be configured to use GNU `as'. The latest version, from GNU
+binutils 2.20.1, is known to work.
+
To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
later, and use the `--with-gnu-ld' `configure' option when configuring
GCC. You need to use GNU `ar' and `nm', also distributed with GNU
binutils.
- Some users have reported that `/bin/sh' will hang during bootstrap.
-This problem can be avoided by running the commands:
+ Configuring GCC with `/bin/sh' is _extremely_ slow and may even
+hang. This problem can be avoided by running `configure' like this:
- % CONFIG_SHELL=/bin/ksh
+ % CONFIG_SHELL=/usr/local/bin/bash
% export CONFIG_SHELL
+ % $CONFIG_SHELL SRCDIR/configure [OPTIONS]
- before starting the build.
+`/bin/ksh' doesn't work properly either.
mips-sgi-irix6
==============
-If you are using SGI's MIPSpro `cc' as your bootstrap compiler, you must
-ensure that the N32 ABI is in use. To test this, compile a simple C
-file with `cc' and then run `file' on the resulting object file. The
+Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5,
+but can still be enabled by configuring with `--enable-obsolete'.
+Support will be removed in GCC 4.6, which will also disable support for
+the O32 ABI. It is _strongly_ recommended to upgrade to at least IRIX
+6.5.18. This release introduced full ISO C99 support, though for the
+N32 and N64 ABIs only.
+
+ To build and use GCC on IRIX 6, you need the IRIX Development
+Foundation (IDF) and IRIX Development Libraries (IDL). They are
+included with the IRIX 6.5 media and can be downloaded from
+`http://freeware.sgi.com/idf_idl.html' for older IRIX 6 releases.
+
+ If you are using SGI's MIPSpro `cc' as your bootstrap compiler, you
+must ensure that the N32 ABI is in use. To test this, compile a simple
+C file with `cc' and then run `file' on the resulting object file. The
output should look like:
test.o: ELF N32 MSB ...
- If you see:
+If you see:
test.o: ELF 32-bit MSB ...
- or
+or
test.o: ELF 64-bit MSB ...
- then your version of `cc' uses the O32 or N64 ABI by default. You
+then your version of `cc' uses the O32 or N64 ABI by default. You
should set the environment variable `CC' to `cc -n32' before
configuring GCC.
@@ -2978,11 +3264,11 @@ on `mips3'-only systems. For the test program above, you should see:
test.o: ELF N32 MSB mips-3 ...
- If you get:
+If you get:
test.o: ELF N32 MSB mips-4 ...
- instead, you should set the environment variable `CC' to `cc -n32
+instead, you should set the environment variable `CC' to `cc -n32
-mips3' or `gcc -mips3' respectively before configuring GCC.
MIPSpro C 7.4 may cause bootstrap failures, due to a bug when
@@ -2996,9 +3282,9 @@ installed or cannot run 64-bit binaries, you need to configure with
building the O32 libraries, too. Look for `/usr/lib64/libc.so.1' to
see if you have the 64-bit libraries installed.
- To enable debugging for the O32 ABI, you must use GNU `as' from GNU
-binutils 2.15 or later. You may also use GNU `ld', but this is not
-required and currently causes some problems with Ada.
+ GCC must be configured with GNU `as'. The latest version, from GNU
+binutils 2.20.1, is known to work. On the other hand, bootstrap fails
+with GNU `ld' at least since GNU binutils 2.17.
The `--enable-libgcj' option is disabled by default: IRIX 6 uses a
very low default limit (20480) for the command line length. Although
@@ -3013,8 +3299,11 @@ releases, x < 19. The problem cannot be autodetected and in order to
build GCC for such targets you need to configure with
`--disable-wchar_t'.
- See `http://freeware.sgi.com/' for more information about using GCC
-on IRIX platforms.
+moxie-*-elf
+===========
+
+The moxie processor. See `http://moxielogic.org/' for more information
+about this processor.
powerpc-*-*
===========
@@ -3082,6 +3371,13 @@ powerpcle-*-eabi
Embedded PowerPC system in little endian mode.
+rx-*-elf
+========
+
+The Renesas RX processor. See
+`http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series'
+for more information about this processor.
+
s390-*-linux*
=============
@@ -3101,9 +3397,15 @@ cross-compilation target only.
*-*-solaris2*
=============
-Sun does not ship a C compiler with Solaris 2. To bootstrap and install
-GCC you first have to install a pre-built compiler, see the binaries
-page for details.
+Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with `--enable-obsolete'. Support will be
+removed in GCC 4.6.
+
+ Sun does not ship a C compiler with Solaris 2, though you can
+download the Sun Studio compilers for free from
+`http://developers.sun.com/sunstudio/downloads/'. Alternatively, you
+can install a pre-built GCC to bootstrap and install GCC. See the
+binaries page for details.
The Solaris 2 `/bin/sh' will often fail to configure `libstdc++-v3',
`boehm-gc' or `libjava'. We therefore recommend using the following
@@ -3112,9 +3414,9 @@ initial sequence of commands
% CONFIG_SHELL=/bin/ksh
% export CONFIG_SHELL
- and proceed as described in the configure instructions. In addition
-we strongly recommend specifying an absolute path to invoke
-SRCDIR/configure.
+and proceed as described in the configure instructions. In addition we
+strongly recommend specifying an absolute path to invoke
+`SRCDIR/configure'.
Solaris 2 comes with a number of optional OS packages. Some of these
are needed to use GCC fully, namely `SUNWarc', `SUNWbtool', `SUNWesu',
@@ -3134,37 +3436,28 @@ hang indefinitely. The fix is to remove `/usr/ucb' from your `PATH'.
if you have `/usr/xpg4/bin' in your `PATH', we recommend that you place
`/usr/bin' before `/usr/xpg4/bin' for the duration of the build.
- We recommend the use of GNU binutils 2.14 or later, or the vendor
-tools (Sun `as', Sun `ld'). Note that your mileage may vary if you use
-a combination of the GNU tools and the Sun tools: while the combination
-GNU `as' + Sun `ld' should reasonably work, the reverse combination Sun
-`as' + GNU `ld' is known to cause memory corruption at runtime in some
-cases for C++ programs.
-
- The stock GNU binutils 2.15 release is broken on this platform
-because of a single bug. It has been fixed on the 2.15 branch in the
-CVS repository. You can obtain a working version by checking out the
-binutils-2_15-branch from the CVS repository or applying the patch
-`http://sourceware.org/ml/binutils-cvs/2004-09/msg00036.html' to the
-release.
-
- We recommend the use of GNU binutils 2.16 or later in conjunction
-with GCC 4.x, or the vendor tools (Sun `as', Sun `ld'). However, for
-Solaris 10 and above, an additional patch is required in order for the
-GNU linker to be able to cope with a new flavor of shared libraries.
-You can obtain a working version by checking out the
-binutils-2_16-branch from the CVS repository or applying the patch
-`http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html' to the
-release.
+ We recommend the use of the Sun assembler or the GNU assembler, in
+conjunction with the Sun linker. The GNU `as' versions included in
+Solaris 10, from GNU binutils 2.15, and Solaris 11, from GNU binutils
+2.19, are known to work. They can be found in `/usr/sfw/bin/gas'.
+Current versions of GNU binutils (2.20.1) are known to work as well.
+Note that your mileage may vary if you use a combination of the GNU
+tools and the Sun tools: while the combination GNU `as' + Sun `ld'
+should reasonably work, the reverse combination Sun `as' + GNU `ld' is
+known to cause memory corruption at runtime in some cases for C++
+programs. GNU `ld' usually works as well, although the version
+included in Solaris 10 cannot be used due to several bugs. Again, the
+current version (2.20.1) is known to work, but generally lacks platform
+specific features, so better stay with Sun `ld'.
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
newer: `g++' will complain that types are missing. These headers
assume that omitting the type means `int'; this assumption worked for
-C89 but is wrong for C++, and is now wrong for C99 also.
+C90 but is wrong for C++, and is now wrong for C99 also.
`g++' accepts such (invalid) constructs with the option
`-fpermissive'; it will assume that any missing type is `int' (as
-defined by C89).
+defined by C90).
There are patches for Solaris 7 (108376-21 or newer for SPARC,
108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
@@ -3184,7 +3477,7 @@ SPARC, 117172-11 or newer for Intel) that address this problem.
sparc-sun-solaris2*
===================
-When GCC is configured to use binutils 2.14 or later the binaries
+When GCC is configured to use GNU binutils 2.14 or later, the binaries
produced are smaller than the ones produced using Sun's native tools;
this difference is quite significant for binaries containing debugging
information.
@@ -3214,10 +3507,10 @@ a bootstrap failure in form of a miscompilation of the stage1 compiler
by the Sun compiler. This is Sun bug 4974440. This is fixed with
patch 112760-07.
- GCC 3.4 changed the default debugging format from STABS to DWARF-2
+ GCC 3.4 changed the default debugging format from Stabs to DWARF-2
for 32-bit code on Solaris 7 and later. If you use the Sun assembler,
this change apparently runs afoul of Sun bug 4910101 (which is
-referenced as a x86-only problem by Sun, probably because they do not
+referenced as an x86-only problem by Sun, probably because they do not
use DWARF-2). A symptom of the problem is that you cannot compile C++
programs like `groff' 1.19.1 without getting messages similar to the
following:
@@ -3226,13 +3519,13 @@ following:
external symbolic relocation against non-allocatable section
.debug_info cannot be processed at runtime: relocation ignored.
- To work around this problem, compile with `-gstabs+' instead of
-plain `-g'.
+To work around this problem, compile with `-gstabs+' instead of plain
+`-g'.
When configuring the GNU Multiple Precision Library (GMP) or the MPFR
library on a Solaris 7 or later system, the canonical target triplet
must be specified as the `build' parameter on the configure line. This
-triplet can be obtained by invoking ./config.guess in the toplevel
+triplet can be obtained by invoking `./config.guess' in the toplevel
source directory of GCC (and not that of GMP or MPFR). For example on
a Solaris 7 system:
@@ -3241,11 +3534,14 @@ a Solaris 7 system:
sparc-sun-solaris2.7
====================
-Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
-the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and
-later, including all EGCS releases. Sun formerly recommended 107058-01
-for all Solaris 7 users, but around 1999-09-01 it started to recommend
-it only for people who use Sun's compilers.
+_Note_ that this configuration has been obsoleted in GCC 4.5, and will
+be removed in GCC 4.6.
+
+ Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug
+in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
+and later, including all EGCS releases. Sun formerly recommended
+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
+recommend it only for people who use Sun's compilers.
Here are some workarounds to this problem:
* Do not install Sun patch 107058-01 until after Sun releases a
@@ -3273,12 +3569,12 @@ it only for people who use Sun's compilers.
GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun
assembler, which causes a bootstrap failure when linking the 64-bit
-shared version of libgcc. A typical error message is:
+shared version of `libgcc'. A typical error message is:
ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
symbol <unknown>: offset 0xffffffff7ec133e7 is non-aligned.
- This bug has been fixed in the final 5.0 version of the assembler.
+This bug has been fixed in the final 5.0 version of the assembler.
A similar problem was reported for version Sun WorkShop 6 99/08/18
of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
@@ -3287,7 +3583,18 @@ of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
symbol <unknown>: offset 0xfccd33ad is non-aligned
- This bug has been fixed in more recent revisions of the assembler.
+This bug has been fixed in more recent revisions of the assembler.
+
+sparc-sun-solaris2.10
+=====================
+
+There is a bug in older versions of the Sun assembler which breaks
+thread-local storage (TLS). A typical error message is
+
+ ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o:
+ symbol <unknown>: bad symbol type SECT: symbol type must be TLS
+
+This bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
==============
@@ -3310,13 +3617,13 @@ in order to bootstrap this target with the Sun compiler:
% CC="cc -xarch=v9 -xildoff" SRCDIR/configure [OPTIONS] [TARGET]
- `-xarch=v9' specifies the SPARC-V9 architecture to the Sun toolchain
+`-xarch=v9' specifies the SPARC-V9 architecture to the Sun toolchain
and `-xildoff' turns off the incremental linker.
sparcv9-*-solaris2*
===================
-This is a synonym for sparc64-*-solaris2*.
+This is a synonym for `sparc64-*-solaris2*'.
*-*-vxworks*
============
@@ -3407,7 +3714,7 @@ and which C libraries are used.
* Interix *-*-interix: The Interix subsystem provides native support
for POSIX.
- * MinGW *-*-mingw: MinGW is a native GCC port for the Win32
+ * MinGW *-*-mingw32: MinGW is a native GCC port for the Win32
subsystem that provides a subset of POSIX.
* MKS i386-pc-mks: NuTCracker from MKS. See
@@ -3453,7 +3760,11 @@ Ports of GCC are included with the Cygwin environment.
GCC will build under Cygwin without modification; it does not build
with Microsoft's C++ compiler and there are no plans to make it do so.
- Cygwin can be compiled with i?86-pc-cygwin.
+ The Cygwin native compiler can be configured to target any 32-bit x86
+cpu architecture desired; the default is i686-pc-cygwin. It should be
+used with as up-to-date a version of binutils as possible; use either
+the latest official GNU binutils release in the Cygwin distribution, or
+version 2.20 or above if building your own.
*-*-interix
===========
@@ -3472,13 +3783,6 @@ GCC will build with and support only MinGW runtime 3.12 and later.
Earlier versions of headers are incompatible with the new default
semantics of `extern inline' in `-std=c99' and `-std=gnu99' modes.
-OS/2
-====
-
-GCC does not currently support OS/2. However, Andrew Zabolotny has been
-working on a generic OS/2 port with pgcc. The current code can be found
-at http://www.goof.com/pcg/os2/.
-
Older systems
=============
@@ -4151,84 +4455,88 @@ Concept Index

Tag Table:
-Node: Top1939
-Node: Installing GCC2497
-Node: Prerequisites4012
-Node: Downloading the source13017
-Node: Configuration14938
-Ref: with-gnu-as28355
-Ref: with-as29253
-Ref: with-gnu-ld30666
-Node: Building67823
-Node: Testing79766
-Node: Final install87546
-Node: Binaries92776
-Node: Specific94749
-Ref: alpha-x-x95255
-Ref: alpha-dec-osf95744
-Ref: arc-x-elf98867
-Ref: arm-x-elf98967
-Ref: arm-x-coff99187
-Ref: arm-x-aout99389
-Ref: avr99511
-Ref: bfin100153
-Ref: cris100395
-Ref: crx101211
-Ref: dos101874
-Ref: x-x-freebsd102197
-Ref: h8300-hms104580
-Ref: hppa-hp-hpux104932
-Ref: hppa-hp-hpux10107303
-Ref: hppa-hp-hpux11107936
-Ref: x-x-linux-gnu113595
-Ref: ix86-x-linux113788
-Ref: ix86-x-solaris210114101
-Ref: ia64-x-linux114487
-Ref: ia64-x-hpux115257
-Ref: x-ibm-aix115812
-Ref: iq2000-x-elf121795
-Ref: m32c-x-elf121935
-Ref: m32r-x-elf122037
-Ref: m6811-elf122139
-Ref: m6812-elf122289
-Ref: m68k-x-x122439
-Ref: m68k-x-uclinux123444
-Ref: mips-x-x123807
-Ref: mips-sgi-irix5126484
-Ref: mips-sgi-irix6127432
-Ref: powerpc-x-x130239
-Ref: powerpc-x-darwin130444
-Ref: powerpc-x-elf130991
-Ref: powerpc-x-linux-gnu131076
-Ref: powerpc-x-netbsd131171
-Ref: powerpc-x-eabisim131259
-Ref: powerpc-x-eabi131385
-Ref: powerpcle-x-elf131461
-Ref: powerpcle-x-eabisim131553
-Ref: powerpcle-x-eabi131686
-Ref: s390-x-linux131769
-Ref: s390x-x-linux131841
-Ref: s390x-ibm-tpf131928
-Ref: x-x-solaris2132059
-Ref: sparc-sun-solaris2135936
-Ref: sparc-sun-solaris27138657
-Ref: sparc-x-linux141121
-Ref: sparc64-x-solaris2141346
-Ref: sparcv9-x-solaris2141991
-Ref: x-x-vxworks142076
-Ref: x86-64-x-x143598
-Ref: xtensa-x-elf143926
-Ref: xtensa-x-linux144597
-Ref: windows144938
-Ref: x-x-cygwin146893
-Ref: x-x-interix147163
-Ref: x-x-mingw32147529
-Ref: os2147755
-Ref: older147946
-Ref: elf150063
-Node: Old150321
-Node: Configurations153458
-Node: GNU Free Documentation License157440
-Node: Concept Index179856
+Node: Top1953
+Node: Installing GCC2511
+Node: Prerequisites4026
+Node: Downloading the source13688
+Node: Configuration15625
+Ref: with-gnu-as29767
+Ref: with-as30665
+Ref: with-gnu-ld32078
+Node: Building75553
+Node: Testing90864
+Node: Final install98644
+Node: Binaries103874
+Node: Specific105467
+Ref: alpha-x-x105973
+Ref: alpha-dec-osf106462
+Ref: arc-x-elf108763
+Ref: arm-x-elf108863
+Ref: avr109083
+Ref: bfin109725
+Ref: cris109967
+Ref: crx110783
+Ref: dos111446
+Ref: x-x-freebsd111769
+Ref: h8300-hms113582
+Ref: hppa-hp-hpux113934
+Ref: hppa-hp-hpux10116305
+Ref: hppa-hp-hpux11116938
+Ref: x-x-linux-gnu122597
+Ref: ix86-x-linux122790
+Ref: ix86-x-solaris289123103
+Ref: ix86-x-solaris210123949
+Ref: ia64-x-linux125179
+Ref: ia64-x-hpux125949
+Ref: x-ibm-aix126504
+Ref: iq2000-x-elf132763
+Ref: lm32-x-elf132903
+Ref: lm32-x-uclinux133007
+Ref: m32c-x-elf133135
+Ref: m32r-x-elf133237
+Ref: m6811-elf133339
+Ref: m6812-elf133489
+Ref: m68k-x-x133639
+Ref: m68k-x-uclinux134611
+Ref: mep-x-elf134974
+Ref: mips-x-x135084
+Ref: mips-sgi-irix5137761
+Ref: mips-sgi-irix6139027
+Ref: moxie-x-elf142358
+Ref: powerpc-x-x142478
+Ref: powerpc-x-darwin142683
+Ref: powerpc-x-elf143230
+Ref: powerpc-x-linux-gnu143315
+Ref: powerpc-x-netbsd143410
+Ref: powerpc-x-eabisim143498
+Ref: powerpc-x-eabi143624
+Ref: powerpcle-x-elf143700
+Ref: powerpcle-x-eabisim143792
+Ref: powerpcle-x-eabi143925
+Ref: rx-x-elf144008
+Ref: s390-x-linux144207
+Ref: s390x-x-linux144279
+Ref: s390x-ibm-tpf144366
+Ref: x-x-solaris2144497
+Ref: sparc-sun-solaris2148309
+Ref: sparc-sun-solaris27151035
+Ref: sparc-sun-solaris210153593
+Ref: sparc-x-linux153969
+Ref: sparc64-x-solaris2154194
+Ref: sparcv9-x-solaris2154836
+Ref: x-x-vxworks154923
+Ref: x86-64-x-x156445
+Ref: xtensa-x-elf156773
+Ref: xtensa-x-linux157444
+Ref: windows157785
+Ref: x-x-cygwin159742
+Ref: x-x-interix160295
+Ref: x-x-mingw32160661
+Ref: older160887
+Ref: elf163004
+Node: Old163262
+Node: Configurations166399
+Node: GNU Free Documentation License170381
+Node: Concept Index192797

End Tag Table
« no previous file with comments | « gcc/gcc/doc/gcc.texi ('k') | gcc/gcc/doc/gccint.texi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698