OSDN Git Service

2006-02-22 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / doc / install.texi
index e8b8d00..9ac21ee 100644 (file)
 @end ifset
 
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 test the generation of HTML documents for the gcc.gnu.org web pages.
+@c
+@c Do not use @footnote{} in this file as it breaks install.texi2html!
+
 @c Include everything if we're not making html
 @ifnothtml
 @set indexhtml
@@ -64,7 +69,7 @@
 @c Part 2 Summary Description and Copyright
 @copying
 Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 @sp 1
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.2 or
@@ -261,7 +266,7 @@ environment to your ``good'' shell prior to running
 @command{configure}/@command{make}.
 
 @command{zsh} is not a fully compliant POSIX shell and will not
-work when configuring GCC.
+work when configuring GCC@.
 
 @item GNU binutils
 
@@ -277,7 +282,7 @@ obtained via FTP mirror sites.
 
 @item GNU make version 3.79.1 (or later)
 
-You must have GNU make installed to build GCC.
+You must have GNU make installed to build GCC@.
 
 @item GNU tar version 1.12 (or later)
 
@@ -287,14 +292,14 @@ systems' @command{tar} programs will also work, only try GNU
 
 @item GNU Multiple Precision Library (GMP) version 4.0 (or later)
 
-Necessary to build the Fortran frontend. If you don't have it
+Necessary to build the Fortran frontend.  If you don't have it
 installed in your library search path, you will have to configure with
 the @option{--with-gmp} or @option{--with-gmp-dir} configure option.
 
 @item MPFR Library
 
 Necessary to build the Fortran frontend.  It can be downloaded from
-@uref{http://http://www.mpfr.org/}.  It is also included in the current GMP
+@uref{http://www.mpfr.org/}.  It is also included in the current GMP
 release (4.1.3) when configured with @option{--enable-mpfr}.
 
 The @option{--with-mpfr} or @option{--with-mpfr-dir} configure option should
@@ -313,7 +318,7 @@ to regenerate @file{configure} and @file{config.in} files.  Most
 directories require autoconf 2.59 (exactly), but the toplevel
 still requires autoconf 2.13 (exactly).
 
-@item automake versions 1.8.5 and 1.9.1
+@item automake versions 1.9.3
 
 Necessary when modifying a @file{Makefile.am} file to regenerate its
 associated @file{Makefile.in}.
@@ -323,12 +328,12 @@ file.  Specifically this applies to the @file{gcc}, @file{intl},
 @file{libcpp}, @file{libiberty}, @file{libobjc} directories as well
 as any of their subdirectories.
 
-The Java directory @file{libjava} and the @file{libstdc++-v3} directory
-require automake 1.9.1.  Every other directory should work with either
-automake 1.8.5 and automake 1.9.1, but most of them have been tested only
-with automake 1.8.5 so far.
+For directories that use automake, GCC requires the latest release in
+the 1.9.x series, which is currently 1.9.3.  When regenerating a directory
+to a newer version, please update all the directories using an older 1.9.x
+to the latest released version.
 
-@item gettext version 0.12 (or later)
+@item gettext version 0.14.5 (or later)
 
 Needed to regenerate @file{gcc.pot}.
 
@@ -373,7 +378,7 @@ Necessary to build GCC during development because the generated output
 files are not included in the CVS repository.  They are included in
 releases.
 
-@item Texinfo version 4.2 (or later)
+@item Texinfo version 4.4 (or later)
 
 Necessary for running @command{makeinfo} when modifying @file{*.texi}
 files to test your changes.
@@ -391,13 +396,15 @@ Necessary for running @command{texi2dvi}, used when running
 @itemx ssh (any version)
 
 Necessary to access the CVS repository.  Public releases and weekly
-snapshots of the development sources are also available via FTP.
+snapshots of the development sources are also available via FTP@.
 
 @item perl version 5.6.1 (or later)
 
 Necessary when regenerating @file{Makefile} dependencies in libiberty.
 Necessary when regenerating @file{libiberty/functions.texi}.
 Necessary when generating manpages from Texinfo manuals.
+Necessary when targetting Darwin, building libstdc++,
+and not using @option{--disable-symvers}.
 Used by various scripts to generate some files included in CVS (mainly
 Unicode-related and rarely changing) from source tables.
 
@@ -442,7 +449,7 @@ Please refer to the @uref{http://gcc.gnu.org/releases.html,,releases web page}
 for information on how to obtain GCC@.
 
 The full distribution includes the C, C++, Objective-C, Fortran 77, Fortran
-(in case of GCC 3.5 and later), Java, and Ada (in case of GCC 3.1 and later)
+(in case of GCC 4.0 and later), Java, and Ada (in case of GCC 3.1 and later)
 compilers.  The full distribution also includes runtime libraries for C++,
 Objective-C, Fortran 77, Fortran, and Java.  In GCC 3.0 and later versions,
 GNU compiler testsuites are also included in the full distribution.
@@ -525,6 +532,7 @@ Second, when configuring a native system, either @command{cc} or
 your environment before running configure.  Otherwise the configuration
 scripts may fail.
 
+@ignore
 Note that the bootstrap compiler and the resulting GCC must be link
 compatible, else the bootstrap will fail with linker errors about
 incompatible object file formats.  Several multilibed targets are
@@ -535,6 +543,7 @@ affected by this requirement, see
 @ifhtml
 @uref{specific.html,,host/target specific installation notes}.
 @end ifhtml
+@end ignore
 
 To configure GCC:
 
@@ -635,22 +644,22 @@ the installation directory for G++ header files.  The default is
 
 @item --program-prefix=@var{prefix}
 GCC supports some transformations of the names of its programs when
-installing them. This option prepends @var{prefix} to the names of
-programs to install in @var{bindir} (see above). For example, specifying
+installing them.  This option prepends @var{prefix} to the names of
+programs to install in @var{bindir} (see above).  For example, specifying
 @option{--program-prefix=foo-} would result in @samp{gcc}
 being installed as @file{/usr/local/bin/foo-gcc}.
 
 @item --program-suffix=@var{suffix}
 Appends @var{suffix} to the names of programs to install in @var{bindir}
-(see above). For example, specifying @option{--program-suffix=-3.1}
+(see above).  For example, specifying @option{--program-suffix=-3.1}
 would result in @samp{gcc} being installed as
 @file{/usr/local/bin/gcc-3.1}.
 
 @item --program-transform-name=@var{pattern}
 Applies the @samp{sed} script @var{pattern} to be applied to the names
-of programs to install in @var{bindir} (see above). @var{pattern} has to
+of programs to install in @var{bindir} (see above).  @var{pattern} has to
 consist of one or more basic @samp{sed} editing commands, separated by
-semicolons. For example, if you want the @samp{gcc} program name to be
+semicolons.  For example, if you want the @samp{gcc} program name to be
 transformed to the installed program @file{/usr/local/bin/myowngcc} and
 the @samp{g++} program name to be transformed to
 @file{/usr/local/bin/gspecial++} without changing other program names,
@@ -659,7 +668,7 @@ you could use the pattern
 to achieve this effect.
 
 All three options can be combined and used together, resulting in more
-complex conversion patterns. As a basic rule, @var{prefix} (and
+complex conversion patterns.  As a basic rule, @var{prefix} (and
 @var{suffix}) are prepended (appended) before further transformations
 can happen with a special transformation script @var{pattern}.
 
@@ -669,8 +678,8 @@ transformation is explicitly asked for by one of these options.
 
 For native builds, some of the installed programs are also installed
 with the target alias in front of their name, as in
-@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen
-before the target alias is prepended to the name - so, specifying
+@samp{i686-pc-linux-gnu-gcc}.  All of the above transformations happen
+before the target alias is prepended to the name---so, specifying
 @option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the
 resulting binary would be installed as
 @file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}.
@@ -702,7 +711,7 @@ programs---perhaps many others.  (GCC installs its own header files in
 another directory which is based on the @option{--prefix} value.)
 
 Both the local-prefix include directory and the GCC-prefix include
-directory are part of GCC's "system include" directories.  Although these
+directory are part of GCC's ``system include'' directories.  Although these
 two directories are not fixed, they need to be searched in the proper
 order for the correct processing of the include_next directive.  The
 local-prefix include directory is searched before the GCC-prefix
@@ -775,7 +784,8 @@ assembler found is not actually the GNU assembler.  (Confusion may also
 result if the compiler finds the GNU assembler but has not been
 configured with @option{--with-gnu-as}.)  If you have more than one
 assembler installed on your system, you may want to use this option in
-connection with @option{--with-as=@var{pathname}}.
+connection with @option{--with-as=@var{pathname}} or
+@option{--with-build-time-tools=@var{pathname}}.
 
 The following systems are the only ones where it makes a difference
 whether you use the GNU assembler.  On any other system,
@@ -798,28 +808,40 @@ the 386, if you use the GNU assembler, you should also use the GNU linker
 (and specify @option{--with-gnu-ld}).
 
 @item @anchor{with-as}--with-as=@var{pathname}
-Specify that the
-compiler should use the assembler pointed to by @var{pathname}, rather
-than the one found by the standard rules to find an assembler, which
-are:
+Specify that the compiler should use the assembler pointed to by
+@var{pathname}, rather than the one found by the standard rules to find
+an assembler, which are:
 @itemize @bullet
 @item
-Check the @file{@var{libexec}/gcc/@var{target}/@var{version}}
-directory, where @var{libexec} defaults to
-@file{@var{exec-prefix}/libexec} and @var{exec-prefix} defaults to
-@var{prefix} which defaults to @file{/usr/local} unless overridden by
-the @option{--prefix=@var{pathname}} switch described
-above. @var{target} is the target system triple, such as
-@samp{sparc-sun-solaris2.7}, and @var{version} denotes the GCC
-version, such as 3.0.
+Unless GCC is being built with a cross compiler, check the
+@file{@var{libexec}/gcc/@var{target}/@var{version}} directory.
+@var{libexec} defaults to @file{@var{exec-prefix}/libexec};
+@var{exec-prefix} defaults to @var{prefix}, which
+defaults to @file{/usr/local} unless overridden by the
+@option{--prefix=@var{pathname}} switch described above.  @var{target}
+is the target system triple, such as @samp{sparc-sun-solaris2.7}, and
+@var{version} denotes the GCC version, such as 3.0.
+
 @item
-Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
+If the target system is the same that you are building on, check
+operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
 Sun Solaris 2).
+
+@item
+Check in the @env{PATH} for a tool whose name is prefixed by the
+target system triple.
+
+@item
+Check in the @env{PATH} for a tool whose name is not prefixed by the
+target system triple, if the host and target system triple are
+the same (in other words, we use a host tool if it can be used for
+the target as well).
 @end itemize
-Note that these rules do not check for the value of @env{PATH}.  You may
-want to use @option{--with-as} if no assembler is installed in the
-directories listed above, or if you have multiple assemblers installed
-and want to choose one that is not found by the above rules.
+
+You may want to use @option{--with-as} if no assembler
+is installed in the directories listed above, or if you have multiple
+assemblers installed and want to choose one that is not found by the
+above rules.
 
 @item @anchor{with-gnu-ld}--with-gnu-ld
 Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
@@ -915,7 +937,7 @@ AIX thread support.
 DCE thread support.
 @item gnat
 Ada tasking support.  For non-Ada programs, this setting is equivalent
-to @samp{single}. When used in conjunction with the Ada run time, it
+to @samp{single}.  When used in conjunction with the Ada run time, it
 causes GCC to use the same thread primitives as Ada uses.  This option
 is necessary when using both Ada and the back end exception handling,
 which is the default for most Ada targets.
@@ -926,7 +948,9 @@ missing and thus this setting will cause a known bootstrap failure.)
 @item no
 This is an alias for @samp{single}.
 @item posix
-Generic POSIX thread support.
+Generic POSIX/Unix98 thread support.
+@item posix95
+Generic POSIX/Unix95 thread support.
 @item rtems
 RTEMS thread support.
 @item single
@@ -937,8 +961,22 @@ Sun Solaris 2 thread support.
 VxWorks thread support.
 @item win32
 Microsoft Win32 API thread support.
+@item nks
+Novell Kernel Services thread support.
 @end table
 
+@item --enable-tls
+Specify that the target supports TLS (Thread Local Storage).  Usually
+configure can correctly determine if TLS is supported.  In cases where
+it guesses incorrectly, TLS can be explicitly enabled or disabled with
+@option{--enable-tls} or @option{--disable-tls}.  This can happen if
+the assembler supports TLS but the C library does not, or if the
+assumptions made by the configure test are incorrect.
+
+@item --disable-tls
+Specify that the target does not support TLS.
+This is an alias for @option{--enable-tls=no}.
+
 @item --with-cpu=@var{cpu}
 Specify which cpu variant the compiler should generate code for by default.
 @var{cpu} will be used as the default value of the @option{-mcpu=} switch.
@@ -957,18 +995,24 @@ options and for @option{-mhard-float} or @option{-msoft-float}.  As with
 @option{--with-cpu}, which switches will be accepted and acceptable values
 of the arguments depend on the target.
 
-@item --enable-altivec
-Specify that the target supports AltiVec vector enhancements.  This
-option will adjust the ABI for AltiVec enhancements, as well as generate
-AltiVec code when appropriate.  This option is only available for
-PowerPC systems.
+@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.
+The possibilities for @var{type} are:
+@table @code
+@item traps
+Division by zero checks use conditional traps (this is the default on
+systems that support conditional traps).
+@item breaks
+Division by zero checks use the break instruction.
+@end table
 
 @item --enable-__cxa_atexit
 Define if you want to use __cxa_atexit, rather than atexit, to
 register C++ destructors for local statics and global objects.
 This is essential for fully standards-compliant handling of
-destructors, but requires __cxa_atexit in libc. This option is currently
-only available on systems with GNU libc. When enabled, this will cause
+destructors, but requires __cxa_atexit in libc.  This option is currently
+only available on systems with GNU libc.  When enabled, this will cause
 @option{-fuse-cxa-exit} to be passed by default.
 
 @item --enable-target-optspace
@@ -1022,9 +1066,16 @@ addition, @samp{libstdc++}'s include files will be installed into
 @file{@var{libdir}} unless you overruled it by using
 @option{--with-gxx-include-dir=@var{dirname}}.  Using this option is
 particularly useful if you intend to use several versions of GCC in
-parallel. This is currently supported by @samp{libgfortran},
+parallel.  This is currently supported by @samp{libgfortran},
 @samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}.
 
