OSDN Git Service

* doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
[pf3gnuchains/gcc-fork.git] / gcc / doc / install.texi
index 73d8ded..00dd787 100644 (file)
@@ -45,7 +45,8 @@
 @end ifset
 
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 @end ifset
 
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 
+@c 2010 Free Software Foundation, Inc.
 @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
 
 @c IMPORTANT: whenever you modify this file, run `install.texi2html' to
 @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
 
 @c IMPORTANT: whenever you modify this file, run `install.texi2html' to
@@ -302,7 +303,7 @@ Necessary (only on some platforms) to untar the source code.  Many
 systems' @command{tar} programs will also work, only try GNU
 @command{tar} if you have problems.
 
 systems' @command{tar} programs will also work, only try GNU
 @command{tar} if you have problems.
 
-@item GNU Multiple Precision Library (GMP) version 4.2 (or later)
+@item 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
 
 Necessary to build GCC@.  If you do not have it installed in your
 library search path, you will have to configure with the
@@ -311,7 +312,7 @@ and @option{--with-gmp-include}.  Alternatively, if a GMP source
 distribution is found in a subdirectory of your GCC sources named
 @file{gmp}, it will be built together with GCC@.
 
 distribution is found in a subdirectory of your GCC sources named
 @file{gmp}, it will be built together with GCC@.
 
