OSDN Git Service

2008-12-17 Sebastian Pop <sebastian.pop@amd.com>
[pf3gnuchains/gcc-fork.git] / gcc / doc / install.texi
index 9400a7c..a218065 100644 (file)
@@ -7,6 +7,8 @@
 @c %**end of header
 @c @end ifnothtml
 
+@include gcc-common.texi
+
 @c Specify title for specific html page
 @ifset indexhtml
 @settitle Installing GCC
@@ -43,7 +45,7 @@
 @end ifset
 
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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
@@ -68,8 +70,9 @@
 
 @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, 2005, 2006 Free Software Foundation, Inc.
+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+2008 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
@@ -99,9 +102,8 @@ Free Documentation License}''.
 
 @c Part 3 Titlepage and Copyright
 @titlepage
-@sp 10
-@comment The title is printed in a large font.
-@center @titlefont{Installing GCC}
+@title Installing GCC
+@versionsubtitle
 
 @c The following two commands start the copyright page.
 @page
@@ -109,7 +111,7 @@ Free Documentation License}''.
 @insertcopying
 @end titlepage
 
-@c Part 4 Top node and Master Menu
+@c Part 4 Top node, Master Menu, and/or Table of Contents
 @ifinfo
 @node    Top, , , (dir)
 @comment node-name, next,          Previous, up
@@ -129,6 +131,10 @@ Free Documentation License}''.
 @end menu
 @end ifinfo
 
+@iftex
+@contents
+@end iftex
+
 @c Part 5 The Body of the Document
 @c ***Installing GCC**********************************************************
 @ifnothtml
@@ -268,6 +274,12 @@ environment to your ``good'' shell prior to running
 @command{zsh} is not a fully compliant POSIX shell and will not
 work when configuring GCC@.
 
+@item A POSIX or SVR4 awk
+
+Necessary for creating some of the generated source files for GCC@.
+If in doubt, use a recent GNU awk version, as some of the older ones
+are broken.  GNU awk version 3.1.5 is known to work.
+
 @item GNU binutils
 
 Necessary in some circumstances, optional in others.  See the
@@ -280,7 +292,7 @@ requirements.
 Necessary to uncompress GCC @command{tar} files when source code is
 obtained via FTP mirror sites.
 
-@item GNU make version 3.79.1 (or later)
+@item GNU make version 3.80 (or later)
 
 You must have GNU make installed to build GCC@.
 
@@ -292,14 +304,16 @@ systems' @command{tar} programs will also work, only try GNU
 
 @item GNU Multiple Precision Library (GMP) version 4.1 (or later)
 
-Necessary to build GCC.  If you do not have it installed in your
+Necessary to build GCC@.  If you do not have it installed in your
 library search path, you will have to configure with the
-@option{--with-gmp} configure option.  See also
-@option{--with-gmp-lib} and @option{--with-gmp-include}.
+@option{--with-gmp} configure option.  See also @option{--with-gmp-lib}
+and @option{--with-gmp-include}.  Alternatively, if a GMP source
+distribution is found in a subdirectory of your GCC sources named
+@file{gmp}, it will be built together with GCC@.
 
-@item MPFR Library version 2.2.1 (or later)
+@item MPFR Library version 2.3.2 (or later)
 