+@item --with-java-home=@var{dirname}
+This @samp{libjava} option overrides the default value of the
+@samp{java.home} system property.  It is also used to set
+@samp{sun.boot.class.path} to @file{@var{dirname}/lib/rt.jar}.  By
+default @samp{java.home} is set to @file{@var{prefix}} and
+@samp{sun.boot.class.path} to
+@file{@var{datadir}/java/libgcj-@var{version}.jar}.
 
 @item --enable-languages=@var{lang1},@var{lang2},@dots{}
 Specify that only a particular subset of compilers and
@@ -1035,13 +1086,15 @@ their runtime libraries should be built.  For a list of valid values for
 grep language= */config-lang.in
 @end smallexample
 Currently, you can use any of the following:
-@code{ada}, @code{c}, @code{c++}, @code{f77}, @code{f95}, @code{java},
-@code{objc}, @code{obj-c++}.
-Building the Ada compiler has special requirements, see below.@*
-If you do not pass this flag, all languages available in the @file{gcc}
-sub-tree will be configured.  Re-defining @code{LANGUAGES} when calling
-@samp{make bootstrap} @strong{does not} work anymore, as those
-language sub-directories might not have been configured!
+@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, @code{java},
+@code{objc}, @code{obj-c++}, @code{treelang}.
+Building the Ada compiler has special requirements, see below.
+If you do not pass this flag, or specify the option @code{all}, then all
+default languages available in the @file{gcc} sub-tree will be configured.
+Ada, Objective-C++, and treelang are not default languages; the rest are.
+Re-defining @code{LANGUAGES} when calling @samp{make} @strong{does not}
+work anymore, as those language sub-directories might not have been
+configured!
 
 @item --disable-libada
 Specify that the run-time libraries and tools used by GNAT should not
@@ -1049,10 +1102,42 @@ be built.  This can be useful for debugging, or for compatibility with
 previous Ada build procedures, when it was required to explicitly
 do a @samp{make -C gcc gnatlib_and_tools}.
 
+@item --disable-libssp
+Specify that the run-time libraries for stack smashing protection
+should not be built.
+
+@item --disable-libgcc-math
+Specify that the run-time libraries for arch and gcc specific math
+functions should not be built.
+
+@item --disable-libgomp
+Specify that the run-time libraries used by GOMP should not be built.
+
 @item --with-dwarf2
 Specify that the compiler should
 use DWARF 2 debugging information as the default.
 
+@item --enable-targets=all
+@itemx --enable-targets=@var{target_list}
+Some GCC targets, e.g.@: powerpc64-linux, build bi-arch compilers.
+These are compilers that are able to generate either 64-bit or 32-bit
+code.  Typically, the corresponding 32-bit target, e.g.@:
+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.
+Currently, this option only affects powerpc-linux.
+
+@item --enable-secureplt
+This option enables @option{-msecure-plt} by default for powerpc-linux.
+@ifnothtml
+@xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc,
+Using the GNU Compiler Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``RS/6000 and PowerPC Options'' in the main manual
+@end ifhtml
+
 @item --enable-win32-registry
 @itemx --enable-win32-registry=@var{key}
 @itemx --disable-win32-registry
@@ -1064,7 +1149,7 @@ to look up installations paths in the registry using the following key:
 @end smallexample
 
 @var{key} defaults to GCC version number, and can be overridden by the
-@option{--enable-win32-registry=@var{key}} option. Vendors and distributors
+@option{--enable-win32-registry=@var{key}} option.  Vendors and distributors
 who use custom installers are encouraged to provide a different key,
 perhaps one comprised of vendor name and GCC version number, to
 avoid conflict with existing installations.  This feature is enabled
@@ -1089,30 +1174,39 @@ controlled by the Makefiles.
 
 @item --enable-checking
 @itemx --enable-checking=@var{list}