-@item MPFR Library version 2.3.2 (or later)
+@item MPFR Library version 2.4.2 (or later)
 
 Necessary to build GCC@.  It can be downloaded from
 @uref{http://www.mpfr.org/}.  The @option{--with-mpfr} configure
 
 Necessary to build GCC@.  It can be downloaded from
 @uref{http://www.mpfr.org/}.  The @option{--with-mpfr} configure
@@ -321,6 +322,16 @@ default library search path.  See also @option{--with-mpfr-lib} and
 distribution is found in a subdirectory of your GCC sources named
 @file{mpfr}, it will be built together with GCC@.
 
 distribution is found in a subdirectory of your GCC sources named
 @file{mpfr}, it will be built together with GCC@.
 
+@item MPC Library version 0.8.1 (or later)
+
+Necessary to build GCC@.  It can be downloaded from
+@uref{http://www.multiprecision.org/}.  The @option{--with-mpc}
+configure option should be used if your MPC Library is not installed
+in your default library search path.  See also @option{--with-mpc-lib}
+and @option{--with-mpc-include}.  Alternatively, if an MPC source
+distribution is found in a subdirectory of your GCC sources named
+@file{mpc}, it will be built together with GCC@.
+
 @item Parma Polyhedra Library (PPL) version 0.10
 
 Necessary to build GCC with the Graphite loop optimizations.
 @item Parma Polyhedra Library (PPL) version 0.10
 
 Necessary to build GCC with the Graphite loop optimizations.
@@ -344,23 +355,13 @@ not installed in your default library search path.
 
 Necessary to build libgcj, the GCJ runtime.
 
 
 Necessary to build libgcj, the GCJ runtime.
 
-@item MPC Library version 0.7.0 (or later)
-
-Optional when building GCC@.  Having this library will enable
-additional optimizations on complex numbers.  It can be downloaded
-from @uref{http://www.multiprecision.org/mpc/}.  The
-@option{--with-mpc} configure option should be used if your MPC
-Library is not installed in your default library search path.  See
-also @option{--with-mpc-lib} and @option{--with-mpc-include}.
-Alternatively, if an MPC source distribution is found in a
-subdirectory of your GCC sources named @file{mpc}, it will be built
-together with GCC@.
-
 @item libelf version 0.8.12 (or later)
 
 Necessary to build link-time optimization (LTO) support.  It can be
 downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
 @item libelf version 0.8.12 (or later)
 
 Necessary to build link-time optimization (LTO) support.  It can be
 downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
-though it is commonly available in several systems.
+though it is commonly available in several systems.  The versions in
+IRIX 5 and 6 don't work since they lack @file{gelf.h}.  The version in
+recent releases of Solaris 11 does work, previous ones don't yet.
 
 The @option{--with-libelf} configure option should be used if libelf is
 not installed in your default library search patch.
 
 The @option{--with-libelf} configure option should be used if libelf is
 not installed in your default library search patch.
@@ -375,7 +376,7 @@ not installed in your default library search patch.
 Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@:
 to regenerate @file{configure} and @file{config.in} files.
 
 Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@:
 to regenerate @file{configure} and @file{config.in} files.
 
-@item automake version 1.11
+@item automake version 1.11.1
 
 Necessary when modifying a @file{Makefile.am} file to regenerate its
 associated @file{Makefile.in}.
 
 Necessary when modifying a @file{Makefile.am} file to regenerate its
 associated @file{Makefile.in}.
@@ -386,7 +387,7 @@ file.  Specifically this applies to the @file{gcc}, @file{intl},
 as any of their subdirectories.
 
 For directories that use automake, GCC requires the latest release in
 as any of their subdirectories.
 
 For directories that use automake, GCC requires the latest release in
-the 1.11 series, which is currently 1.11.  When regenerating a directory
+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.11
 to the latest released version.
 
 to a newer version, please update all the directories using an older 1.11
 to the latest released version.
 
@@ -1118,7 +1119,8 @@ RTEMS thread support.
 @item single
 Disable thread support, should work for all platforms.
 @item solaris
 @item single
 Disable thread support, should work for all platforms.
 @item 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, @samp{posix}.
 @item vxworks
 VxWorks thread support.
 @item win32
 @item vxworks
 VxWorks thread support.
 @item win32
@@ -1170,6 +1172,11 @@ of the arguments depend on the target.
 Specify if the compiler should default to @option{-marm} or @option{-mthumb}.
 This option is only supported on ARM targets.
 
 Specify if the compiler should default to @option{-marm} or @option{-mthumb}.
 This option is only supported on ARM targets.
 
+@item --with-fpmath=sse
+Specify if the compiler should default to @option{-msse2} and
+@option{-mfpmath=sse}.  This option is only supported on i386 and
+x86-64 targets.
+
 @item --with-divide=@var{type}
 Specify how the compiler should generate code for checking for
 division by zero.  This option is only supported on the MIPS target.
 @item --with-divide=@var{type}
 Specify how the compiler should generate code for checking for
 division by zero.  This option is only supported on the MIPS target.
@@ -1346,8 +1353,10 @@ powerpc-linux for powerpc64-linux, only generates 32-bit code.  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.
 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.
+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.
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
@@ -1431,7 +1440,7 @@ increase the risk of undetected internal errors causing wrong code to be
 generated.
 
 @item --disable-stage1-checking
 generated.
 
 @item --disable-stage1-checking
-@item --enable-stage1-checking
+@itemx --enable-stage1-checking
 @itemx --enable-stage1-checking=@var{list}
 If no @option{--enable-checking} option is specified the stage1
 compiler will be built with @samp{yes} checking enabled, otherwise
 @itemx --enable-stage1-checking=@var{list}
 If no @option{--enable-checking} option is specified the stage1
 compiler will be built with @samp{yes} checking enabled, otherwise
@@ -1624,6 +1633,29 @@ 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.
 
 default for a native toolchain with an assembler that accepts it and
 GLIBC 2.11 or above, otherwise disabled.
 
+@item --enable-lto
+Enable support for link-time optimization (LTO).  This is enabled by
+default if a working libelf implementation is found (see
+@option{--with-libelf}).
+
+@item --with-libelf=@var{pathname}
+@itemx --with-libelf-include=@var{pathname}
+@itemx --with-libelf-lib=@var{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
+(@samp{--with-libelf=@var{libelfinstalldir}}).  The
+@option{--with-libelf=@var{libelfinstalldir}} option is shorthand for
+@option{--with-libelf-include=@var{libelfinstalldir}/include}
+@option{--with-libelf-lib=@var{libelfinstalldir}/lib}.
+
+@item --enable-gold
+Enable support for using @command{gold} as the linker.  If gold support is
+enabled together with @option{--enable-lto}, an additional directory
+@file{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
+@option{-flto} and @option{-fwhopr} for details.
 @end table
 
 @subheading Cross-Compiler-Specific Options
 @end table
 
 @subheading Cross-Compiler-Specific Options
@@ -1882,6 +1914,9 @@ not specified, then the Python modules are installed in $(prefix)/share/python.
 @item --enable-aot-compile-rpm
 Adds aot-compile-rpm to the list of installed scripts.
 
 @item --enable-aot-compile-rpm
 Adds aot-compile-rpm to the list of installed scripts.
 
+@item --enable-browser-plugin
+Build the gcjwebplugin web browser plugin.
+
 @table @code
 @item ansi
 Use the single-byte @code{char} and the Win32 A functions natively,
 @table @code
 @item ansi
 Use the single-byte @code{char} and the Win32 A functions natively,
@@ -1902,30 +1937,6 @@ Use the @code{WCHAR} and Win32 W functions natively.  Does @emph{not}
 add @code{-lunicows} to @file{libgcj.spec}.  The built executables will
 only run on Microsoft Windows NT and above.
 @end table
 add @code{-lunicows} to @file{libgcj.spec}.  The built executables will
 only run on Microsoft Windows NT and above.
 @end table
-
-@item --enable-lto
-Enable support for link-time optimization (LTO).  This is enabled by
-default if a working libelf implementation is found (see
-@option{--with-libelf}).
-
-@item --with-libelf=@var{pathname}
-@itemx --with-libelf-include=@var{pathname}
-@itemx --with-libelf-lib=@var{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
-(@samp{--with-libelf=@var{libelfinstalldir}}).  The
-@option{--with-libelf=@var{libelfinstalldir}} option is shorthand for
-@option{--with-libelf-include=@var{libelfinstalldir}/include}
-@option{--with-libelf-lib=@var{libelfinstalldir}/lib}.
-
-@item --enable-gold
-Enable support for using @command{gold} as the linker.  If gold support is
-enabled together with @option{--enable-lto}, an additional directory
-@file{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
-@option{-flto} and @option{-fwhopr} for details.
 @end table
 
 @subsubheading AWT-Specific Options
 @end table
 
 @subsubheading AWT-Specific Options
@@ -2883,6 +2894,10 @@ information are.
 @item
 @uref{#iq2000-x-elf,,iq2000-*-elf}
 @item
 @item
 @uref{#iq2000-x-elf,,iq2000-*-elf}
 @item
+@uref{#lm32-x-elf,,lm32-*-elf}
+@item
+@uref{#lm32-x-uclinux,,lm32-*-uclinux}
+@item
 @uref{#m32c-x-elf,,m32c-*-elf}
 @item
 @uref{#m32r-x-elf,,m32r-*-elf}
 @uref{#m32c-x-elf,,m32c-*-elf}
 @item
 @uref{#m32r-x-elf,,m32r-*-elf}
@@ -2935,6 +2950,8 @@ information are.
 @item
 @uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7}
 @item
 @item
 @uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7}
 @item
+@uref{#sparc-sun-solaris210,,sparc-sun-solaris2.10}
+@item
 @uref{#sparc-x-linux,,sparc-*-linux*}
 @item
 @uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
 @uref{#sparc-x-linux,,sparc-*-linux*}
 @item
 @uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
@@ -2990,61 +3007,38 @@ shared libraries.
 @end html
 @heading @anchor{alpha-dec-osf}alpha*-dec-osf*
 Systems using processors that implement the DEC Alpha architecture and
 @end html
 @heading @anchor{alpha-dec-osf}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
+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 @code{alpha*-dec-osf4} are no longer
 supported.  (These are the versions which identify themselves as DEC
 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
 
 As of GCC 3.2, versions before @code{alpha*-dec-osf4} are no longer
 supported.  (These are the versions which identify themselves as DEC
-OSF/1.)
+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
+@option{--enable-obsolete}.  Support will be removed in GCC 4.6.
 
 
-In Digital Unix V4.0, virtual memory exhausted bootstrap failures
-may be fixed by configuring with @option{--with-gc=simple},
-reconfiguring Kernel Virtual Memory and Swap parameters
+On Tru64 UNIX, virtual memory exhausted bootstrap failures
+may be fixed by reconfiguring Kernel Virtual Memory and Swap parameters
 per the @command{/usr/sbin/sys_check} Tuning Suggestions,
 or applying the patch in
 per the @command{/usr/sbin/sys_check} Tuning Suggestions,
 or applying the patch in
-@uref{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 @command{mips-tfile}.  As a workaround,
-we need to use the old assembler, invoked via the barely documented
-@option{-oldas} option.  To bootstrap GCC, you either need to use the
-Compaq C Compiler:
-
-@smallexample
-   % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}]
-@end smallexample
+@uref{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 @command{ulimit -Sd unlimited}.
 
 
-or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
-
-@smallexample
-   % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}]
-@end smallexample
-
-As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld}
+As of GNU binutils 2.20.1, neither GNU @command{as} nor GNU @command{ld}
 are supported on Tru64 UNIX, so you must not configure GCC with
 @option{--with-gnu-as} or @option{--with-gnu-ld}.
 
 GCC writes a @samp{.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 @file{/usr/include/stamp.h}.  If you install a
 are supported on Tru64 UNIX, so you must not configure GCC with
 @option{--with-gnu-as} or @option{--with-gnu-ld}.
 
 GCC writes a @samp{.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 @file{/usr/include/stamp.h}.  If you install a
-new version of DEC Unix, you should rebuild GCC to pick up the new version
+new version of Tru64 UNIX, you should rebuild GCC to pick up the new version
 stamp.
 
 stamp.
 
-@samp{make compare} may fail on old versions of DEC Unix unless you add
-@option{-save-temps} to @code{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 @code{stage1} and
-@code{stage2} compilations.  The option @option{-save-temps} forces a
-fixed name to be used for the assembler input file, instead of a
-randomly chosen name in @file{/tmp}.  Do not add @option{-save-temps}
-unless the comparisons fail without that option.  If you add
-@option{-save-temps}, you will have to manually delete the @samp{.i} and
-@samp{.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 @option{--with-stabs} option of @file{configure} above
 for more information on these formats and how to select them.
 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 @option{--with-stabs} option of @file{configure} above
 for more information on these formats and how to select them.
+@c FIXME: does this work at all?  If so, perhaps make default.
 
 There is a bug in DEC's assembler that produces incorrect line numbers
 for ECOFF format when the @samp{.align} directive is used.  To work
 
 There is a bug in DEC's assembler that produces incorrect line numbers
 for ECOFF format when the @samp{.align} directive is used.  To work
@@ -3058,6 +3052,8 @@ To avoid this behavior, specify @option{-gstabs+} and use GDB instead of
 DBX@.  DEC is now aware of this problem with the assembler and hopes to
 provide a fix shortly.
 
 DBX@.  DEC is now aware of this problem with the assembler and hopes to
 provide a fix shortly.
 
+@c FIXME: still applicable?
+
 @html
 <hr />
 @end html
 @html
 <hr />
 @end html
@@ -3468,12 +3464,30 @@ found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
 @end html
 @heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10
 Use this for Solaris 10 or later on x86 and x86-64 systems.  This
 @end html
 @heading @anchor{ix86-x-solaris210}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
-@file{/usr/sfw/bin/gas} but the Sun linker, using the options
-@option{--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
+@samp{sparcv9-sun-solaris2*}, there is no corresponding 64-bit
+configuration like @samp{amd64-*-solaris2*} or @samp{x86_64-*-solaris2*}.
+@c FIXME: will there ever be?
+
+It is recommended that you configure GCC to use the GNU assembler, in
+@file{/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
+@file{/usr/ccs/bin/as} work almost as well, though.
+@c FIXME: as patch requirements?
+
+For linking, the Sun linker, is preferred.  If you want to use the GNU
+linker instead, which is available in @file{/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 @command{as}, configure with the options
+@option{--with-gnu-as --with-as=/usr/sfw/bin/gas}.  It may be necessary
+to configure with @option{--without-gnu-ld --with-ld=/usr/ccs/bin/ld} to
+guarantee use of Sun @command{ld}.
+@c FIXME: why --without-gnu-ld --with-ld?
 
 @html
 <hr />
 
 @html
 <hr />
@@ -3661,6 +3675,20 @@ applications.  There are no standard Unix configurations.
 @html
 <hr />
 @end html
 @html
 <hr />
 @end html
+@heading @anchor{lm32-x-elf}lm32-*-elf
+Lattice Mico32 processor.
+This configuration is intended for embedded systems.
+
+@html
+<hr />
+@end html
+@heading @anchor{lm32-x-uclinux}lm32-*-uclinux
+Lattice Mico32 processor.
+This configuration is intended for embedded systems running uClinux.
+
+@html
+<hr />
+@end html
 @heading @anchor{m32c-x-elf}m32c-*-elf
 Renesas M32C processor.
 This configuration is intended for embedded systems.
 @heading @anchor{m32c-x-elf}m32c-*-elf
 Renesas M32C processor.
 This configuration is intended for embedded systems.
@@ -3794,37 +3822,61 @@ made after Nov. 9, 2006) should be free from both of these problems.
 @end html
 @heading @anchor{mips-sgi-irix5}mips-sgi-irix5
 
 @end html
 @heading @anchor{mips-sgi-irix5}mips-sgi-irix5
 
+Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with @option{--enable-obsolete}.  Support will be
+removed in GCC 4.6.
+
 In order to compile GCC on an SGI running IRIX 5, the @samp{compiler_dev.hdr}
 subsystem must be installed from the IDO CD-ROM supplied by SGI@.
 It is also available for download from
 In order to compile GCC on an SGI running IRIX 5, the @samp{compiler_dev.hdr}
 subsystem must be installed from the IDO CD-ROM supplied by SGI@.
 It is also available for download from
-@uref{ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist}.
+@uref{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
 @option{-Wf,-XNg1500} option.  If you use the @option{-O2}
 optimization option, you also need to use @option{-Olimit 3000}.
 
 If you use the MIPS C compiler to bootstrap, it may be necessary
 to increase its table size for switch statements with the
 @option{-Wf,-XNg1500} option.  If you use the @option{-O2}
 optimization option, you also need to use @option{-Olimit 3000}.
+@c FIXME: verify.
+
+GCC must be configured to use GNU @command{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 @option{--with-gnu-ld} @command{configure} option
 
 To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
 later, and use the @option{--with-gnu-ld} @command{configure} option
-when configuring GCC@.  You need to use GNU @command{ar} and @command{nm},
+when configuring GCC@.
+You need to use GNU @command{ar} and @command{nm},
 also distributed with GNU binutils.
 also distributed with GNU binutils.
+@c FIXME: which parts of this are still true?
 
 
-Some users have reported that @command{/bin/sh} will hang during bootstrap.
-This problem can be avoided by running the commands:
+Configuring GCC with @command{/bin/sh} is @emph{extremely} slow and may
+even hang.  This problem can be avoided by running @command{configure}
+like this:
 
 @smallexample
 
 @smallexample
-   % CONFIG_SHELL=/bin/ksh
+   % CONFIG_SHELL=/usr/local/bin/bash
    % export CONFIG_SHELL
    % export CONFIG_SHELL
+   % $CONFIG_SHELL @var{srcdir}/configure [@var{options}]
 @end smallexample
 
 @noindent
 @end smallexample
 
 @noindent
-before starting the build.
+@command{/bin/ksh} doesn't work properly either.
 
 @html
 <hr />
 @end html
 @heading @anchor{mips-sgi-irix6}mips-sgi-irix6
 
 
 @html
 <hr />
 @end html
 @heading @anchor{mips-sgi-irix6}mips-sgi-irix6
 
+Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5,
+but can still be enabled by configuring with @option{--enable-obsolete}.
+Support will be removed in GCC 4.6, which will also disable support for
+the O32 ABI.  It is @emph{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
+@uref{http://freeware.sgi.com/idf_idl.html} for older IRIX 6 releases.
+
 If you are using SGI's MIPSpro @command{cc} as your bootstrap compiler, you must
 ensure that the N32 ABI is in use.  To test this, compile a simple C
 file with @command{cc} and then run @command{file} on the
 If you are using SGI's MIPSpro @command{cc} as your bootstrap compiler, you must
 ensure that the N32 ABI is in use.  To test this, compile a simple C
 file with @command{cc} and then run @command{file} on the
@@ -3888,9 +3940,9 @@ try to use them.  This will disable building the O32 libraries, too.
 Look for @file{/usr/lib64/libc.so.1} to see if you
 have the 64-bit libraries installed.
 
 Look for @file{/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 @command{as} from
-GNU binutils 2.15 or later.  You may also use GNU @command{ld}, but
-this is not required and currently causes some problems with Ada.
+GCC must be configured with GNU @command{as}.  The latest version, from GNU
+binutils 2.20.1, is known to work.  On the other hand, bootstrap fails
+with GNU @command{ld} at least since GNU binutils 2.17.
 
 The @option{--enable-libgcj}
 option is disabled by default: IRIX 6 uses a very low default limit
 
 The @option{--enable-libgcj}
 option is disabled by default: IRIX 6 uses a very low default limit
@@ -3900,15 +3952,13 @@ to build despite this, running into an internal error of the native
 @command{ld}.  A sure fix is to increase this limit (@samp{ncargs}) to
 its maximum of 262144 bytes.  If you have root access, you can use the
 @command{systune} command to do this.
 @command{ld}.  A sure fix is to increase this limit (@samp{ncargs}) to
 its maximum of 262144 bytes.  If you have root access, you can use the
 @command{systune} command to do this.
+@c FIXME: does this work with current libtool?
 
 @code{wchar_t} support in @samp{libstdc++} is not available for old
 IRIX 6.5.x releases, @math{x < 19}.  The problem cannot be autodetected
 and in order to build GCC for such targets you need to configure with
 @option{--disable-wchar_t}.
 
 
 @code{wchar_t} support in @samp{libstdc++} is not available for old
 IRIX 6.5.x releases, @math{x < 19}.  The problem cannot be autodetected
 and in order to build GCC for such targets you need to configure with
 @option{--disable-wchar_t}.
 
-See @uref{http://freeware.sgi.com/} for more
-information about using GCC on IRIX platforms.
-
 @html
 <hr />
 @end html
 @html
 <hr />
 @end html
@@ -3999,6 +4049,14 @@ Embedded PowerPC system in little endian mode.
 @html
 <hr />
 @end html
 @html
 <hr />
 @end html
+@heading @anchor{rx-x-elf}rx-*-elf
+The Renesas RX processor.  See
+@uref{http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series}
+for more information about this processor.
+
+@html
+<hr />
+@end html
 @heading @anchor{s390-x-linux}s390-*-linux*
 S/390 system running GNU/Linux for S/390@.
 
 @heading @anchor{s390-x-linux}s390-*-linux*
 S/390 system running GNU/Linux for S/390@.
 
@@ -4024,12 +4082,18 @@ supported as cross-compilation target only.
 @c alone is too unspecific and must be avoided.
 @heading @anchor{x-x-solaris2}*-*-solaris2*
 
 @c alone is too unspecific and must be avoided.
 @heading @anchor{x-x-solaris2}*-*-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
+Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with @option{--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
+@uref{http://developers.sun.com/sunstudio/downloads/}.  Alternatively,
+you can install a pre-built GCC to bootstrap and install GCC.  See the
 @uref{binaries.html,,binaries page} for details.
 
 The Solaris 2 @command{/bin/sh} will often fail to configure
 @uref{binaries.html,,binaries page} for details.
 
 The Solaris 2 @command{/bin/sh} will often fail to configure
-@file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}.  We therefore
+@samp{libstdc++-v3}, @samp{boehm-gc} or @samp{libjava}.  We therefore
 recommend using the following initial sequence of commands
 
 @smallexample
 recommend using the following initial sequence of commands
 
 @smallexample
@@ -4037,9 +4101,10 @@ recommend using the following initial sequence of commands
    % export CONFIG_SHELL
 @end smallexample
 
    % export CONFIG_SHELL
 @end smallexample
 
+@noindent
 and proceed as described in @uref{configure.html,,the configure instructions}.
 In addition we strongly recommend specifying an absolute path to invoke
 and proceed as described in @uref{configure.html,,the configure instructions}.
 In addition we strongly recommend specifying an absolute path to invoke
-@var{srcdir}/configure.
+@command{@var{srcdir}/configure}.
 
 Solaris 2 comes with a number of optional OS packages.  Some of these
 are needed to use GCC fully, namely @code{SUNWarc},
 
 Solaris 2 comes with a number of optional OS packages.  Some of these
 are needed to use GCC fully, namely @code{SUNWarc},
@@ -4062,37 +4127,30 @@ The build process works more smoothly with the legacy Sun tools so, if you
 have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
 @file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build.
 
 have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
 @file{/usr/bin} before @file{/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 @command{as}, Sun @command{ld}).  Note that your mileage may vary
+We recommend the use of the Sun assembler or the GNU assembler, in
+conjunction with the Sun linker.  The GNU @command{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
+@file{/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 @command{as} + Sun @command{ld} should reasonably work,
 the reverse combination Sun @command{as} + GNU @command{ld} is known to
 cause memory corruption at runtime in some cases for C++ programs.
 if you use a combination of the GNU tools and the Sun tools: while the
 combination GNU @command{as} + Sun @command{ld} should reasonably work,
 the reverse combination Sun @command{as} + GNU @command{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
-@uref{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 @command{as}, Sun @command{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
-@uref{http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html} to the
-release.
+@c FIXME: still?
+GNU @command{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 @command{ld}.
 
 Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
 newer: @command{g++} will complain that types are missing.  These headers
 assume that omitting the type means @code{int}; this assumption worked for
 
 Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
 newer: @command{g++} will complain that types are missing.  These headers
 assume that omitting the type means @code{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.
 
 @command{g++} accepts such (invalid) constructs with the option
 @option{-fpermissive}; it will assume that any missing type is @code{int}
 
 @command{g++} accepts such (invalid) constructs with the option
 @option{-fpermissive}; it will assume that any missing type is @code{int}
-(as defined by C89).
+(as 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,
 
 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,
@@ -4114,7 +4172,7 @@ SPARC, 117172-11 or newer for Intel) that address this problem.
 @end html
 @heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
 
 @end html
 @heading @anchor{sparc-sun-solaris2}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.
 produced are smaller than the ones produced using Sun's native tools;
 this difference is quite significant for binaries containing debugging
 information.
@@ -4144,7 +4202,7 @@ and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes 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.
 
 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 for
+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
 an x86-only problem by Sun, probably because they do not use DWARF-2).
 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
 an x86-only problem by Sun, probably because they do not use DWARF-2).
@@ -4157,13 +4215,14 @@ ld: warning: relocation error: R_SPARC_UA32: @dots{}
   .debug_info cannot be processed at runtime: relocation ignored.
 @end smallexample
 
   .debug_info cannot be processed at runtime: relocation ignored.
 @end smallexample
 
+@noindent
 To work around this problem, compile with @option{-gstabs+} instead of
 plain @option{-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 @command{build} parameter on the configure
 To work around this problem, compile with @option{-gstabs+} instead of
 plain @option{-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 @command{build} parameter on the configure
-line.  This triplet can be obtained by invoking ./config.guess in
+line.  This triplet can be obtained by invoking @command{./config.guess} in
 the toplevel source directory of GCC (and not that of GMP or MPFR).
 For example on a Solaris 7 system:
 
 the toplevel source directory of GCC (and not that of GMP or MPFR).
 For example on a Solaris 7 system:
 
@@ -4176,6 +4235,9 @@ For example on a Solaris 7 system:
 @end html
 @heading @anchor{sparc-sun-solaris27}sparc-sun-solaris2.7
 
 @end html
 @heading @anchor{sparc-sun-solaris27}sparc-sun-solaris2.7
 
+@emph{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
 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
@@ -4213,13 +4275,14 @@ the Solaris 7 Recommended Patch Cluster.
 
 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
 
 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:
+@samp{libgcc}.  A typical error message is:
 
 @smallexample
 ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
   symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
 @end smallexample
 
 
 @smallexample
 ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
   symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
 @end smallexample
 
+@noindent
 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
 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
@@ -4231,11 +4294,28 @@ ld: fatal: relocation error: R_SPARC_DISP32:
     symbol <unknown>: offset 0xfccd33ad is non-aligned
 @end smallexample
 
     symbol <unknown>: offset 0xfccd33ad is non-aligned
 @end smallexample
 
+@noindent
 This bug has been fixed in more recent revisions of the assembler.
 
 @html
 <hr />
 @end html
 This bug has been fixed in more recent revisions of the assembler.
 
 @html
 <hr />
 @end html
+@heading @anchor{sparc-sun-solaris210}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
+
+@smallexample
+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
+@end smallexample
+
+@noindent
+This bug is fixed in Sun patch 118683-03 or later.
+
+@html
+<hr />
+@end html
 @heading @anchor{sparc-x-linux}sparc-*-linux*
 
 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
 @heading @anchor{sparc-x-linux}sparc-*-linux*
 
 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
@@ -4264,6 +4344,7 @@ step in order to bootstrap this target with the Sun compiler:
    % CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}]
 @end smallexample
 
    % CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}]
 @end smallexample
 
+@noindent
 @option{-xarch=v9} specifies the SPARC-V9 architecture to the Sun toolchain
 and @option{-xildoff} turns off the incremental linker.
 
 @option{-xarch=v9} specifies the SPARC-V9 architecture to the Sun toolchain
 and @option{-xildoff} turns off the incremental linker.
 
@@ -4272,7 +4353,7 @@ and @option{-xildoff} turns off the incremental linker.
 @end html
 @heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2*
 
 @end html
 @heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2*
 
-This is a synonym for sparc64-*-solaris2*.
+This is a synonym for @samp{sparc64-*-solaris2*}.
 
 @html
 <hr />
 
 @html
 <hr />
@@ -4417,7 +4498,11 @@ Ports of GCC are included with the
 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.
 
 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.
 
 @html
 <hr />
 
 @html
 <hr />