-Necessary to build GCC.  It can be downloaded from
+Necessary to build GCC@.  It can be downloaded from
 @uref{http://www.mpfr.org/}.  The version of MPFR that is bundled with
 GMP 4.1.x contains numerous bugs.  Although GCC may appear to function
 with the buggy versions of MPFR, there are a few bugs that will not be
@@ -307,8 +321,30 @@ fixed when using this version.  It is strongly recommended to upgrade
 to the recommended version of MPFR.
 
 The @option{--with-mpfr} configure option should be used if your MPFR
-Library is not installed in your default library search path.  See
-also @option{--with-mpfr-lib} and @option{--with-mpfr-include}.
+Library is not installed in your default library search path.  See also
+@option{--with-mpfr-lib} and @option{--with-mpfr-include}.
+Alternatively, if a MPFR source distribution is found in a subdirectory
+of your GCC sources named @file{mpfr}, it will be built together with
+GCC@.
+
+@item Parma Polyhedra Library (PPL) version 0.10
+
+Necessary to build GCC with the Graphite loop optimizations.
+It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
+
+The @option{--with-ppl} configure option should be used if PPL is not
+installed in your default library search path.
+
+@item CLooG-PPL version 0.15
+
+Necessary to build GCC with the Graphite loop optimizations.  It can
+be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
+The code in @file{cloog-ppl-0.15.tar.gz} comes from a branch of CLooG
+available from @uref{http://repo.or.cz/w/cloog-ppl.git}.  CLooG-PPL
+should be configured with @option{--with-ppl}.
+
+The @option{--with-cloog} configure option should be used if CLooG is
+not installed in your default library search path.
 
 @item @command{jar}, or InfoZIP (@command{zip} and @command{unzip})
 
@@ -319,13 +355,11 @@ Necessary to build libgcj, the GCJ runtime.
 
 @heading Tools/packages necessary for modifying GCC
 @table @asis
-@item autoconf versions 2.13 and 2.59
+@item autoconf version 2.59
 @itemx GNU m4 version 1.4 (or later)
 
 Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@:
-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).
+to regenerate @file{configure} and @file{config.in} files.
 
 @item automake version 1.9.6
 
@@ -369,16 +403,6 @@ Necessary to run @samp{make check} for @file{fixinc}.
 Necessary to regenerate the top level @file{Makefile.in} file from
 @file{Makefile.tpl} and @file{Makefile.def}.
 
-@item GNU Bison version 1.28 (or later)
-Berkeley @command{yacc} (@command{byacc}) is also reported to work other
-than for GCJ.
-
-Necessary when modifying @file{*.y} files.
-
-Necessary to build GCC during development because the generated output
-files are not included in the SVN repository.  They are included in
-releases.
-
 @item Flex version 2.5.4 (or later)
 
 Necessary when modifying @file{*.l} files.
@@ -387,7 +411,7 @@ Necessary to build GCC during development because the generated output
 files are not included in the SVN repository.  They are included in
 releases.
 
-@item Texinfo version 4.4 (or later)
+@item Texinfo version 4.7 (or later)
 
 Necessary for running @command{makeinfo} when modifying @file{*.texi}
 files to test your changes.
@@ -442,6 +466,17 @@ the GCC-specific entry point.  You can download a suitable jar from
 @uref{ftp://sourceware.org/pub/java/}, or by running the script
 @command{contrib/download_ecj}.
 
+@item antlr.jar version 2.7.1 (or later)
+@itemx antlr binary
+
+If you wish to build the @command{gjdoc} binary in libjava, you will
+need to have a @file{antlr.jar} library available. The library is
+searched in system locations but can be configured with
+@option{--with-antlr-jar=} instead.  When configuring with
+@option{--enable-java-maintainer-mode}, you will need to have one of
+the executables named @command{cantlr}, @command{runantlr} or
+@command{antlr} in your path.
+
 @end table
 
 @html
@@ -496,6 +531,12 @@ components of the binutils you intend to build alongside the compiler
 (@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
 @file{opcodes}, @dots{}) to the directory containing the GCC sources.
 
+Likewise, the GMP and MPFR libraries can be automatically built together
+with GCC.  Unpack the GMP and/or MPFR source distributions in the
+directory containing the GCC sources and rename their directories to
+@file{gmp} and @file{mpfr}, respectively (or use symbolic links with the
+same name).
+
 @html
 <hr />
 <p>
@@ -578,6 +619,29 @@ To configure GCC:
    % @var{srcdir}/configure [@var{options}] [@var{target}]
 @end smallexample
 
+@heading Distributor options
+
+If you will be distributing binary versions of GCC, with modifications
+to the source code, you should use the options described in this
+section to make clear that your version contains modifications.
+
+@table @code
+@item --with-pkgversion=@var{version}
+Specify a string that identifies your package.  You may wish
+to include a build number or build date.  This version string will be
+included in the output of @command{gcc --version}.  This suffix does
+not replace the default version string, only the @samp{GCC} part.
+
+The default value is @samp{GCC}.
+
+@item --with-bugurl=@var{url}
+Specify the URL that users should visit if they wish to report a bug.
+You are of course welcome to forward bugs reported to you to the FSF,
+if you determine that they are not bugs in your modifications.
+
+The default value refers to the FSF's GCC bug tracker.
+
+@end table
 
 @heading Target specification
 @itemize @bullet
@@ -639,7 +703,7 @@ internal data files of GCC@.  The default is @file{@var{exec-prefix}/lib}.
 
 @item --libexecdir=@var{dirname}
 Specify the installation directory for internal executables of GCC@.
-  The default is @file{@var{exec-prefix}/libexec}.
+The default is @file{@var{exec-prefix}/libexec}.
 
 @item --with-slibdir=@var{dirname}
 Specify the installation directory for the shared libgcc library.  The
@@ -819,11 +883,6 @@ whether you use the GNU assembler.  On any other system,
 @itemize @bullet
 @item @samp{hppa1.0-@var{any}-@var{any}}
 @item @samp{hppa1.1-@var{any}-@var{any}}
-@item @samp{i386-@var{any}-sysv}
-@item @samp{m68k-bull-sysv}
-@item @samp{m68k-hp-hpux}
-@item @samp{m68000-hp-hpux}
-@item @samp{m68000-att-sysv}
 @item @samp{sparc-sun-solaris2.@var{any}}
 @item @samp{sparc64-@var{any}-solaris2.@var{any}}
 @end itemize
@@ -909,7 +968,7 @@ tools can not generate or interpret stabs.
 @item --disable-multilib
 Specify that multiple target
 libraries to support different target variants, calling
-conventions, etc should not be built.  The default is to build a
+conventions, etc.@: should not be built.  The default is to build a
 predefined set of them.
 
 Some targets provide finer-grained control over which multilibs are built
@@ -1003,14 +1062,23 @@ Specify that the target does not support TLS.
 This is an alias for @option{--enable-tls=no}.
 
 @item --with-cpu=@var{cpu}
+@itemx --with-cpu-32=@var{cpu}
+@itemx --with-cpu-64=@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.
 This option is only supported on some targets, including ARM, i386, M68k,
-PowerPC, and SPARC@.
+PowerPC, and SPARC@.  The @option{--with-cpu-32} and
+@option{--with-cpu-64} options specify separate default CPUs for
+32-bit and 64-bit modes; these options are only supported for i386 and
+x86-64.
 
 @item --with-schedule=@var{cpu}
 @itemx --with-arch=@var{cpu}
+@itemx --with-arch-32=@var{cpu}
+@itemx --with-arch-64=@var{cpu}
 @itemx --with-tune=@var{cpu}
+@itemx --with-tune-32=@var{cpu}
+@itemx --with-tune-64=@var{cpu}
 @itemx --with-abi=@var{abi}
 @itemx --with-fpu=@var{type}
 @itemx --with-float=@var{type}
@@ -1036,13 +1104,32 @@ systems that support conditional traps).
 Division by zero checks use the break instruction.
 @end table
 
+@c If you make --with-llsc the default for additional targets,
+@c update the --with-llsc description in the MIPS section below.
+
+@item --with-llsc
+On MIPS targets, make @option{-mllsc} the default when no
+@option{-mno-lsc} option is passed.  This is the default for
+Linux-based targets, as the kernel will emulate them if the ISA does
+not provide them.
+
+@item --without-llsc
+On MIPS targets, make @option{-mno-llsc} the default when no
+@option{-mllsc} option is passed.
+
+@item --with-mips-plt
+On MIPS targets, make use of copy relocations and PLTs.
+These features are extensions to the traditional
+SVR4-based MIPS ABIs and require support from GNU binutils
+and the runtime C library.
+
 @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
-@option{-fuse-cxa-exit} to be passed by default.
+@option{-fuse-cxa-atexit} to be passed by default.
 
 @item --enable-target-optspace
 Specify that target
@@ -1122,15 +1209,30 @@ grep language= */config-lang.in
 @end smallexample
 Currently, you can use any of the following:
 @code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, @code{java},
-@code{objc}, @code{obj-c++}, @code{treelang}.
+@code{objc}, @code{obj-c++}.
 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.
+Ada and Objective-C++ 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 --enable-stage1-languages=@var{lang1},@var{lang2},@dots{}
+Specify that a particular subset of compilers and their runtime
+libraries should be built with the system C compiler during stage 1 of
+the bootstrap process, rather than only in later stages with the
+bootstrapped C compiler.  The list of valid values is the same as for
+@option{--enable-languages}, and the option @code{all} will select all
+of the languages enabled by @option{--enable-languages}.  This option is
+primarily useful for GCC development; for instance, when a development
+version of the compiler cannot bootstrap due to compiler bugs, or when
+one is debugging front ends other than the C front end.  When this
+option is used, one can then build the target libraries for the
+specified languages with the stage-1 compiler by using @command{make
+stage1-bubble all-target}, or run the testsuite on the stage-1 compiler
+for the specified languages using @command{make stage1-start check-gcc}.
+
 @item --disable-libada
 Specify that the run-time libraries and tools used by GNAT should not
 be built.  This can be useful for debugging, or for compatibility with
@@ -1157,7 +1259,8 @@ 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 and x86-linux.
+Currently, this option only affects sparc-linux, powerpc-linux and
+x86-linux.
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
@@ -1169,6 +1272,16 @@ Using the GNU Compiler Collection (GCC)},
 See ``RS/6000 and PowerPC Options'' in the main manual
 @end ifhtml
 