-When you specify this option, the compiler is built to perform checking
-of tree node types when referencing fields of that node, and some other
-internal consistency checks.  This does not change the generated code,
-but adds error checking within the compiler.  This will slow down the
-compiler and may only work properly if you are building the compiler
-with GCC@.  This is on by default when building from CVS or snapshots,
-but off for releases.  More control over the checks may be had by
-specifying @var{list}; the categories of checks available are
-@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl}, @samp{rtlflag},
-@samp{fold}, @samp{gcac} and @samp{valgrind}.  The check @samp{valgrind}
-requires the external @command{valgrind} simulator, available from
-@uref{http://valgrind.kde.org/}.  The default when @var{list} is
-not specified is @samp{misc,tree,gc,rtlflag}; the checks @samp{rtl},
-@samp{gcac} and @samp{valgrind} are very expensive.
+When you specify this option, the compiler is built to perform internal
+consistency checks of the requested complexity.  This does not change the
+generated code, but adds error checking within the compiler.  This will
+slow down the compiler and may only work properly if you are building
+the compiler with GCC@.  This is @samp{yes} by default when building
+from CVS or snapshots, but @samp{release} for releases.  More control
+over the checks may be had by specifying @var{list}.  The categories of
+checks available are @samp{yes} (most common checks
+@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at
+all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest
+checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}).
+Individual checks can be enabled with these flags @samp{assert},
+@samp{fold}, @samp{gc}, @samp{gcac} @samp{misc}, @samp{rtl},
+@samp{rtlflag}, @samp{runtime}, @samp{tree}, and @samp{valgrind}.
+
+The @samp{valgrind} check requires the external @command{valgrind}
+simulator, available from @uref{http://valgrind.org/}.  The
+@samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very expensive.
+To disable all checking, @samp{--disable-checking} or
+@samp{--enable-checking=none} must be explicitly requested.  Disabling
+assertions will make the compiler and runtime slightly faster but
+increase the risk of undetected internal errors causing wrong code to be
+generated.
 
 @item --enable-coverage
 @itemx --enable-coverage=@var{level}
 With this option, the compiler is built to collect self coverage
-information, every time it is run. This is for internal development
-purposes, and only works when the compiler is being built with gcc. The
+information, every time it is run.  This is for internal development
+purposes, and only works when the compiler is being built with gcc.  The
 @var{level} argument controls whether the compiler is built optimized or
-not, values are @samp{opt} and @samp{noopt}. For coverage analysis you
+not, values are @samp{opt} and @samp{noopt}.  For coverage analysis you
 want to disable optimization, for performance analysis you want to
-enable optimization. When coverage is enabled, the default level is
+enable optimization.  When coverage is enabled, the default level is
 without optimization.
 
 @item --enable-gather-detailed-mem-stats
@@ -1120,6 +1214,12 @@ When this option is specified more detailed information on memory
 allocation is gathered.  This information is printed when using
 @option{-fmem-report}.
 
+@item --with-gc
+@itemx --with-gc=@var{choice}
+With this option you can specify the garbage collector implementation
+used during the compilation process.  @var{choice} can be one of
+@samp{page} and @samp{zone}, where @samp{page} is the default.
+
 @item --enable-nls
 @itemx --disable-nls
 The @option{--enable-nls} option enables Native Language Support (NLS),
@@ -1151,6 +1251,14 @@ error message.
 All support for systems which have been obsoleted in one release of GCC
 is removed entirely in the next major release, unless someone steps
 forward to maintain the port.
+
+@item --enable-decimal-float
+@itemx --disable-decimal-float
+Enable (or disable) support for the C decimal floating point
+extension.  This is enabled by default only on PowerPC GNU/Linux
+systems.  Other systems may also support it, but require the user to
+specifically enable it.
+
 @end table
 
 @subheading Cross-Compiler-Specific Options
@@ -1169,6 +1277,20 @@ in case @option{--with-sysroot} is not given an argument, is
 subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to
 the GCC binaries if the installation tree is moved.
 
+@item --with-build-sysroot
+@itemx --with-build-sysroot=@var{dir}
+Tells GCC to consider @var{dir} as the system root (see
+@option{--with-sysroot}) while building target libraries, instead of
+the directory specified with @option{--with-sysroot}.  This option is
+only useful when you are already using @option{--with-sysroot}.  You
+can use @option{--with-build-sysroot} when you are configuring with
+@option{--prefix} set to a directory that is different from the one in
+which you are installing GCC and your target libraries.  
+
+This option affects the system root for the compiler used to build
+target libraries (which runs on the build system); it does not affect
+the compiler which is used to build GCC itself.
+
 @item --with-headers
 @itemx --with-headers=@var{dir}
 Deprecated in favor of @option{--with-sysroot}.
@@ -1179,7 +1301,7 @@ directory.  @emph{This option with the @var{dir} argument is required} when
 building a cross compiler, if @file{@var{prefix}/@var{target}/sys-include}
 doesn't pre-exist.  If @file{@var{prefix}/@var{target}/sys-include} does
 pre-exist, the @var{dir} argument may be omitted.  @command{fixincludes}
-will be run on these files to make them compatible with GCC.
+will be run on these files to make them compatible with GCC@.
 
 @item --without-headers
 Tells GCC not use any target headers from a libc when building a cross
@@ -1195,14 +1317,32 @@ Specifies a list of directories which contain the target runtime
 libraries.  These libraries will be copied into the @file{gcc} install
 directory.  If the directory list is omitted, this option has no
 effect.
+
 @item --with-newlib
 Specifies that @samp{newlib} is
 being used as the target C library.  This causes @code{__eprintf} to be
 omitted from @file{libgcc.a} on the assumption that it will be provided by
 @samp{newlib}.
+
+@item --with-build-time-tools=@var{dir}
+Specifies where to find the set of target tools (assembler, linker, etc.)
+that will be used while building GCC itself.  This option can be useful
+if the directory layouts are different between the system you are building
+GCC on, and the system where you will deploy it.
+
+For example, on a @option{ia64-hp-hpux} system, you may have the GNU
+assembler and linker in @file{/usr/bin}, and the native tools in a
+different path, and build a toolchain that expects to find the
+native tools in @file{/usr/bin}.
+
+When you use this option, you should ensure that @var{dir} includes
+@command{ar}, @command{as}, @command{ld}, @command{nm},
+@command{ranlib} and @command{strip} if necessary, and possibly
+@command{objdump}.  Otherwise, GCC may use an inconsistent set of
+tools.
 @end table
 
-@subheading Fortran-specific Option
+@subheading Fortran-Specific Options
 
 The following options apply to the build of the Fortran front end.
 
@@ -1212,7 +1352,7 @@ The following options apply to the build of the Fortran front end.
 @itemx --with-mpfr=@var{pathname}
 @itemx --with-gmp-dir=@var{pathname}
 @itemx --with-mpfr-dir=@var{pathname}
-If you don't have GMP (the GNU Multiple Precision library) and the MPFR 
+If you don't have GMP (the GNU Multiple Precision library) and the MPFR
 Libraries installed in a standard location and you want to build the Fortran
 front-end, you can explicitly specify the directory where they are installed
 (@samp{--with-gmp=gmpinstalldir}, @samp{--with-mpfr=mpfrinstalldir}) or where
@@ -1249,19 +1389,19 @@ The following options apply to building @samp{libgcj}.
 Don't set system properties from @env{GCJ_PROPERTIES}.
 
 @item --enable-hash-synchronization
-Use a global hash table for monitor locks. Ordinarily,
+Use a global hash table for monitor locks.  Ordinarily,
 @samp{libgcj}'s @samp{configure} script automatically makes
-the correct choice for this option for your platform. Only use
+the correct choice for this option for your platform.  Only use
 this if you know you need the library to be configured differently.
 
 @item --enable-interpreter
-Enable the Java interpreter. The interpreter is automatically
-enabled by default on all platforms that support it. This option
+Enable the Java interpreter.  The interpreter is automatically
+enabled by default on all platforms that support it.  This option
 is really only useful if you want to disable the interpreter
 (using @option{--disable-interpreter}).
 
 @item --disable-java-net
-Disable java.net. This disables the native part of java.net only,
+Disable java.net.  This disables the native part of java.net only,
 using non-functional stubs for native method implementations.
 
 @item --disable-jvmpi
@@ -1271,7 +1411,7 @@ Disable JVMPI support.
 Enable runtime eCos target support.
 
 @item --without-libffi
-Don't use @samp{libffi}. This will disable the interpreter and JNI
+Don't use @samp{libffi}.  This will disable the interpreter and JNI
 support as well, as these require @samp{libffi} to work.
 
 @item --enable-libgcj-debug
@@ -1280,8 +1420,8 @@ Enable runtime debugging code.
 @item --enable-libgcj-multifile
 If specified, causes all @file{.java} source files to be
 compiled into @file{.class} files in one invocation of
-@samp{gcj}. This can speed up build time, but is more
-resource-intensive. If this option is unspecified or
+@samp{gcj}.  This can speed up build time, but is more
+resource-intensive.  If this option is unspecified or
 disabled, @samp{gcj} is invoked once for each @file{.java}
 file to compile into a @file{.class} file.
 
@@ -1289,8 +1429,8 @@ file to compile into a @file{.class} file.
 Search for libiconv in @file{DIR/include} and @file{DIR/lib}.
 
 @item --enable-sjlj-exceptions
-Force use of @code{builtin_setjmp} for exceptions. @samp{configure}
-ordinarily picks the correct value based on the platform. Only use
+Force use of @code{builtin_setjmp} for exceptions.  @samp{configure}
+ordinarily picks the correct value based on the platform.  Only use
 this option if you are sure you need a different setting.
 
 @item --with-system-zlib
@@ -1298,25 +1438,25 @@ Use installed @samp{zlib} rather than that included with GCC@.
 
 @item --with-win32-nlsapi=ansi, unicows or unicode
 Indicates how MinGW @samp{libgcj} translates between UNICODE
-characters and the Win32 API.
+characters and the Win32 API@.
 @table @code
 @item ansi
 Use the single-byte @code{char} and the Win32 A functions natively,
-translating to and from UNICODE when using these functions. If
+translating to and from UNICODE when using these functions.  If
 unspecified, this is the default.
 
 @item unicows
-Use the @code{WCHAR} and Win32 W functions natively. Adds
+Use the @code{WCHAR} and Win32 W functions natively.  Adds
 @code{-lunicows} to @file{libgcj.spec} to link with @samp{libunicows}.
 @file{unicows.dll} needs to be deployed on Microsoft Windows 9X machines
-running built executables. @file{libunicows.a}, an open-source
+running built executables.  @file{libunicows.a}, an open-source
 import library around Microsoft's @code{unicows.dll}, is obtained from
 @uref{http://libunicows.sourceforge.net/}, which also gives details
 on getting @file{unicows.dll} from Microsoft.
 
 @item unicode
-Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not}
-add @code{-lunicows} to @file{libgcj.spec}. The built executables will
+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
 @end table
@@ -1329,16 +1469,16 @@ Use the X Window System.
 
 @item --enable-java-awt=PEER(S)
 Specifies the AWT peer library or libraries to build alongside
-@samp{libgcj}. If this option is unspecified or disabled, AWT
-will be non-functional. Current valid values are @option{gtk} and
-@option{xlib}. Multiple libraries should be separated by a
-comma (i.e. @option{--enable-java-awt=gtk,xlib}).
+@samp{libgcj}.  If this option is unspecified or disabled, AWT
+will be non-functional.  Current valid values are @option{gtk} and
+@option{xlib}.  Multiple libraries should be separated by a
+comma (i.e.@: @option{--enable-java-awt=gtk,xlib}).
 
 @item --enable-gtk-cairo
-Build the cairo Graphics2D implementation on GTK.
+Build the cairo Graphics2D implementation on GTK@.
 
 @item --enable-java-gc=TYPE
-Choose garbage collector. Defaults to @option{boehm} if unspecified.
+Choose garbage collector.  Defaults to @option{boehm} if unspecified.
 
 @item --disable-gtktest
 Do not try to compile and run a test GTK+ program.
@@ -1416,28 +1556,28 @@ parser sources, releases contain the Bison-generated files and you do
 not need Bison installed to build them.
 
 When building from CVS or snapshots, or if you modify Texinfo
-documentation, you need version 4.2 or later of Texinfo installed if you
+documentation, you need version 4.4 or later of Texinfo installed if you
 want Info documentation to be regenerated.  Releases contain Info
 documentation pre-built for the unmodified documentation in the release.
 
 @section Building a native compiler
 
-For a native build issue the command @samp{make bootstrap}.  This
-will build the entire GCC system, which includes the following steps:
+For a native build, the command @samp{make} will trigger a 3-stage
+bootstrap of the compiler.  This will build the entire GCC system
+and ensure that it compiles itself correctly, by doing the
+following steps:
 
 @itemize @bullet
 @item
-Build host tools necessary to build the compiler such as texinfo, bison,
+Build tools necessary to build the compiler such as texinfo, bison,
 gperf.
 
 @item
-Build target tools for use by the compiler such as binutils (bfd,
-binutils, gas, gprof, ld, and opcodes)
-if they have been individually linked
-or moved into the top level GCC source tree before configuring.
-
-@item
-Perform a 3-stage bootstrap of the compiler.
+Perform a 3-stage bootstrap of the compiler.  This includes building
+three times the target tools for use by the compiler such as binutils
+(bfd, binutils, gas, gprof, ld, and opcodes) if they have been
+individually linked or moved into the top level GCC source tree before
+configuring.
 
 @item
 Perform a comparison test of the stage2 and stage3 compilers.
@@ -1448,8 +1588,8 @@ Build runtime libraries using the stage3 compiler from the previous step.
 @end itemize
 
 If you are short on disk space you might consider @samp{make
-bootstrap-lean} instead.  This is identical to @samp{make
-bootstrap} except that object files from the stage1 and
+bootstrap-lean} instead.  The sequence of compilation is the
+same described above, but object files from the stage1 and
 stage2 of the 3-stage bootstrap of the compiler are deleted as
 soon as they are no longer needed.
 
@@ -1466,7 +1606,7 @@ roughly 40% of disk space both for the bootstrap and the final installation.
 
 If you wish to use non-default GCC flags when compiling the stage2 and
 stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
-@samp{make bootstrap}.  Non-default optimization flags are less well
+@samp{make}.  Non-default optimization flags are less well
 tested here than the default of @samp{-g -O2}, but should still work.
 In a few cases, you may find that you need to specify special flags such
 as @option{-msoft-float} here to complete the bootstrap; or, if the
@@ -1475,17 +1615,17 @@ around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
 stage1 compiler that were miscompiled, or by using @samp{make
 bootstrap4} to increase the number of stages of bootstrap.
 
-Note that using non-standard @code{CFLAGS} can cause bootstrap to fail in
-@file{libiberty}, if these trigger a warning with the new compiler.  For
-example using @samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will
-cause bootstrap failure as @code{-mcpu=} is deprecated in 3.4.0 and above.
+Note that using non-standard @code{CFLAGS} can cause bootstrap to fail
+if these trigger a warning with the new compiler.  For example using
+@samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will cause bootstrap
+failure as @option{-mcpu=} is deprecated in 3.4.0 and above.
 
 
 If you used the flag @option{--enable-languages=@dots{}} to restrict
 the compilers to be built, only those you've actually enabled will be
 built.  This will of course only build those runtime libraries, for
 which the particular compiler has been built.  Please note,
-that re-defining @env{LANGUAGES} when calling @samp{make bootstrap}
+that re-defining @env{LANGUAGES} when calling @samp{make}
 @strong{does not} work anymore!
 
 If the comparison of stage2 and stage3 fails, this normally indicates
@@ -1495,6 +1635,15 @@ a few systems, meaningful comparison of object files is impossible; they
 always appear ``different''.  If you encounter this problem, you will
 need to disable comparison in the @file{Makefile}.)
 
+If you do not want to bootstrap your compiler, you can configure with
+@option{--disable-bootstrap}.  In particular cases, you may want to
+bootstrap your compiler even if the target system is not the same as
+the one you are building on: for example, you could build a
+@code{powerpc-unknown-linux-gnu} toolchain on a
+@code{powerpc64-unknown-linux-gnu} host.  In this case, pass
+@option{--enable-bootstrap} to the configure script.
+
+
 @section Building a cross compiler
 
 We recommend reading the
@@ -1579,21 +1728,25 @@ compilation options.  Check your target's definition of
 
 @section Building in parallel
 
-You can use @samp{make bootstrap MAKE="make -j 2" -j 2}, or just
-@samp{make -j 2 bootstrap} for GNU Make 3.79 and above, instead of
-@samp{make bootstrap} to build GCC in parallel.
-You can also specify a bigger number, and in most cases using a value
-greater than the number of processors in your machine will result in
-fewer and shorter I/O latency hits, thus improving overall throughput;
-this is especially true for slow drives and network filesystems.
+GNU Make 3.79 and above, which is necessary to build GCC, support
+building in parallel.  To activate this, you can use @samp{make -j 2}
+instead of @samp{make}.  You can also specify a bigger number, and 
+in most cases using a value greater than the number of processors in
+your machine will result in fewer and shorter I/O latency hits, thus
+improving overall throughput; this is especially true for slow drives
+and network filesystems.
 
 @section Building the Ada compiler
 
 In order to build GNAT, the Ada compiler, you need a working GNAT
-compiler (GNAT version 3.14 or later, or GCC version 3.1 or later),
-including GNAT tools such as @command{gnatmake} and @command{gnatlink},
-since the Ada front end is written in Ada (with some
-GNAT-specific extensions), and GNU make.
+compiler (GNAT version 3.14 or later, or GCC version 3.1 or later).
+This includes GNAT tools such as @command{gnatmake} and
+@command{gnatlink}, since the Ada front end is written in Ada and
+uses some GNAT-specific extensions.
+
+In order to build a cross compiler, it is suggested to install
+the new compiler as native first, and then use it to build the cross
+compiler.
 
 @command{configure} does not test whether the GNAT installation works
 and has a sufficiently recent version; if too old a GNAT version is
@@ -1605,7 +1758,7 @@ used to disable building the Ada front end.
 It is possible to use profile feedback to optimize the compiler itself.  This
 should result in a faster compiler binary.  Experiments done on x86 using gcc
 3.3 showed approximately 7 percent speedup on compiling C programs.  To
-bootstrap compiler with profile feedback, use @code{make profiledbootstrap}.
+bootstrap the compiler with profile feedback, use @code{make profiledbootstrap}.
 
 When @samp{make profiledbootstrap} is run, it will first build a @code{stage1}
 compiler.  This compiler is used to build a @code{stageprofile} compiler
@@ -1613,7 +1766,7 @@ instrumented to collect execution counts of instruction and branch
 probabilities.  Then runtime libraries are compiled with profile collected.
 Finally a @code{stagefeedback} compiler is built using the information collected.
 
-Unlike @samp{make bootstrap} several additional restrictions apply.  The
+Unlike standard bootstrap, several additional restrictions apply.  The
 compiler used to build @code{stage1} needs to support a 64-bit integral type.
 It is recommended to only use GCC for this.  Also parallel make is currently
 not supported since collisions in profile collecting may occur.
@@ -1649,7 +1802,7 @@ at @uref{http://gcc.gnu.org/buildstat.html}, although not everyone who
 reports a successful build runs the testsuites and submits the results.
 This step is optional and may require you to download additional software,
 but it can give you confidence in your new GCC installation or point out
-problems before you install and start using your new GCC.
+problems before you install and start using your new GCC@.
 
 First, you must have @uref{download.html,,downloaded the testsuites}.
 These are part of the full distribution, but if you downloaded the
@@ -1798,7 +1951,7 @@ testsuite at @file{libjava/testsuite/libjava.mauve/mauve}, or by
 specifying the location of that tree when invoking @samp{make}, as in
 @samp{make MAUVEDIR=~/mauve check}.
 
-@uref{http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html,,Jacks}
+@uref{http://sources.redhat.com/mauve/jacks.html,,Jacks}
 is a free testsuite that tests Java compiler front ends.  This suite
 can be run as part of libgcj testing by placing the Jacks tree within
 the libjava testsuite at @file{libjava/testsuite/libjava.jacks/jacks}.
@@ -1919,13 +2072,13 @@ it will not be created otherwise.  This is regarded as a feature,
 not as a bug, because it gives slightly more control to the packagers
 using the @code{DESTDIR} feature.
 
-If you built a released version of GCC using @samp{make bootstrap} then please
+If you are bootstrapping a released version of GCC then please
 quickly review the build status page for your release, available from
 @uref{http://gcc.gnu.org/buildstat.html}.
 If your system is not listed for the version of GCC that you built,
 send a note to
 @email{gcc@@gcc.gnu.org} indicating
-that you successfully built and installed GCC.
+that you successfully built and installed GCC@.
 Include the following information:
 
 @itemize @bullet
@@ -1985,7 +2138,7 @@ If you find a bug, please report it following the
 @uref{../bugs.html,,bug reporting guidelines}.
 
 If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
-dvi}.  You will need to have @command{texi2dvi} (version at least 4.2)
+dvi}.  You will need to have @command{texi2dvi} (version at least 4.4)
 and @TeX{} installed.  This creates a number of @file{.dvi} files in
 subdirectories of @file{@var{objdir}}; these may be converted for
 printing with programs such as @command{dvips}.  You can also
@@ -1993,6 +2146,10 @@ printing with programs such as @command{dvips}.  You can also
 Free Software Foundation}, though such manuals may not be for the most
 recent version of GCC@.
 
+If you would like to generate online HTML documentation, do @samp{cd
+@var{objdir}; make html} and HTML will be generated for the gcc manuals in
+@file{@var{objdir}/gcc/HTML}.
+
 @html
 <hr />
 <p>
@@ -2045,7 +2202,7 @@ Development Tools for the Renesas H8/300[HS] Series}.
 HP-UX:
 @itemize
 @item
-@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center};
+@uref{http://hpux.cs.utah.edu/,,HP-UX Porting Center};
 
 @item
 @uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
@@ -2060,9 +2217,6 @@ Development Tools for the Motorola 68HC11/68HC12}.
 OpenServer/Unixware}.
 
 @item
-Sinix/Reliant Unix---@uref{ftp://ftp.fujitsu-siemens.com/pub/pd/gnu/gcc/,,Siemens}.
-
-@item
 Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}.
 
 @item
@@ -2085,16 +2239,20 @@ IRIX 6.5,
 Digital UNIX 4.0D and 5.1,
 GNU/Linux (i386),
 HP-UX 10.20, 11.00, and 11.11, and