+@item --enable-cld
+This option enables @option{-mcld} by default for 32-bit x86 targets.
+@ifnothtml
+@xref{i386 and x86-64 Options,, i386 and x86-64 Options, gcc,
+Using the GNU Compiler Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``i386 and x86-64 Options'' in the main manual
+@end ifhtml
+
 @item --enable-win32-registry
 @itemx --enable-win32-registry=@var{key}
 @itemx --disable-win32-registry
@@ -1217,12 +1330,12 @@ checks available are @samp{yes} (most common checks
 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{df}, @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.
+@samp{df}, @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
@@ -1284,11 +1397,26 @@ is removed entirely in the next major release, unless someone steps
 forward to maintain the port.
 
 @item --enable-decimal-float
+@itemx --enable-decimal-float=yes
+@itemx --enable-decimal-float=no
+@itemx --enable-decimal-float=bid
+@itemx --enable-decimal-float=dpd
 @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.
+Enable (or disable) support for the C decimal floating point extension
+that is in the IEEE 754-2008 standard.  This is enabled by default only
+on PowerPC, i386, and x86_64 GNU/Linux systems.  Other systems may also
+support it, but require the user to specifically enable it.  You can
+optionally control which decimal floating point format is used (either
+@samp{bid} or @samp{dpd}).  The @samp{bid} (binary integer decimal)
+format is default on i386 and x86_64 systems, and the @samp{dpd}
+(densely packed decimal) format is default on PowerPC systems.
+
+@item --enable-fixed-point
+@itemx --disable-fixed-point
+Enable (or disable) support for C fixed-point arithmetic.
+This option is enabled by default for some targets (such as MIPS) which
+have hardware-support for fixed-point operations.  On other targets, you
+may enable this option manually.
 
 @item --with-long-double-128
 Specify if @code{long double} type should be 128-bit by default on selected
@@ -1318,6 +1446,31 @@ GCC, you can explicitly specify the directory where they are installed
 shorthand assumptions are not correct, you can use the explicit
 include and lib options directly.
 
+@item --with-ppl=@var{pathname}
+@itemx --with-ppl-include=@var{pathname}
+@itemx --with-ppl-lib=@var{pathname}
+@itemx --with-cloog=@var{pathname}
+@itemx --with-cloog-include=@var{pathname}
+@itemx --with-cloog-lib=@var{pathname}
+If you do not have PPL (the Parma Polyhedra Library) and the CLooG
+libraries installed in a standard location and you want to build GCC,
+you can explicitly specify the directory where they are installed
+(@samp{--with-ppl=@var{pplinstalldir}},
+@samp{--with-cloog=@var{clooginstalldir}}). The
+@option{--with-ppl=@var{pplinstalldir}} option is shorthand for
+@option{--with-ppl-lib=@var{pplinstalldir}/lib} and
+@option{--with-ppl-include=@var{pplinstalldir}/include}.  Likewise the
+@option{--with-cloog=@var{clooginstalldir}} option is shorthand for
+@option{--with-cloog-lib=@var{clooginstalldir}/lib} and
+@option{--with-cloog-include=@var{clooginstalldir}/include}.  If these
+shorthand assumptions are not correct, you can use the explicit
+include and lib options directly.
+
+@item --with-debug-prefix-map=@var{map}
+Convert source directory names using @option{-fdebug-prefix-map} when
+building runtime libraries.  @samp{@var{map}} is a space-separated
+list of maps of the form @samp{@var{old}=@var{new}}.
+
 @end table
 
 @subheading Cross-Compiler-Specific Options
@@ -1479,6 +1632,24 @@ using non-functional stubs for native method implementations.
 @item --disable-jvmpi
 Disable JVMPI support.
 
+@item --disable-libgcj-bc
+Disable BC ABI compilation of certain parts of libgcj.  By default,
+some portions of libgcj are compiled with @option{-findirect-dispatch}
+and @option{-fno-indirect-classes}, allowing them to be overridden at
+run-time.
+
+If @option{--disable-libgcj-bc} is specified, libgcj is built without
+these options.  This allows the compile-time linker to resolve
+dependencies when statically linking to libgcj.  However it makes it
+impossible to override the affected portions of libgcj at run-time.
+
+@item --enable-reduced-reflection
+Build most of libgcj with @option{-freduced-reflection}.  This reduces
+the size of libgcj at the expense of not being able to do accurate
+reflection on the classes it contains.  This option is safe if you
+know that code using libgcj will never use reflection on the standard
+runtime classes in libgcj (including using serialization, RMI or CORBA).
+
 @item --with-ecos
 Enable runtime eCos target support.
 
@@ -1511,6 +1682,45 @@ 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@.
+
+@item --enable-java-home
+If enabled, this creates a JPackage compatible SDK environment during install.
+Note that if --enable-java-home is used, --with-arch-directory=ARCH must also
+be specified.
+
+@item --with-arch-directory=ARCH
+Specifies the name to use for the @file{jre/lib/ARCH} directory in the SDK 
+environment created when --enable-java-home is passed. Typical names for this 
+directory include i386, amd64, ia64, etc.
+
+@item --with-os-directory=DIR
+Specifies the OS directory for the SDK include directory. This is set to auto
+detect, and is typically 'linux'.
+
+@item --with-origin-name=NAME
+Specifies the JPackage origin name. This defaults to the 'gcj' in
+java-1.5.0-gcj.
+
+@item --with-arch-suffix=SUFFIX
+Specifies the suffix for the sdk directory. Defaults to the empty string. 
+Examples include '.x86_64' in 'java-1.5.0-gcj-1.5.0.0.x86_64'.
+
+@item --with-jvm-root-dir=DIR
+Specifies where to install the SDK. Default is $(prefix)/lib/jvm.
+
+@item --with-jvm-jar-dir=DIR
+Specifies where to install jars. Default is $(prefix)/lib/jvm-exports.
+
+@item --with-python-dir=DIR
+Specifies where to install the Python modules used for aot-compile. DIR should
+not include the prefix used in installation. For example, if the Python modules
+are to be installed in /usr/lib/python2.5/site-packages, then 
+--with-python-dir=/lib/python2.5/site-packages should be passed. If this is
+not specified, then the Python modules are installed in $(prefix)/share/python.
+
+@item --enable-aot-compile-rpm
+Adds aot-compile-rpm to the list of installed scripts.
+
 @table @code
 @item ansi
 Use the single-byte @code{char} and the Win32 A functions natively,
@@ -1621,13 +1831,16 @@ that type mismatches occur, this could be the cause.
 
 The solution is not to use such a directory for building GCC@.
 
-When building from SVN or snapshots, or if you modify parser sources,
-you need the Bison parser generator installed.  If you do not modify
-parser sources, releases contain the Bison-generated files and you do
-not need Bison installed to build them.
+Similarly, when building from SVN or snapshots, or if you modify
+@file{*.l} files, you need the Flex lexical analyzer generator
+installed.  If you do not modify @file{*.l} files, releases contain
+the Flex-generated files and you do not need Flex installed to build
+them.  There is still one Flex-based lexical analyzer (part of the
+build machinery, not of GCC itself) that is used even if you only
+build the C front end.
 
 When building from SVN or snapshots, or if you modify Texinfo
-documentation, you need version 4.4 or later of Texinfo installed if you
+documentation, you need version 4.7 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.
 
@@ -1668,33 +1881,35 @@ 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.
 
-If you want to save additional space during the bootstrap and in
-the final installation as well, you can build the compiler binaries
-without debugging information as in the following example.  This will save
-roughly 40% of disk space both for the bootstrap and the final installation.
-(Libraries will still contain debugging information.)
+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}.  For example, if you want to save additional space
+during the bootstrap and in the final installation as well, you can
+build the compiler binaries without debugging information as in the
+following example.  This will save roughly 40% of disk space both for
+the bootstrap and the final installation.  (Libraries will still contain
+debugging information.)
 
 @smallexample
-     make CFLAGS='-O' LIBCFLAGS='-g -O2' \
-       LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
+     make BOOT_CFLAGS='-O' bootstrap
 @end smallexample
 
-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}.  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
-native compiler miscompiles the stage1 compiler, you may need to work
-around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
-stage1 compiler that were miscompiled, or by using @samp{make
+You can place non-default optimization flags into @code{BOOT_CFLAGS}; they
+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 native compiler miscompiles the stage1 compiler, you may need
+to work 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
-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.
-
+@code{BOOT_CFLAGS} does not apply to bootstrapped target libraries.
+Since these are always compiled with the compiler currently being
+bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their
+compilation flags, as for non-bootstrapped target libraries.
+Again, if the native compiler miscompiles the stage1 compiler, you may
+need to work around this by avoiding non-working parts of the stage1
+compiler.  Use @code{STAGE1_LIBCFLAGS} to this end.
 
 If you used the flag @option{--enable-languages=@dots{}} to restrict
 the compilers to be built, only those you've actually enabled will be
@@ -1730,6 +1945,13 @@ native compiler.  You can then use the native GCC compiler to build the
 cross compiler.  The installed native compiler needs to be GCC version
 2.95 or later.
 
+If the cross compiler is to be built with support for the Java
+programming language and the ability to compile .java source files is
+desired, the installed native compiler used to build the cross
+compiler needs to be the same GCC version as the cross compiler.  In
+addition the cross compiler needs to be configured with
+@option{--with-ecj-jar=@dots{}}.
+
 Assuming you have already installed a native copy of GCC and configured
 your cross compiler, issue the command @command{make}, which performs the
 following steps:
@@ -1809,7 +2031,7 @@ 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).
+compiler (GCC version 3.4 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.
@@ -1823,6 +2045,12 @@ and has a sufficiently recent version; if too old a GNAT version is
 installed, the build will fail unless @option{--enable-languages} is
 used to disable building the Ada front end.
 
+@env{ADA_INCLUDE_PATH} and @env{ADA_OBJECT_PATH} environment variables
+must not be set when building the Ada compiler, the Ada tools, or the
+Ada runtime libraries. You can check that your build environment is clean
+by verifying that @samp{gnatls -v} lists only one explicit path in each
+section.
+
 @section Building with profile feedback
 
 It is possible to use profile feedback to optimize the compiler itself.  This
@@ -1909,6 +2137,9 @@ might emit some harmless messages resembling
 @samp{WARNING: Couldn't find the global config file.} or
 @samp{WARNING: Couldn't find tool init file} that can be ignored.
 
+If you are testing a cross-compiler, you may want to run the testsuite
+on a simulator as described at @uref{http://gcc.gnu.org/simtest-howto.html}.
+
 @section How can you run the testsuite on selected tests?
 
 In order to run sets of tests selectively, there are targets
@@ -1958,7 +2189,7 @@ You can run the testsuites multiple times using combinations of options
 with a syntax similar to the brace expansion of popular shells:
 
 @smallexample
-    @dots{}"--target_board=arm-sim/@{-mhard-float,-msoft-float@}@{-O1,-O2,-O3,@}"
+    @dots{}"--target_board=arm-sim\@{-mhard-float,-msoft-float\@}\@{-O1,-O2,-O3,\@}"
 @end smallexample
 
 (Note the empty option caused by the trailing comma in the final group.)
@@ -1980,7 +2211,7 @@ They can be combined as many times as you wish, in arbitrary ways.  This
 list:
 
 @smallexample
-    @dots{}"--target_board=unix/-Wextra@{-O3,-fno-strength-reduce@}@{-fomit-frame-pointer,@}"
+    @dots{}"--target_board=unix/-Wextra\@{-O3,-fno-strength\@}\@{-fomit-frame,\@}"
 @end smallexample
 
 will generate four combinations, all involving @samp{-Wextra}.
@@ -2206,7 +2437,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.4)
+dvi}.  You will need to have @command{texi2dvi} (version at least 4.7)
 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}.  Alternately, by using
@@ -2259,7 +2490,10 @@ AIX:
 @uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX};
 
 @item