-Solaris/SPARC 2.5.1, 2.6, 2.7, 8, and 9,
+Solaris/SPARC 2.5.1, 2.6, 7, 8, and 9.
 
 @item
 @uref{http://www.openpkg.org/,,OpenPKG} offers binaries for quite a
 number of platforms.
+
+@item
+The @uref{http://gcc.gnu.org/wiki/GFortranBinaries,,GFortran Wiki} has
+links to gfortran binaries for several platforms.
 @end itemize
 
 In addition to those specific offerings, you can get a binary
 distribution CD-ROM from the
-@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}.
+@uref{http://www.gnu.org/order/order.html,,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
@@ -2131,59 +2289,61 @@ GNU Compiler Collection on your machine.
 @ifhtml
 @itemize
 @item
-@uref{#alpha*-*-*,,alpha*-*-*}
+@uref{#alpha-x-x,,alpha*-*-*}
 @item
-@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
+@uref{#alpha-dec-osf,,alpha*-dec-osf*}
 @item
-@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*}
+@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*}
 @item
-@uref{#arc-*-elf,,arc-*-elf}
+@uref{#arc-x-elf,,arc-*-elf}
 @item
-@uref{#arm-*-elf,,arm-*-elf}
-@uref{#arm-*-coff,,arm-*-coff}
-@uref{#arm-*-aout,,arm-*-aout}
+@uref{#arm-x-elf,,arm-*-elf}
+@uref{#arm-x-coff,,arm-*-coff}
+@uref{#arm-x-aout,,arm-*-aout}
 @item
-@uref{#xscale-*-*,,xscale-*-*}
+@uref{#xscale-x-x,,xscale-*-*}
 @item
 @uref{#avr,,avr}
 @item
+@uref{#bfin,,Blackfin}
+@item
 @uref{#c4x,,c4x}
 @item
 @uref{#dos,,DOS}
 @item
-@uref{#*-*-freebsd*,,*-*-freebsd*}
+@uref{#x-x-freebsd,,*-*-freebsd*}
 @item
 @uref{#h8300-hms,,h8300-hms}
 @item
-@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
+@uref{#hppa-hp-hpux,,hppa*-hp-hpux*}
 @item
-@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
+@uref{#hppa-hp-hpux10,,hppa*-hp-hpux10}
 @item
-@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
+@uref{#hppa-hp-hpux11,,hppa*-hp-hpux11}
 @item
-@uref{#*-*-linux-gnu,,*-*-linux-gnu}
+@uref{#x-x-linux-gnu,,*-*-linux-gnu}
 @item
-@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
+@uref{#ix86-x-linuxaout,,i?86-*-linux*aout}
 @item
-@uref{#ix86-*-linux*,,i?86-*-linux*}
+@uref{#ix86-x-linux,,i?86-*-linux*}
 @item
-@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
+@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*}
 @item
-@uref{#ix86-*-udk,,i?86-*-udk}
+@uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
 @item
-@uref{#ix86-*-esix,,i?86-*-esix}
+@uref{#ix86-x-udk,,i?86-*-udk}
 @item
-@uref{#ia64-*-linux,,ia64-*-linux}
+@uref{#ia64-x-linux,,ia64-*-linux}
 @item
-@uref{#ia64-*-hpux*,,ia64-*-hpux*}
+@uref{#ia64-x-hpux,,ia64-*-hpux*}
 @item
-@uref{#*-ibm-aix*,,*-ibm-aix*}
+@uref{#x-ibm-aix,,*-ibm-aix*}
 @item
-@uref{#ip2k-*-elf,,ip2k-*-elf}
+@uref{#iq2000-x-elf,,iq2000-*-elf}
 @item
-@uref{#iq2000-*-elf,,iq2000-*-elf}
+@uref{#m32c-x-elf,,m32c-*-elf}
 @item
-@uref{#m32r-*-elf,,m32r-*-elf}
+@uref{#m32r-x-elf,,m32r-*-elf}
 @item
 @uref{#m6811-elf,,m6811-elf}
 @item
@@ -2191,63 +2351,61 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#m68k-hp-hpux,,m68k-hp-hpux}
 @item
-@uref{#mips-*-*,,mips-*-*}
+@uref{#mips-x-x,,mips-*-*}
 @item
 @uref{#mips-sgi-irix5,,mips-sgi-irix5}
 @item
 @uref{#mips-sgi-irix6,,mips-sgi-irix6}
 @item
-@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4}
-@item
-@uref{#powerpc-*-darwin*,,powerpc-*-darwin*}
+@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4}
 @item
-@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
+@uref{#powerpc-x-darwin,,powerpc-*-darwin*}
 @item
-@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
+@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4}
 @item
-@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
+@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*}
 @item
-@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
+@uref{#powerpc-x-netbsd,,powerpc-*-netbsd*}
 @item
-@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
+@uref{#powerpc-x-eabisim,,powerpc-*-eabisim}
 @item
-@uref{#powerpc-*-eabi,,powerpc-*-eabi}
+@uref{#powerpc-x-eabi,,powerpc-*-eabi}
 @item
-@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
+@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
 @item
-@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
+@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim}
 @item
-@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
+@uref{#powerpcle-x-eabi,,powerpcle-*-eabi}
 @item
-@uref{#s390-*-linux*,,s390-*-linux*}
+@uref{#s390-x-linux,,s390-*-linux*}
 @item
-@uref{#s390x-*-linux*,,s390x-*-linux*}
+@uref{#s390x-x-linux,,s390x-*-linux*}
 @item
-@uref{#s390x-ibm-tpf*,,s390x-ibm-tpf*}
+@uref{#s390x-ibm-tpf,,s390x-ibm-tpf*}
 @item
-@uref{#*-*-solaris2*,,*-*-solaris2*}
+@uref{#x-x-solaris2,,*-*-solaris2*}
 @item
-@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
+@uref{#sparc-sun-solaris2,,sparc-sun-solaris2*}
 @item
-@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
+@uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7}
 @item
-@uref{#sparc-*-linux*,,sparc-*-linux*}
+@uref{#sparc-x-linux,,sparc-*-linux*}
 @item
-@uref{#sparc64-*-solaris2*,,sparc64-*-solaris2*}
+@uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
 @item
-@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
+@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
 @item
-@uref{#*-*-sysv*,,*-*-sysv*}
+@uref{#x-x-sysv,,*-*-sysv*}
 @item
 @uref{#vax-dec-ultrix,,vax-dec-ultrix}
 @item
-@uref{#*-*-vxworks*,,*-*-vxworks*}
+@uref{#x-x-vxworks,,*-*-vxworks*}
 @item
-@uref{#x86_64-*-*,,x86_64-*-*, amd64-*-*}
+@uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
 @item
-@uref{#xtensa-*-elf,,xtensa-*-elf}
+@uref{#xtensa-x-elf,,xtensa-*-elf}
 @item
-@uref{#xtensa-*-linux*,,xtensa-*-linux*}
+@uref{#xtensa-x-linux,,xtensa-*-linux*}
 @item
 @uref{#windows,,Microsoft Windows}
 @item
@@ -2258,7 +2416,7 @@ GNU Compiler Collection on your machine.
 
 @itemize
 @item
-@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.)
+@uref{#elf,,all ELF targets} (SVR4, Solaris 2, etc.)
 @end itemize
 @end ifhtml
 
@@ -2267,7 +2425,7 @@ GNU Compiler Collection on your machine.
 <!-- -------- host/target specific issues start here ---------------- -->
 <hr />
 @end html
-@heading @anchor{alpha*-*-*}alpha*-*-*
+@heading @anchor{alpha-x-x}alpha*-*-*
 
 This section contains general configuration information for all
 alpha-based platforms using ELF (in particular, ignore this section for
@@ -2282,7 +2440,7 @@ shared libraries.
 @html
 <hr />
 @end html
-@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf*
+@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
 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
@@ -2363,7 +2521,7 @@ provide a fix shortly.
 @html
 <hr />
 @end html
-@heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk*
+@heading @anchor{alphaev5-cray-unicosmk}alphaev5-cray-unicosmk*
 Cray T3E systems running Unicos/Mk.
 
 This port is incomplete and has many known bugs.  We hope to improve the
@@ -2372,17 +2530,16 @@ and it is not possible to build parallel applications.  Cray modules are not
 supported; in particular, Craylibs are assumed to be in
 @file{/opt/ctl/craylibs/craylibs}.
 
-You absolutely @strong{must} use GNU make on this platform.  Also, you
-need to tell GCC where to find the assembler and the linker.  The
-simplest way to do so is by providing @option{--with-as} and
-@option{--with-ld} to @file{configure}, e.g.@:
+On this platform, you need to tell GCC where to find the assembler and
+the linker.  The simplest way to do so is by providing @option{--with-as}
+and @option{--with-ld} to @file{configure}, e.g.@:
 
 @smallexample
     configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
       --enable-languages=c
 @end smallexample
 
-The comparison test during @samp{make bootstrap} fails on Unicos/Mk
+The comparison test at the end of the bootstrapping process fails on Unicos/Mk
 because the assembler inserts timestamps into object files.  You should
 be able to work around this by doing @samp{make all} after getting this
 failure.
@@ -2390,15 +2547,15 @@ failure.
 @html
 <hr />
 @end html
-@heading @anchor{arc-*-elf}arc-*-elf
+@heading @anchor{arc-x-elf}arc-*-elf
 Argonaut ARC processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{arm-*-elf}arm-*-elf
-@heading @anchor{xscale-*-*}xscale-*-*
+@heading @anchor{arm-x-elf}arm-*-elf
+@heading @anchor{xscale-x-x}xscale-*-*
 ARM-family processors.  Subtargets that use the ELF object format
 require GNU binutils 2.13 or newer.  Such subtargets include:
 @code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux},
@@ -2407,7 +2564,7 @@ require GNU binutils 2.13 or newer.  Such subtargets include:
 @html
 <hr />
 @end html
-@heading @anchor{arm-*-coff}arm-*-coff
+@heading @anchor{arm-x-coff}arm-*-coff
 ARM-family processors.  Note that there are two different varieties
 of PE format subtarget supported: @code{arm-wince-pe} and
 @code{arm-pe} as well as a standard COFF target @code{arm-*-coff}.
@@ -2415,7 +2572,7 @@ of PE format subtarget supported: @code{arm-wince-pe} and
 @html
 <hr />
 @end html
-@heading @anchor{arm-*-aout}arm-*-aout
+@heading @anchor{arm-x-aout}arm-*-aout
 ARM-family processors.  These targets support the AOUT file format:
 @code{arm-*-aout}, @code{arm-*-netbsd}.
 
@@ -2427,7 +2584,7 @@ ARM-family processors.  These targets support the AOUT file format:
 ATMEL AVR-family micro controllers.  These are used in embedded
 applications.  There are no standard Unix configurations.
 @ifnothtml
-@xref{AVR Options,, AVR Options, gcc, Using and Porting the GNU Compiler
+@xref{AVR Options,, AVR Options, gcc, Using the GNU Compiler
 Collection (GCC)},
 @end ifnothtml
 @ifhtml
@@ -2442,7 +2599,7 @@ can also be obtained from:
 
 @itemize @bullet
 @item
-@uref{http://www.openavr.org,,http://www.openavr.org}
+@uref{http://www.nongnu.org/avr/,,http://www.nongnu.org/avr/}
 @item
 @uref{http://home.overta.ru/users/denisc/,,http://home.overta.ru/users/denisc/}
 @item
@@ -2461,14 +2618,31 @@ indicates that you should upgrade to a newer version of the binutils.
 @html
 <hr />
 @end html
+@heading @anchor{bfin}Blackfin
+
+The Blackfin processor, an Analog Devices DSP.
+@ifnothtml
+@xref{Blackfin Options,, Blackfin Options, gcc, Using the GNU Compiler
+Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``Blackfin Options'' in the main manual
+@end ifhtml
+
+More information, and a version of binutils with support for this processor,
+is available at @uref{http://blackfin.uclinux.org}
+
+@html
+<hr />
+@end html
 @heading @anchor{c4x}c4x
 
 Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
 Processors.  These are used in embedded applications.  There are no
 standard Unix configurations.
 @ifnothtml
-@xref{TMS320C3x/C4x Options,, TMS320C3x/C4x Options, gcc, Using and
-Porting the GNU Compiler Collection (GCC)},
+@xref{TMS320C3x/C4x Options,, TMS320C3x/C4x Options, gcc, Using the
+GNU Compiler Collection (GCC)},
 @end ifnothtml
 @ifhtml
 See ``TMS320C3x/C4x Options'' in the main manual
@@ -2497,7 +2671,7 @@ CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip
 series.  These are used in embedded applications.
 
 @ifnothtml
-@xref{CRIS Options,, CRIS Options, gcc, Using and Porting the GNU Compiler
+@xref{CRIS Options,, CRIS Options, gcc, Using the GNU Compiler
 Collection (GCC)},
 @end ifnothtml
 @ifhtml
@@ -2529,6 +2703,32 @@ information about this platform is available at
 @html
 <hr />
 @end html
+@heading @anchor{crx}CRX
+
+The CRX CompactRISC architecture is a low-power 32-bit architecture with
+fast context switching and architectural extensibility features.
+
+@ifnothtml
+@xref{CRX Options,, CRX Options, gcc, Using and Porting the GNU Compiler
+Collection (GCC)},
+@end ifnothtml
+
+@ifhtml
+See ``CRX Options'' in the main manual for a list of CRX-specific options.
+@end ifhtml
+
+Use @samp{configure --target=crx-elf --enable-languages=c,c++} to configure
+GCC@ for building a CRX cross-compiler. The option @samp{--target=crx-elf}
+is also used to build the @samp{newlib} C library for CRX.
+
+It is also possible to build libstdc++-v3 for the CRX architecture. This
+needs to be done in a separate step with the following configure settings:
+@samp{gcc/libstdc++-v3/configure --host=crx-elf --with-newlib
+--enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti'}
+
+@html
+<hr />
+@end html
 @heading @anchor{dos}DOS
 
 Please have a look at the @uref{binaries.html,,binaries page}.
@@ -2541,10 +2741,10 @@ and includes all the necessary compilation tools and libraries.
 @html
 <hr />
 @end html
-@heading @anchor{*-*-freebsd*}*-*-freebsd*
+@heading @anchor{x-x-freebsd}*-*-freebsd*
 
 The version of binutils installed in @file{/usr/bin} probably works with
-this release of GCC.  However, on FreeBSD 4, bootstrapping against the
+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.
 
@@ -2564,7 +2764,7 @@ FreeBSD/alpha since its inception.  You may use @option{-gstabs} instead
 of @option{-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
+of the configuration used in the stock FreeBSD configuration of GCC@.  In
 particular, @option{--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
@@ -2602,21 +2802,20 @@ longer a multiple of 2 bytes.
 @html
 <hr />
 @end html
-@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
+@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux*
 Support for HP-UX version 9 and older was discontinued in GCC 3.4.
 
-We @emph{highly} recommend using gas/binutils on all hppa platforms;
-you may encounter a variety of problems when using the HP assembler.
+We require using gas/binutils on all hppa platforms;
+you may encounter a variety of problems if you try to use the HP assembler.
 
 Specifically, @option{-g} does not work on HP-UX (since that system
 uses a peculiar debugging format which GCC does not know about), unless
-you use GAS and GDB.  It may be helpful to configure GCC with the
+you use GAS and GDB@.  It may be helpful to configure GCC with the
 @uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
-@option{--with-as=@dots{}} options to ensure that GCC can find GAS.
+@option{--with-as=@dots{}} options to ensure that GCC can find GAS@.
 
 If you wish to use the pa-risc 2.0 architecture support with a 32-bit
-runtime, you must use either the HP assembler, or gas/binutils 2.11
-or newer.
+runtime, you must use gas/binutils 2.11 or newer.
 
 There are two default scheduling models for instructions.  These are
 PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
@@ -2630,7 +2829,7 @@ configuring if you want a model other than PROCESSOR_8000.  The macro
 TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
 default scheduling model is desired.
 
-As of GCC 3.5, GCC uses the UNIX 95 namespace for HP-UX 10.10
+As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
 This namespace change might cause problems when bootstrapping with
 an earlier version of GCC or the HP compiler as essentially the same
@@ -2640,12 +2839,23 @@ or @samp{98}.  Another way is to add an appropriate set of predefines
 to @env{CC}.  The description for the @option{munix=} option contains
 a list of the predefines used with each standard.
 
+As of GCC 4.1, @env{DWARF2} exception handling is available on HP-UX. 
+It is now the default.  This exposed a bug in the handling of data
+relocations in the GAS assembler.  The handling of 64-bit data relocations
+was seriously broken, affecting debugging and exception support on all
+@samp{hppa64-*-*} targets.  Under some circumstances, 32-bit data relocations
+could also be handled incorrectly.  This problem is fixed in GAS version
+2.16.91 20051125.
+
+GCC versions prior to 4.1 incorrectly passed and returned complex
+values.  They are now passed in the same manner as aggregates.
+
 More specific information to @samp{hppa*-hp-hpux*} targets follows.
 
 @html
 <hr />
 @end html
-@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10
+@heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10
 
 For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
 @code{PHCO_19798} from HP@.  HP has two sites which provide patches free of
@@ -2667,14 +2877,14 @@ and Latin-America.
 
 The HP assembler on these systems has some problems.  Most notably the
 assembler inserts timestamps into each object file it creates, causing
-the 3-stage comparison test to fail during a @samp{make bootstrap}.
-You should be able to continue by saying @samp{make all} after getting
-the failure from @samp{make bootstrap}.
+the 3-stage comparison test to fail during a bootstrap.
+You should be able to continue by saying @samp{make all-host all-target}
+after getting the failure from @samp{make}.
 
-GCC 3.5 requires CVS binutils as of April 28, 2004 or later.  Earlier
+GCC 4.0 requires CVS binutils as of April 28, 2004 or later.  Earlier
 versions require binutils 2.8 or later.
 
-The C++ ABI has changed incompatibly in GCC 3.5.  COMDAT subspaces are
+The C++ ABI has changed incompatibly in GCC 4.0.  COMDAT subspaces are
 used for one-only code and data.  This resolves many of the previous
 problems in using C++ on this target.  However, the ABI is not compatible
 with the one implemented under HP-UX 11 using secondary definitions.
@@ -2682,14 +2892,14 @@ with the one implemented under HP-UX 11 using secondary definitions.
 @html
 <hr />
 @end html
-@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11
+@heading @anchor{hppa-hp-hpux11}hppa*-hp-hpux11
 
 GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
 be used to compile GCC 3.0 and up.
 
 Refer to @uref{binaries.html,,binaries} for information about obtaining
-precompiled GCC binaries for HP-UX.  Precompiled binaries must be obtained
-to build the Ada language as it can't be bootstrapped using C.  Ada is
+precompiled GCC binaries for HP-UX@.  Precompiled binaries must be obtained
+to build the Ada language as it can't be bootstrapped using C@.  Ada is
 only available for the 32-bit PA-RISC runtime.  The libffi and libjava
 haven't been ported to HP-UX and don't build.
 
@@ -2708,7 +2918,7 @@ unbundled compiler, or a binary distribution of GCC@.
 There are several possible approaches to building the distribution.
 Binutils can be built first using the HP tools.  Then, the GCC
 distribution can be built.  The second approach is to build GCC
-first using the HP tools, then build binutils, then rebuild GCC.
+first using the HP tools, then build binutils, then rebuild GCC@.
 There have been problems with various binary distributions, so it
 is best not to start from a binary distribution.
 
@@ -2728,7 +2938,7 @@ needed whenever @env{CC} is used.
 
 Specifically, options that determine the runtime architecture must be
 in @env{CC} to correctly select the target for the build.  It is also
-convenient to place many other compiler options in @env{CC}.  For example, 
+convenient to place many other compiler options in @env{CC}.  For example,
 @env{CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"}
 can be used to bootstrap the GCC 3.3 branch with the HP compiler in
 64-bit K&R/bundled mode.  The @option{+DA2.0W} option will result in
@@ -2744,10 +2954,10 @@ search for ld.  The two linkers supported on this target require different
 commands.  The default linker is determined during configuration.  As a
 result, it's not possible to switch linkers in the middle of a GCC build.
 This has been been reported to sometimes occur in unified builds of
-binutils and GCC.
+binutils and GCC@.
 
 GCC 3.0 through 3.2 require binutils 2.11 or above.  GCC 3.3 through
-GCC 3.5 require binutils 2.14 or later.
+GCC 4.0 require binutils 2.14 or later.
 
 Although the HP assembler can be used for an initial build, it shouldn't
 be used with any languages other than C and perhaps Fortran due to its
@@ -2755,10 +2965,10 @@ many limitations.  For example, it does not support weak symbols or alias
 definitions.  As a result, explicit template instantiations are required
 when using C++.  This makes it difficult if not impossible to build many
 C++ applications.  You can't generate debugging information when using
-the HP assembler.  Finally, @samp{make bootstrap} fails in the final
+the HP assembler.  Finally, bootstrapping fails in the final
 comparison of object modules due to the time stamps that it inserts into
 the modules.  The bootstrap can be continued from this point with
-@samp{make all}.
+@samp{make all-host all-target}.
 
 A recent linker patch must be installed for the correct operation of
 GCC 3.3 and later.  @code{PHSS_26559} and @code{PHSS_24304} are the
@@ -2814,7 +3024,7 @@ This port still is undergoing significant development.
 @html
 <hr />
 @end html
-@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
+@heading @anchor{x-x-linux-gnu}*-*-linux-gnu
 
 Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
 in glibc 2.2.5 and later.  More information is available in the
@@ -2823,14 +3033,14 @@ libstdc++-v3 documentation.
 @html
 <hr />
 @end html
-@heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout
+@heading @anchor{ix86-x-linuxaout}i?86-*-linux*aout
 Use this configuration to generate @file{a.out} binaries on Linux-based
 GNU systems.  This configuration is being superseded.
 
 @html
 <hr />
 @end html
-@heading @anchor{ix86-*-linux*}i?86-*-linux*
+@heading @anchor{ix86-x-linux}i?86-*-linux*
 
 As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
 See @uref{http://gcc.gnu.org/PR10877,,bug 10877} for more information.
@@ -2842,7 +3052,7 @@ found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
 @html
 <hr />
 @end html
-@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
+@heading @anchor{ix86-x-sco32v5}i?86-*-sco3.2v5*
 Use this for the SCO OpenServer Release 5 family of operating systems.
 
 Unlike earlier versions of GCC, the ability to generate COFF with this
@@ -2859,7 +3069,7 @@ you install Support Level Supplement OSS646B or later, and Support Level
 Supplement OSS631C or later.  If you are using release 5.0.7 of
 OpenServer, you must have at least the first maintenance pack installed
 (this includes the relevant portions of OSS646).  OSS646, also known as
-the "Execution Environment Update", provides updated link editors and
+the ``Execution Environment Update'', provides updated link editors and
 assemblers, as well as updated standard C and math libraries.  The C
 startup modules are also updated to support the System V gABI draft, and
 GCC relies on that behavior.  OSS631 provides a collection of commonly
@@ -2879,14 +3089,26 @@ use a modern version of GNU binutils.  Version 2.13.2.1 was used for all
 testing.  In general, only the @option{--with-gnu-as} option is tested.
 A modern bintuils (as well as a plethora of other development related
 GNU utilities) can be found in Support Level Supplement OSS658A, the
-"GNU Development Tools" package.  See the SCO web and ftp sites for details.
-That package also contains the currently "officially supported" version of
+``GNU Development Tools'' package.  See the SCO web and ftp sites for details.
+That package also contains the currently ``officially supported'' version of
 GCC, version 2.95.3.  It is useful for bootstrapping this version.
 
 @html
 <hr />
 @end html
-@heading @anchor{ix86-*-udk}i?86-*-udk
+@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}.
+
+@html
+<hr />
+@end html
+@heading @anchor{ix86-x-udk}i?86-*-udk
 
 This target emulates the SCO Universal Development Kit and requires that
 package be installed.  (If it is installed, you will have a
@@ -2911,7 +3133,7 @@ command like this:
 @emph{You should substitute @samp{i686} in the above command with the appropriate
 processor for your host.}
 
-After the usual @samp{make bootstrap} and
+After the usual @samp{make} and
 @samp{make install}, you can then access the UDK-targeted GCC
 tools by adding @command{udk-} before the commonly known name.  For
 example, to invoke the C compiler, you would use @command{udk-gcc}.
@@ -2922,12 +3144,13 @@ have installed.
 @html
 <hr />
 @end html
-@heading @anchor{ia64-*-linux}ia64-*-linux
+@heading @anchor{ia64-x-linux}ia64-*-linux
 IA-64 processor (also known as IPF, or Itanium Processor Family)
 running GNU/Linux.
 
-If you are using the optional libunwind library, then you must use
-libunwind 0.96 or later.
+If you are using the installed system libunwind library with
+@option{--with-system-libunwind}, then you must use libunwind 0.98 or
+later.
 
 None of the following versions of GCC has an ABI that is compatible
 with any of the other versions in this list, with the exception that
@@ -2941,24 +3164,27 @@ more major ABI changes are expected.
 @html
 <hr />
 @end html
-@heading @anchor{ia64-*-hpux*}ia64-*-hpux*
-Building GCC on this target requires the GNU Assembler. The bundled HP
-assembler will not work. To prevent GCC from using the wrong assembler,
+@heading @anchor{ia64-x-hpux}ia64-*-hpux*
+Building GCC on this target requires the GNU Assembler.  The bundled HP
+assembler will not work.  To prevent GCC from using the wrong assembler,
 the option @option{--with-gnu-as} may be necessary.
 
-The GCC libunwind library has not been ported to HPUX. This means that for
+The GCC libunwind library has not been ported to HPUX@.  This means that for
 GCC versions 3.2.3 and earlier, @option{--enable-libunwind-exceptions}
-is required to build GCC. For GCC 3.3 and later, this is the default.
+is required to build GCC@.  For GCC 3.3 and later, this is the default.
+For gcc 3.4.3 and later, @option{--enable-libunwind-exceptions} is
+removed and the system libunwind library will always be used.
 
 @html
 <hr />
 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
 @end html
-@heading @anchor{*-ibm-aix*}*-ibm-aix*
+@heading @anchor{x-ibm-aix}*-ibm-aix*
 Support for AIX version 3 and older was discontinued in GCC 3.4.
 
-AIX Make frequently has problems with GCC makefiles.  GNU Make 3.79.1 or
-newer is recommended to build on this platform.
+``out of memory'' bootstrap failures may indicate a problem with
+process resource limits (ulimit).  Hard limits are configured in the
+@file{/etc/security/limits} system configuration file.
 
 To speed up the configuration phases of bootstrapping and installing GCC,
 one may use GNU Bash instead of AIX @command{/bin/sh}, e.g.,
@@ -2968,8 +3194,8 @@ one may use GNU Bash instead of AIX @command{/bin/sh}, e.g.,
    % export CONFIG_SHELL
 @end smallexample
 
-and then proceed as described in @uref{build.html,,the build instructions},
-where we strongly recommend using GNU make and specifying an absolute path
+and then proceed as described in @uref{build.html,,the build
+instructions}, where we strongly recommend specifying an absolute path
 to invoke @var{srcdir}/configure.
 
 Errors involving @code{alloca} when building GCC generally are due
@@ -2984,10 +3210,10 @@ If this error occurs during stage2 or later, then the problem most likely
 is the version of Make (see above).
 
 The native @command{as} and @command{ld} are recommended for bootstrapping
-on AIX 4 and required for bootstrapping on AIX 5L.  The GNU Assembler
+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.
+Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC@.
 The native AIX tools do interoperate with GCC@.
 
 Building @file{libstdc++.a} requires a fix for an AIX Assembler bug
@@ -3079,24 +3305,21 @@ switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
 @html
 <hr />
 @end html
-@heading @anchor{ip2k-*-elf}ip2k-*-elf
-Ubicom IP2022 micro controller.
-This configuration is intended for embedded systems.
-There are no standard Unix configurations.
-
-Use @samp{configure --target=ip2k-elf --enable-languages=c} to configure GCC@.
+@heading @anchor{iq2000-x-elf}iq2000-*-elf
+Vitesse IQ2000 processors.  These are used in embedded
+applications.  There are no standard Unix configurations.
 
 @html
 <hr />
 @end html
-@heading @anchor{iq2000-*-elf}iq2000-*-elf
-Vitesse IQ2000 processors.  These are used in embedded
-applications.  There are no standard Unix configurations.
+@heading @anchor{m32c-x-elf}m32c-*-elf
+Renesas M32C processor.
+This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{m32r-*-elf}m32r-*-elf
+@heading @anchor{m32r-x-elf}m32r-*-elf
 Renesas M32R processor.
 This configuration is intended for embedded systems.
 
@@ -3170,7 +3393,7 @@ to look like:
 @html
 <hr />
 @end html
-@heading @anchor{mips-*-*}mips-*-*
+@heading @anchor{mips-x-x}mips-*-*
 If on a MIPS system you get an error message saying ``does not have gp
 sections for all it's [sic] sectons [sic]'', don't worry about it.  This
 happens whenever you use GAS with the MIPS linker, but there is not
@@ -3187,10 +3410,20 @@ configure for @samp{mipsel-elf} as a workaround.  The
 @samp{mips*-*-linux*} target continues to use the MIPS II routines.  More
 work on this is expected in future releases.
 
-Cross-compilers for the Mips as target using the Mips assembler
+MIPS systems check for division by zero (unless
+@option{-mno-check-zero-division} is passed to the compiler) by
+generating either a conditional trap or a break instruction.  Using
+trap results in smaller code, but is only supported on MIPS II and
+later.  Also, some versions of the Linux kernel have a bug that
+prevents trap from generating the proper signal (@code{SIGFPE}).  To enable
+the use of break, use the @option{--with-divide=breaks}
+@command{configure} option when configuring GCC@.  The default is to
+use traps on systems that support them.
+
+Cross-compilers for the MIPS as target using the MIPS assembler
 currently do not work, because the auxiliary programs
 @file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on
-anything but a Mips.  It does work to cross compile for a Mips
+anything but a MIPS.  It does work to cross compile for a MIPS
 if you use the GNU assembler and linker.
 
 @html
@@ -3213,6 +3446,16 @@ later, and use the @option{--with-gnu-ld} @command{configure} option
 when configuring GCC@.  You need to use GNU @command{ar} and @command{nm},
 also distributed with GNU binutils.
 
+Some users have reported that @command{/bin/sh} will hang during bootstrap.
+This problem can be avoided by running the commands:
+
+@smallexample
+   % CONFIG_SHELL=/bin/ksh
+   % export CONFIG_SHELL
+@end smallexample
+
+before starting the build.
+
 @html
 <hr />
 @end html
@@ -3296,7 +3539,7 @@ information about using GCC on IRIX platforms.
 @html
 <hr />
 @end html
-@heading @anchor{powerpc*-*-*}powerpc-*-*
+@heading @anchor{powerpc-x-x}powerpc-*-*
 
 You can specify a default version for the @option{-mcpu=@var{cpu_type}}
 switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
@@ -3304,16 +3547,16 @@ switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin*
+@heading @anchor{powerpc-x-darwin}powerpc-*-darwin*
 PowerPC running Darwin (Mac OS X kernel).
 
 Pre-installed versions of Mac OS X may not include any developer tools,
 meaning that you will not be able to build GCC from source.  Tool
 binaries are available at
-@uref{http://developer.apple.com/tools/compilers.html} (free
+@uref{http://developer.apple.com/darwin/projects/compiler/} (free
 registration required).
 
-This version of GCC requires at least cctools-528.
+This version of GCC requires at least cctools-590.7.
 
 The version of GCC shipped by Apple typically includes a number of
 extensions not available in a standard GCC release.  These extensions
@@ -3322,75 +3565,75 @@ are generally for backwards compatibility and best avoided.
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
+@heading @anchor{powerpc-x-elf}powerpc-*-elf, powerpc-*-sysv4
 PowerPC system in big endian mode, running System V.4.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
+@heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu*
 
 You will need
-@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.13.90.0.10}
+@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
 or newer for a working GCC@.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
+@heading @anchor{powerpc-x-netbsd}powerpc-*-netbsd*
 PowerPC system in big endian mode running NetBSD@.  To build the
-documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
+documentation you will need Texinfo version 4.4 (NetBSD 1.5.1 included
 Texinfo version 3.12).
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
+@heading @anchor{powerpc-x-eabisim}powerpc-*-eabisim
 Embedded PowerPC system in big endian mode for use in running under the
 PSIM simulator.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
+@heading @anchor{powerpc-x-eabi}powerpc-*-eabi
 Embedded PowerPC system in big endian mode.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
+@heading @anchor{powerpcle-x-elf}powerpcle-*-elf, powerpcle-*-sysv4
 PowerPC system in little endian mode, running System V.4.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
+@heading @anchor{powerpcle-x-eabisim}powerpcle-*-eabisim
 Embedded PowerPC system in little endian mode for use in running under
 the PSIM simulator.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
+@heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi
 Embedded PowerPC system in little endian mode.
 
 @html
 <hr />
 @end html
-@heading @anchor{s390-*-linux*}s390-*-linux*
+@heading @anchor{s390-x-linux}s390-*-linux*
 S/390 system running GNU/Linux for S/390@.
 
 @html
 <hr />
 @end html
-@heading @anchor{s390x-*-linux*}s390x-*-linux*
+@heading @anchor{s390x-x-linux}s390x-*-linux*
 zSeries system (64-bit) running GNU/Linux for zSeries@.
 
 @html
 <hr />
 @end html
-@heading @anchor{s390x-ibm-tpf*}s390x-ibm-tpf*
-zSeries system (64-bit) running TPF.  This platform is
+@heading @anchor{s390x-ibm-tpf}s390x-ibm-tpf*
+zSeries system (64-bit) running TPF@.  This platform is
 supported as cross-compilation target only.
 
 @html
@@ -3400,7 +3643,7 @@ supported as cross-compilation target only.
 @c with 2.0 until 2.6, 7, 8, etc.  Solaris 1 was a marketing name for
 @c SunOS 4 releases which we don't use to avoid confusion.  Solaris
 @c alone is too unspecific and must be avoided.
-@heading @anchor{*-*-solaris2*}*-*-solaris2*
+@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
@@ -3442,8 +3685,28 @@ 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.
 
 All releases of GNU binutils prior to 2.11.2 have known bugs on this
-platform.  We recommend the use of GNU binutils 2.11.2 or the vendor
-tools (Sun @command{as}, Sun @command{ld}).
+platform.  We recommend the use of GNU binutils 2.11.2 or later, or the
+vendor tools (Sun @command{as}, Sun @command{ld}).  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.
+
+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://sources.redhat.com/ml/binutils-cvs/2004-09/msg00036.html} to the
+release.
+
+We recommend using 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.
 
 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
@@ -3459,10 +3722,21 @@ There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
 108653-22 for Intel) that fix this bug.
 
+Sun bug 4927647 sometimes causes random spurious testsuite failures
+related to missing diagnostic output.  This bug doesn't affect GCC
+itself, rather it is a kernel bug triggered by the @command{expect}
+program which is used only by the GCC testsuite driver.  When the bug
+causes the @command{expect} program to miss anticipated output, extra
+testsuite failures appear.
+
+There are patches for Solaris 8 (117350-12 or newer for SPARC,
+117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
+SPARC, 117172-11 or newer for Intel) that address this problem.
+
 @html
 <hr />
 @end html
-@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
+@heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
 
 When GCC is configured to use binutils 2.11.2 or later the binaries
 produced are smaller than the ones produced using Sun's native tools;
@@ -3498,7 +3772,7 @@ GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of
 the GNU compiler (especially GCC 3.0.x versions), which lead to the
 miscompilation of the stage1 compiler and the subsequent failure of the
 bootstrap process.  A workaround is to use GCC 3.2.3 as an intermediary
-stage, i.e. to bootstrap that compiler with the base compiler and then
+stage, i.e.@: to bootstrap that compiler with the base compiler and then
 use it to bootstrap the final compiler.
 
 GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7)
@@ -3507,20 +3781,33 @@ 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
-32-bit code on Solaris 7 and later.  If you are using the Sun
-assembler, this change apparently runs afoul of Sun bug 4910101, for
-which (as of 2004-05-23) there is no fix.  A symptom of the problem is
-that you cannot compile C++ programs like @command{groff} 1.19.1
-without getting messages like @samp{ld: warning: relocation error:
-R_SPARC_UA32 @dots{} external symbolic relocation against
-non-allocatable section .debug_info; cannot be processed at runtime:
-relocation ignored}.  To work around this problem, compile with
-@option{-gstabs+} instead of plain @option{-g}.
+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 use DWARF-2).
+A symptom of the problem is that you cannot compile C++ programs like
+@command{groff} 1.19.1 without getting messages similar to the following:
+
+@smallexample
+ld: warning: relocation error: R_SPARC_UA32: @dots{}
+  external symbolic relocation against non-allocatable section
+  .debug_info cannot be processed at runtime: relocation ignored.
+@end smallexample
+
+To work around this problem, compile with @option{-gstabs+} instead of
+plain @option{-g}.
+
+When configuring the GNU Multiple Precision Library (GMP) on a Solaris 7
+or later system, the canonical target triplet must be specified as the
+@command{build} parameter on the configure line:
+
+@smallexample
+./configure --build=sparc-sun-solaris2.7 --prefix=xxx --enable-mpfr
+@end smallexample
 
 @html
 <hr />
 @end html
-@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
+@heading @anchor{sparc-sun-solaris27}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
@@ -3559,7 +3846,7 @@ 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
-libgcc. A typical error message is:
+libgcc.  A typical error message is:
 
 @smallexample
 ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
@@ -3568,10 +3855,21 @@ ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
 
 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:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_DISP32:
+  file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
+    symbol <unknown>: offset 0xfccd33ad is non-aligned
+@end smallexample
+
+This bug has been fixed in more recent revisions of the assembler.
+
 @html
 <hr />
 @end html
-@heading @anchor{sparc-*-linux*}sparc-*-linux*
+@heading @anchor{sparc-x-linux}sparc-*-linux*
 
 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
 or newer on this platform.  All earlier binutils and glibc
@@ -3581,7 +3879,7 @@ releases mishandled unaligned relocations on @code{sparc-*-*} targets.
 @html
 <hr />
 @end html
-@heading @anchor{sparc64-*-solaris2*}sparc64-*-solaris2*
+@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2*
 
 The following compiler flags must be specified in the configure
 step in order to bootstrap this target with the Sun compiler:
@@ -3596,14 +3894,14 @@ specifies the SPARC-V9 architecture to the Sun linker and assembler.
 @html
 <hr />
 @end html
-@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+@heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2*
 
 This is a synonym for sparc64-*-solaris2*.
 
 @html
 <hr />
 @end html
-@heading @anchor{#*-*-sysv*}*-*-sysv*
+@heading @anchor{x-x-sysv}*-*-sysv*
 On System V release 3, you may get this error message
 while linking:
 
@@ -3644,9 +3942,9 @@ in some cases (for example, when @code{alloca} is used).
 @html
 <hr />
 @end html
-@heading @anchor{*-*-vxworks*}*-*-vxworks*
+@heading @anchor{x-x-vxworks}*-*-vxworks*
 Support for VxWorks is in flux.  At present GCC supports @emph{only} the
-very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
+very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC@.
 We welcome patches for other architectures supported by VxWorks 5.5.
 Support for VxWorks AE would also be welcome; we believe this is merely
 a matter of writing an appropriate ``configlette'' (see below).  We are
@@ -3658,7 +3956,7 @@ VxWorks comes with an older version of GCC installed in
 Choose an installation @var{prefix} entirely outside @var{$WIND_BASE}.
 Before running @command{configure}, create the directories @file{@var{prefix}}
 and @file{@var{prefix}/bin}.  Link or copy the appropriate assembler,
-linker, etc. into @file{@var{prefix}/bin}, and set your @var{PATH} to
+linker, etc.@: into @file{@var{prefix}/bin}, and set your @var{PATH} to
 include that directory while running both @command{configure} and
 @command{make}.
 
@@ -3679,17 +3977,17 @@ VxWorks will incorporate this module.)
 @html
 <hr />
 @end html
-@heading @anchor{x86_64-*-*}x86_64-*-*, amd64-*-*
+@heading @anchor{x86-64-x-x}x86_64-*-*, amd64-*-*
 
 GCC supports the x86-64 architecture implemented by the AMD64 processor
-(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
+(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD@.
 On GNU/Linux the default is a bi-arch compiler which is able to generate
 both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch).
 
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-*-elf}xtensa-*-elf
+@heading @anchor{xtensa-x-elf}xtensa-*-elf
 
 This target is intended for embedded Xtensa systems using the
 @samp{newlib} C library.  It uses ELF but does not support shared
@@ -3707,7 +4005,7 @@ which you can use to replace the default header file.
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-*-linux*}xtensa-*-linux*
+@heading @anchor{xtensa-x-linux}xtensa-*-linux*
 
 This target is for Xtensa systems running GNU/Linux.  It supports ELF
 shared objects and the GNU C library (glibc).  It also generates
@@ -3721,14 +4019,11 @@ respects, this target is the same as the
 @end html
 @heading @anchor{windows}Microsoft Windows (32-bit)
 
-A port of GCC 2.95.2 and 3.x is included with the
+Ports of GCC are included with the
 @uref{http://www.cygwin.com/,,Cygwin environment}.
 
-Current (as of early 2001) snapshots of GCC will build under Cygwin
-without modification.
-
-GCC does not currently 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.
 
 @html
 <hr />
@@ -3739,10 +4034,6 @@ 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 @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}.
 
-An older copy of GCC 2.8.1 is included with the EMX tools available at
-@uref{ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/,,
-ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}.
-
 @html
 <hr />
 @end html
@@ -3792,7 +4083,7 @@ current GCC) is to be found in the GCC texinfo manual.
 @html
 <hr />
 @end html
-@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.)
+@heading @anchor{elf}all ELF targets (SVR4, Solaris 2, etc.)
 
 C++ support is significantly better on ELF targets if you use the
 @uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of