-@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}.
+@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Software for IBM System p};
+
+@item
+@uref{http://www.perzl.org/aix,,AIX 5L and 6 Open Source Packages}.
 @end itemize
 
 @item
@@ -2305,12 +2539,12 @@ The @uref{http://www.mingw.org/,,MinGW} project.
 @item
 @uref{ftp://ftp.thewrittenword.com/packages/by-name/,,The
 Written Word} offers binaries for
-AIX 4.3.2.
+AIX 4.3.3, 5.1 and 5.2,
 IRIX 6.5,
-Digital UNIX 4.0D and 5.1,
+Tru64 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, 7, 8, and 9.
+Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10.
 
 @item
 @uref{http://www.openpkg.org/,,OpenPKG} offers binaries for quite a
@@ -2369,22 +2603,16 @@ information are.
 @item
 @uref{#alpha-dec-osf,,alpha*-dec-osf*}
 @item
-@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*}
-@item
 @uref{#arc-x-elf,,arc-*-elf}
 @item
 @uref{#arm-x-elf,,arm-*-elf}
 @uref{#arm-x-coff,,arm-*-coff}
 @uref{#arm-x-aout,,arm-*-aout}
 @item
-@uref{#xscale-x-x,,xscale-*-*}
-@item
 @uref{#avr,,avr}
 @item
 @uref{#bfin,,Blackfin}
 @item
-@uref{#c4x,,c4x}
-@item
 @uref{#dos,,DOS}
 @item
 @uref{#x-x-freebsd,,*-*-freebsd*}
@@ -2399,16 +2627,10 @@ information are.
 @item
 @uref{#x-x-linux-gnu,,*-*-linux-gnu}
 @item
-@uref{#ix86-x-linuxaout,,i?86-*-linux*aout}
-@item
 @uref{#ix86-x-linux,,i?86-*-linux*}
 @item
-@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*}
-@item
 @uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
 @item
-@uref{#ix86-x-udk,,i?86-*-udk}
-@item
 @uref{#ia64-x-linux,,ia64-*-linux}
 @item
 @uref{#ia64-x-hpux,,ia64-*-hpux*}
@@ -2427,7 +2649,7 @@ information are.
 @item
 @uref{#m68k-x-x,,m68k-*-*}
 @item
-@uref{#m68k-hp-hpux,,m68k-hp-hpux}
+@uref{#m68k-uclinux,,m68k-uclinux}
 @item
 @uref{#mips-x-x,,mips-*-*}
 @item
@@ -2435,11 +2657,11 @@ information are.
 @item
 @uref{#mips-sgi-irix6,,mips-sgi-irix6}
 @item
-@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4}
+@uref{#powerpc-x-x,,powerpc*-*-*}
 @item
 @uref{#powerpc-x-darwin,,powerpc-*-darwin*}
 @item
-@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4}
+@uref{#powerpc-x-elf,,powerpc-*-elf}
 @item
 @uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*}
 @item
@@ -2449,7 +2671,7 @@ information are.
 @item
 @uref{#powerpc-x-eabi,,powerpc-*-eabi}
 @item
-@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
+@uref{#powerpcle-x-elf,,powerpcle-*-elf}
 @item
 @uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim}
 @item
@@ -2473,20 +2695,22 @@ information are.
 @item
 @uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
 @item
-@uref{#x-x-sysv,,*-*-sysv*}
-@item
-@uref{#vax-dec-ultrix,,vax-dec-ultrix}
-@item
 @uref{#x-x-vxworks,,*-*-vxworks*}
 @item
 @uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
 @item
-@uref{#xtensa-x-elf,,xtensa-*-elf}
+@uref{#xtensa-x-elf,,xtensa*-*-elf}
 @item
-@uref{#xtensa-x-linux,,xtensa-*-linux*}
+@uref{#xtensa-x-linux,,xtensa*-*-linux*}
 @item
 @uref{#windows,,Microsoft Windows}
 @item
+@uref{#x-x-cygwin,,*-*-cygwin}
+@item
+@uref{#x-x-interix,,*-*-interix}
+@item
+@uref{#x-x-mingw,,*-*-mingw}
+@item
 @uref{#os2,,OS/2}
 @item
 @uref{#older,,Older systems}
@@ -2569,8 +2793,8 @@ cross-compilers on the Alpha for 32-bit machines has only been tested in
 a few cases and may not work properly.
 
 @samp{make compare} may fail on old versions of DEC Unix unless you add
-@option{-save-temps} to @code{CFLAGS}.  On these systems, the name of the
-assembler input file is stored in the object file, and that makes
+@option{-save-temps} to @code{BOOT_CFLAGS}.  On these systems, the name
+of the assembler input file is stored in the object file, and that makes
 comparison fail if it differs between the @code{stage1} and
 @code{stage2} compilations.  The option @option{-save-temps} forces a
 fixed name to be used for the assembler input file, instead of a
@@ -2599,32 +2823,6 @@ provide a fix shortly.
 @html
 <hr />
 @end html
-@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
-support for this target soon.  Currently, only the C front end is supported,
-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}.
-
-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 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.
-
-@html
-<hr />
-@end html
 @heading @anchor{arc-x-elf}arc-*-elf
 Argonaut ARC processor.
 This configuration is intended for embedded systems.
@@ -2633,11 +2831,10 @@ This configuration is intended for embedded systems.
 <hr />
 @end html
 @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},
-@code{arm-*-rtems} and @code{arm-*-kaos}.
+@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux}
+and @code{arm-*-rtems}.
 
 @html
 <hr />
@@ -2713,36 +2910,6 @@ 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 the
-GNU Compiler Collection (GCC)},
-@end ifnothtml
-@ifhtml
-See ``TMS320C3x/C4x Options'' in the main manual
-@end ifhtml
-for the list of supported MCU types.
-
-GCC can be configured as a cross compiler for both the C3x and C4x
-architectures on the same system.  Use @samp{configure --target=c4x
---enable-languages="c,c++"} to configure.
-
-
-Further installation notes and other useful information about C4x tools
-can also be obtained from:
-
-@itemize @bullet
-@item
-@uref{http://www.elec.canterbury.ac.nz/c4x/,,http://www.elec.canterbury.ac.nz/c4x/}
-@end itemize
-
-@html
-<hr />
-@end html
 @heading @anchor{cris}CRIS
 
 CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip
@@ -2759,9 +2926,6 @@ for a list of CRIS-specific options.
 
 There are a few different CRIS targets:
 @table @code
-@item cris-axis-aout
-Old target.  Includes a multilib for the @samp{elinux} a.out-based
-target.  No multilibs for newer architecture variants.
 @item cris-axis-elf
 Mainly for monolithic embedded systems.  Includes a multilib for the
 @samp{v10} core used in @samp{ETRAX 100 LX}.
@@ -2770,7 +2934,7 @@ A GNU/Linux port for the CRIS architecture, currently targeting
 @samp{ETRAX 100 LX} by default.
 @end table
 
-For @code{cris-axis-aout} and @code{cris-axis-elf} you need binutils 2.11
+For @code{cris-axis-elf} you need binutils 2.11
 or newer.  For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer.
 
 Pre-packaged tools can be obtained from
@@ -2917,7 +3081,7 @@ 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
+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
@@ -3031,8 +3195,8 @@ with the @option{--with-ld=@dots{}} option.  This overrides the standard
 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@.
+This has been reported to sometimes occur in unified builds of binutils
+and GCC@.
 
 GCC 3.0 through 3.2 require binutils 2.11 or above.  GCC 3.3 through
 GCC 4.0 require binutils 2.14 or later.
@@ -3104,20 +3268,13 @@ This port still is undergoing significant development.
 @end html
 @heading @anchor{x-x-linux-gnu}*-*-linux-gnu
 
-Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
+Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
 in glibc 2.2.5 and later.  More information is available in the
 libstdc++-v3 documentation.
 
 @html
 <hr />
 @end html
-@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-x-linux}i?86-*-linux*
 
 As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
@@ -3130,50 +3287,6 @@ found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
 @html
 <hr />
 @end html
-@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
-target is no longer provided.
-
-Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
-the system debugger to be used.  That support was too burdensome to
-maintain.  GCC now emits only DWARF 2 for this target.  This means you
-may use either the UDK debugger or GDB to debug programs built by this
-version of GCC@.
-
-GCC is now only supported on releases 5.0.4 and later, and requires that
-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
-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
-used open source libraries, some of which GCC depends on (such as GNU
-gettext and zlib).  SCO OpenServer Release 5.0.7 has all of this built
-in by default, but OSS631C and later also apply to that release.  Please
-visit
-@uref{ftp://ftp.sco.com/pub/openserver5,,ftp://ftp.sco.com/pub/openserver5}
-for the latest versions of these (and other potentially useful)
-supplements.
-
-Although there is support for using the native assembler, it is
-recommended that you configure GCC to use the GNU assembler.  You do
-this by using the flags
-@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}.  You should
-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
-GCC, version 2.95.3.  It is useful for bootstrapping this version.
-
-@html
-<hr />
-@end html
 @heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10
 Use this for Solaris 10 or later on x86 and x86-64 systems.  This
 configuration is supported by GCC 4.0 and later versions only.
@@ -3186,42 +3299,6 @@ It is recommended that you configure GCC to use the GNU assembler in
 @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
-@file{/udk/usr/ccs/bin/cc} file present.)  It's very much like the
-@samp{i?86-*-unixware7*} target
-but is meant to be used when hosting on a system where UDK isn't the
-default compiler such as OpenServer 5 or Unixware 2.  This target will
-generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
-with the same warnings and caveats as the SCO UDK@.
-
-This target is a little tricky to build because we have to distinguish
-it from the native tools (so it gets headers, startups, and libraries
-from the right place) while making the tools not think we're actually
-building a cross compiler.   The easiest way to do this is with a configure
-command like this:
-
-@smallexample
-    CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure \
-      --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
-@end smallexample
-
-@emph{You should substitute @samp{i686} in the above command with the appropriate
-processor for your host.}
-
-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}.
-They will coexist peacefully with any native-target GCC tools you may
-have installed.
-
-
-@html
-<hr />
-@end html
 @heading @anchor{ia64-x-linux}ia64-*-linux
 IA-64 processor (also known as IPF, or Itanium Processor Family)
 running GNU/Linux.
@@ -3424,60 +3501,38 @@ applications.  There are no standard Unix configurations.
 <hr />
 @end html
 @heading @anchor{m68k-x-x}m68k-*-*
-You can specify a default target using @option{--with-cpu=@var{target}}.
-This @var{target} can either be a @option{-mcpu} argument or one of the
-following values: @samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030},
+By default, @samp{m68k-*-aout}, @samp{m68k-*-coff*},
+@samp{m68k-*-elf*}, @samp{m68k-*-rtems},  @samp{m68k-*-uclinux} and
+@samp{m68k-*-linux}
+build libraries for both M680x0 and ColdFire processors.  If you only
+need the M680x0 libraries, you can omit the ColdFire ones by passing
+@option{--with-arch=m68k} to @command{configure}.  Alternatively, you
+can omit the M680x0 libraries by passing @option{--with-arch=cf} to
+@command{configure}.  These targets default to 5206 or 5475 code as
+appropriate for the target system when
+configured with @option{--with-arch=cf} and 68020 code otherwise.
+
+The @samp{m68k-*-netbsd} and
+@samp{m68k-*-openbsd} targets also support the @option{--with-arch}
+option.  They will generate ColdFire CFV4e code when configured with
+@option{--with-arch=cf} and 68020 code otherwise.
+
+You can override the default processors listed above by configuring
+with @option{--with-cpu=@var{target}}.  This @var{target} can either
+be a @option{-mcpu} argument or one of the following values:
+@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030},
 @samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}.
 
-@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
-HP 9000 series 300 or 400 running HP-UX@.  HP-UX version 8.0 has a bug in
-the assembler that prevents compilation of GCC@.  This
-bug manifests itself during the first stage of compilation, while
-building @file{libgcc2.a}:
-
-@smallexample
-_floatdisf
-cc1: warning: `-g' option not supported on this version of GCC
-cc1: warning: `-g1' option not supported on this version of GCC
-./xgcc: Internal compiler error: program as got fatal signal 11
-@end smallexample
-
-A patched version of the assembler is available as the file
-@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}.  If you
-have HP software support, the patch can also be obtained directly from
-HP, as described in the following note:
-
-@quotation
-This is the patched assembler, to patch SR#1653-010439, where the
-assembler aborts on floating point constants.
-
-The bug is not really in the assembler, but in the shared library
-version of the function ``cvtnum(3c)''.  The bug on ``cvtnum(3c)'' is
-SR#4701-078451.  Anyway, the attached assembler uses the archive
-library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
-@end quotation
-
-This patch is also known as PHCO_4484.
-
-In addition gdb does not understand that native HP-UX format, so
-you must use gas if you wish to use gdb.
-
-On HP-UX version 8.05, but not on 8.07 or more recent versions, the
-@command{fixproto} shell script triggers a bug in the system shell.  If you
-encounter this problem, upgrade your operating system or use BASH (the
-GNU shell) to run @command{fixproto}.  This bug will cause the fixproto
-program to report an error of the form:
-
-@smallexample
-./fixproto: sh internal 1K buffer overflow
-@end smallexample
-
-To fix this, you can also change the first line of the fixproto script
-to look like:
-
-@smallexample
-#!/bin/ksh
-@end smallexample
+@html
+<hr />
+@end html
+@heading @anchor{m68k-x-uclinux}m68k-*-uclinux
+GCC 4.3 changed the uClinux configuration so that it uses the
+@samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI.
+It also added improved support for C++ and flat shared libraries,
+both of which were ABI changes.  However, you can still use the
+original ABI by configuring for @samp{m68k-uclinuxoldabi} or
+@samp{m68k-@var{vendor}-uclinuxoldabi}.
 
 @html
 <hr />
@@ -3499,6 +3554,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.
 
+@c If you make --with-llsc the default for another target, please also
+@c update the description of the --with-llsc option.
+
+The built-in @code{__sync_*} functions are available on MIPS II and
+later systems and others that support the @samp{ll}, @samp{sc} and
+@samp{sync} instructions.  This can be overridden by passing
+@option{--with-llsc} or @option{--without-llsc} when configuring GCC.
+Since the Linux kernel emulates these instructions if they are
+missing, the default for @samp{mips*-*-linux*} targets is
+@option{--with-llsc}.  The @option{--with-llsc} and
+@option{--without-llsc} configure options may be overridden at compile
+time by passing the @option{-mllsc} or @option{-mno-llsc} options to
+the compiler.
+
 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
@@ -3512,13 +3581,16 @@ 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.
 
-The linker from GNU binutils versions prior to 2.17 has a bug which
-causes the runtime linker stubs in @file{libgcj.so} to be incorrectly
-generated.  If you want to use libgcj, either use binutils 2.17 or
-later to build it or export @samp{LD_BIND_NOW=1} in your runtime environment.
+The assembler from GNU binutils 2.17 and earlier has a bug in the way
+it sorts relocations for REL targets (o32, o64, EABI).  This can cause
+bad code to be generated for simple C++ programs.  Also the linker
+from GNU binutils versions prior to 2.17 has a bug which causes the
+runtime linker stubs in very large programs, like @file{libgcj.so}, to
+be incorrectly generated.  GNU Binutils 2.18 and later (and snapshots
+made after Nov. 9, 2006) should be free from both of these problems.
 
 @html
 <hr />
@@ -3617,8 +3689,7 @@ To enable debugging for the O32 ABI, you must use GNU @command{as} from
 GNU binutils 2.15 or later.  You may also use GNU @command{ld}, but
 this is not required and currently causes some problems with Ada.
 
-The @option{--enable-threads} option doesn't currently work, a patch is
-in preparation for a future release.  The @option{--enable-libgcj}
+The @option{--enable-libgcj}
 option is disabled by default: IRIX 6 uses a very low default limit
 (20480) for the command line length.  Although @command{libtool} contains a
 workaround for this problem, at least the N64 @samp{libgcj} is known not
@@ -3643,6 +3714,10 @@ information about using GCC on IRIX platforms.
 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}}.
 
+You will need
+@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
+or newer for a working GCC@.
+
 @html
 <hr />
 @end html
@@ -3663,7 +3738,7 @@ on systems older than 10.3.9 (aka darwin7.9.0).
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-elf}powerpc-*-elf, powerpc-*-sysv4
+@heading @anchor{powerpc-x-elf}powerpc-*-elf
 PowerPC system in big endian mode, running System V.4.
 
 @html
@@ -3671,17 +3746,13 @@ PowerPC system in big endian mode, running System V.4.
 @end html
 @heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu*
 
-You will need
-@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
-or newer for a working GCC@.
+PowerPC system in big endian mode running Linux.
 
 @html
 <hr />
 @end html
 @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.4 (NetBSD 1.5.1 included
-Texinfo version 3.12).
+PowerPC system in big endian mode running NetBSD@.
 
 @html
 <hr />
@@ -3699,7 +3770,7 @@ Embedded PowerPC system in big endian mode.
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-x-elf}powerpcle-*-elf, powerpcle-*-sysv4
+@heading @anchor{powerpcle-x-elf}powerpcle-*-elf
 PowerPC system in little endian mode, running System V.4.
 
 @html
@@ -3781,11 +3852,10 @@ The build process works more smoothly with the legacy Sun tools so, if you
 have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
 @file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build.
 
-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 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,
+We recommend the use of GNU binutils 2.14 or later, or the vendor tools
+(Sun @command{as}, Sun @command{ld}).  Note that your mileage may vary
+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.
 
@@ -3796,26 +3866,25 @@ from the CVS repository or applying the patch
 @uref{http://sourceware.org/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
+We recommend the use of GNU binutils 2.16 or later in conjunction with GCC
+4.x, or the vendor tools (Sun @command{as}, Sun @command{ld}).  However,
+for Solaris 10 and above, an additional patch is required in order for the
+GNU linker to be able to cope with a new flavor of shared libraries.  You
 can obtain a working version by checking out the binutils-2_16-branch from
 the CVS repository or applying the patch
 @uref{http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html} to the
 release.
 
 Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
-newer: @command{g++} will complain that types are missing.  These headers assume
-that omitting the type means @code{int}; this assumption worked for C89 but
-is wrong for C++, and is now wrong for C99 also.
+newer: @command{g++} will complain that types are missing.  These headers
+assume that omitting the type means @code{int}; this assumption worked for
+C89 but is wrong for C++, and is now wrong for C99 also.
 
 @command{g++} accepts such (invalid) constructs with the option
-@option{-fpermissive}; it
-will assume that any missing type is @code{int} (as defined by C89).
+@option{-fpermissive}; it will assume that any missing type is @code{int}
+(as defined by C89).
 
-There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
-106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
+There are patches for Solaris 7 (108376-21 or newer for SPARC,
 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
 108653-22 for Intel) that fix this bug.
 
@@ -3835,23 +3904,11 @@ SPARC, 117172-11 or newer for Intel) that address this problem.
 @end html
 @heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
 
-When GCC is configured to use binutils 2.11.2 or later the binaries
+When GCC is configured to use binutils 2.14 or later the binaries
 produced are smaller than the ones produced using Sun's native tools;
 this difference is quite significant for binaries containing debugging
 information.
 
-Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
-A typical error message might look similar to the following:
-
-@smallexample
-/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
-  can't compute value of an expression involving an external symbol.
-@end smallexample
-
-This is Sun bug 4237974.  This is fixed with patch 108908-02 for Solaris
-2.6 and has been fixed in later (5.x) versions of the assembler,
-starting with Solaris 7.
-
 Starting with Solaris 7, the operating system is capable of executing
 64-bit SPARC V9 binaries.  GCC 3.1 and later properly supports
 this; the @option{-m64} option enables 64-bit code generation.
@@ -4010,47 +4067,6 @@ This is a synonym for sparc64-*-solaris2*.
 @html
 <hr />
 @end html
-@heading @anchor{x-x-sysv}*-*-sysv*
-On System V release 3, you may get this error message
-while linking:
-
-@smallexample
-ld fatal: failed to write symbol name @var{something}
- in strings table for file @var{whatever}
-@end smallexample
-
-This probably indicates that the disk is full or your ulimit won't allow
-the file to be as large as it needs to be.
-
-This problem can also result because the kernel parameter @code{MAXUMEM}
-is too small.  If so, you must regenerate the kernel and make the value
-much larger.  The default value is reported to be 1024; a value of 32768
-is said to work.  Smaller values may also work.
-
-On System V, if you get an error like this,
-
-@smallexample
-/usr/local/lib/bison.simple: In function `yyparse':
-/usr/local/lib/bison.simple:625: virtual memory exhausted
-@end smallexample
-
-@noindent
-that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
-
-On a System V release 4 system, make sure @file{/usr/bin} precedes
-@file{/usr/ucb} in @code{PATH}.  The @command{cc} command in
-@file{/usr/ucb} uses libraries which have bugs.
-
-@html
-<hr />
-@end html
-@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
-Don't try compiling with VAX C (@command{vcc}).  It produces incorrect code
-in some cases (for example, when @code{alloca} is used).
-
-@html
-<hr />
-@end html
 @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@.
@@ -4096,7 +4112,7 @@ both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch).
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-x-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
@@ -4114,19 +4130,76 @@ which you can use to replace the default header file.
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-x-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
 position-independent code (PIC) regardless of whether the
 @option{-fpic} or @option{-fPIC} options are used.  In other
 respects, this target is the same as the
-@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target.
+@uref{#xtensa*-*-elf,,@samp{xtensa*-*-elf}} target.
 
 @html
 <hr />
 @end html
-@heading @anchor{windows}Microsoft Windows (32-bit)
+@heading @anchor{windows}Microsoft Windows
+
+@subheading Intel 16-bit versions
+The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not 
+supported.
+
+However, the 32-bit port has limited support for Microsoft 
+Windows 3.11 in the Win32s environment, as a target only.  See below.
+
+@subheading Intel 32-bit versions
+
+The 32-bit versions of Windows, including Windows 95, Windows NT, Windows 
+XP, and Windows Vista, are supported by several different target 
+platforms.  These targets differ in which Windows subsystem they target 
+and which C libraries are used.
+
+@itemize
+@item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space 
+Linux API emulation layer in the Win32 subsystem.
+@item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem 
+provides native support for POSIX.
+@item MinGW @uref{#x-x-mingw,,*-*-mingw}: MinGW is a native GCC port for 
+the Win32 subsystem that provides a subset of POSIX.
+@item MKS i386-pc-mks: NuTCracker from MKS.  See 
+@uref{http://www.mkssoftware.com/} for more information.
+@end itemize
+
+@subheading Intel 64-bit versions
+
+GCC contains support for x86-64 using the mingw-w64
+runtime library, available from @uref{http://mingw-w64.sourceforge.net/}.
+This library should be used with the target triple x86_64-pc-mingw32.
+
+Presently Windows for Itanium is not supported.
+
+@subheading Windows CE
+
+Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi 
+SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
+
+@subheading Other Windows Platforms
+
+GCC no longer supports Windows NT on the Alpha or PowerPC.
+
+GCC no longer supports the Windows POSIX subsystem.  However, it does 
+support the Interix subsystem.  See above.
+
+Old target names including *-*-winnt and *-*-windowsnt are no longer used.
+
+PW32 (i386-pc-pw32) support was never completed, and the project seems to 
+be inactive.  See @uref{http://pw32.sourceforge.net/} for more information.
+
+UWIN support has been removed due to a lack of maintenance.
+
+@html
+<hr />
+@end html
+@heading @anchor{x-x-cygwin}*-*-cygwin
 
 Ports of GCC are included with the
 @uref{http://www.cygwin.com/,,Cygwin environment}.
@@ -4134,6 +4207,29 @@ Ports of GCC are included with the
 GCC will build under Cygwin without modification; it does not build
 with Microsoft's C++ compiler and there are no plans to make it do so.
 
+Cygwin can be compiled with i?86-pc-cygwin.
+
+@html
+<hr />
+@end html
+@heading @anchor{x-x-interix}*-*-interix
+
+The Interix target is used by OpenNT, Interix, Services For UNIX (SFU), 
+and Subsystem for UNIX-based Applications (SUA).  Applications compiled 
+with this target run in the Interix subsystem, which is separate from 
+the Win32 subsystem.  This target was last known to work in GCC 3.3.
+
+For more information, see @uref{http://www.interix.com/}.
+
+@html
+<hr />
+@end html
+@heading @anchor{x-x-mingw32}*-*-mingw32
+
+GCC will build with and support only MinGW runtime 3.12 and later.
+Earlier versions of headers are incompatible with the new default semantics
+of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes.
+
 @html
 <hr />
 @end html