re PR bootstrap/9330 ([alpha-osf]small alphaev56-dec-osf5.1 --enable-threads=posix...
[gcc.git] / gcc / doc / install.texi
index f5d1dca4e29bbc379879e9824d7746fdc49267d5..c1869453f07679e7ed98e7ff062bd7f49019477f 100644 (file)
@@ -14,6 +14,9 @@
 @ifset specifichtml
 @settitle Host/Target specific installation notes for GCC
 @end ifset
+@ifset prerequisiteshtml
+@settitle Prerequisites for GCC
+@end ifset
 @ifset downloadhtml
 @settitle Downloading GCC
 @end ifset
@@ -47,6 +50,7 @@
 @ifnothtml
 @set indexhtml
 @set specifichtml
+@set prerequisiteshtml
 @set downloadhtml
 @set configurehtml
 @set buildhtml
@@ -155,6 +159,7 @@ The installation procedure itself is broken into five steps.
 
 @ifinfo
 @menu
+* Prerequisites::
 * Downloading the source::
 * Configuration::
 * Building::
@@ -165,6 +170,8 @@ The installation procedure itself is broken into five steps.
 @ifhtml
 @enumerate
 @item
+@uref{prerequisites.html,,Prerequisites}
+@item
 @uref{download.html,,Downloading the source}
 @item
 @uref{configure.html,,Configuration}
@@ -201,10 +208,180 @@ not yet been merged into the main part of this manual.
 @end ifhtml
 @end ifset
 
+@c ***Prerequisites**************************************************
+@ifnothtml
+@comment node-name,     next,          previous, up
+@node    Prerequisites, Downloading the source, , Installing GCC
+@end ifnothtml
+@ifset prerequisiteshtml
+@ifnothtml
+@chapter Prerequisites
+@end ifnothtml
+@cindex Prerequisites
+
+GCC requires that various tools and packages be available for use in the
+build procedure.  Modifying GCC sources requires additional tools
+described below.
+
+@heading Tools/packages necessary for building GCC
+@table @asis
+@item ISO C90 compiler
+Necessary to bootstrap the GCC package, although versions of GCC prior
+to 3.4 also allow bootstrapping with a traditional (K&R) C compiler.
+
+To make all languages in a cross-compiler or other configuration where
+3-stage bootstrap is not performed, you need to start with an existing
+GCC binary (version 2.95 or later) because source code for language
+frontends other than C might use GCC extensions.
+
+@item GNAT
+
+In order to build the Ada compiler (GNAT) you must already have GNAT
+installed because portions of the Ada frontend are written in Ada (with
+GNAT extensions.)  Refer to the Ada installation instructions for more
+specific information.
+
+@item A ``working'' POSIX compatible shell, or GNU bash
+
+Necessary when running @command{configure} because some
+@command{/bin/sh} shells have bugs and may crash when configuring the
+target libraries.  In other cases, @command{/bin/sh} or even some
+@command{ksh} have disastrous corner-case performance problems.  This
+can cause target @command{configure} runs to literally take days to
+complete in some cases.
+
+So on some platforms @command{/bin/ksh} is sufficient, on others it
+isn't.  See the host/target specific instructions for your platform, or
+use @command{bash} to be sure.  Then set @env{CONFIG_SHELL} in your
+environment to your ``good'' shell prior to running
+@command{configure}/@command{make}.
+
+@item GNU binutils
+
+Necessary in some circumstances, optional in others.  See the
+host/target specific instructions for your platform for the exact
+requirements.
+
+@item gzip version 1.2.4 (or later) or
+@itemx bzip2 version 1.0.2 (or later)
+
+Necessary to uncompress GCC @command{tar} files when source code is
+obtained via FTP mirror sites.
+
+@item GNU tar version 1.12 (or later)
+
+Necessary (only on some platforms) to untar the source code.  Many
+systems' @command{tar} programs will also work, only try GNU
+@command{tar} if you have problems.
+
+@end table
+
+
+@heading Tools/packages necessary for modifying GCC
+@table @asis
+
+@item autoconf version 2.13 (NO earlier or later versions) and
+@itemx GNU m4 version 1.4 (or later)
+
+Necessary when modifying @file{configure.in}, @file{aclocal.m4}, etc.@:
+to regenerate @file{configure} and @file{config.in} files
+
+@item automake version ???
+
+Necessary when modifying a @file{Makefile.am} file to regenerate its
+associated @file{Makefile.in}
+
+@item gperf version 2.7.2 (or later)
+
+Necessary when modifying @command{gperf} input files, e.g.@:
+@file{gcc/cp/cfns.gperf} to regenerate its associated header file, e.g.@:
+@file{gcc/cp/cfns.h}.
+
+@item expect version ???
+@itemx tcl version ???
+@itemx dejagnu version ???
+
+Necessary to run the GCC testsuite.
+
+@item autogen version 5.5.4 (or later) and
+@itemx guile version 1.4.1 (or later)
+
+Necessary to regenerate @file{fixinc/fixincl.x} from
+@file{fixinc/inclhack.def} and @file{fixinc/*.tpl}.
+
+Necessary to run the @file{fixinc} @command{make check}.
+
+Necessary to regenerate the top level @file{Makefile.am} files 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 java.
+
+Necessary when modifying @file{*.y} files.
+
+Necessary to build GCC during development because the generated output
+files are not included in the CVS repository.  They are included in
+releases.
+
+@item Flex version 2.5.4 (or later)
+
+Necessary when modifying @file{*.l} files.
+
+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)
+
+Necessary for running @command{makeinfo} when modifying @file{*.texi}
+files to test your changes.
+
+Necessary to build GCC documentation during development because the
+generated output files are not included in the CVS repository.  They are
+included in releases.
+
+@item @TeX{} (any working version)
+
+Necessary for running @command{texi2dvi}, used when running
+@command{make dvi} to create DVI files.
+
+@item cvs version 1.10 (or later)
+@itemx ssh (any version)
+
+Necessary to access the CVS repository.  Public releases and weekly
+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 something with intl??? (pod2man???)
+Other stuff???
+
+@item GNU diffutils version 2.7 (or later)
+
+Necessary when creating changes to GCC source code to submit for review.
+
+@item patch version 2.5.4 (or later)
+
+Necessary when applying patches, created with @command{diff}, to one's
+own sources.
+
+@end table
+
+@html
+<hr />
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
 @c ***Downloading the source**************************************************
 @ifnothtml
 @comment node-name,     next,          previous, up
-@node    Downloading the source, Configuration, , Installing GCC
+@node    Downloading the source, Configuration, Prerequisites, Installing GCC
 @end ifnothtml
 @ifset downloadhtml
 @ifnothtml
@@ -281,7 +458,7 @@ file system, the shell's built-in @command{pwd} command will return
 temporary pathnames.  Using these can lead to various sorts of build
 problems.  To avoid this issue, set the @env{PWDCMD} environment
 variable to an automounter-aware @command{pwd} command, e.g.,
-@command{pawd} or @command{amq -w}, during the configuration and build
+@command{pawd} or @samp{amq -w}, during the configuration and build
 phases.
 
 First, we @strong{highly} recommend that GCC be built into a
@@ -346,7 +523,7 @@ implies that the host defaults to @var{target}.
 @heading Options specification
 
 Use @var{options} to override several configure time options for
-GCC@.  A list of supported @var{options} follows; @command{configure
+GCC@.  A list of supported @var{options} follows; @samp{configure
 --help} may list other options, but those not listed below may not
 work and should not normally be used.
 
@@ -394,8 +571,7 @@ data files referenced by GCC@.  The default is @file{@var{prefix}/share}.
 @item --mandir=@var{dirname}
 Specify the installation directory for manual pages.  The default is
 @file{@var{prefix}/man}.  (Note that the manual pages are only extracts from
-the full GCC manuals, which are provided in Texinfo format.  The
-@command{g77} manpage is unmaintained and may be out of date; the others
+the full GCC manuals, which are provided in Texinfo format.  The manpages
 are derived by an automatic conversion process from parts of the full
 manual.)
 
@@ -558,7 +734,7 @@ The following systems are the only ones where it makes a difference
 whether you use the GNU assembler.  On any other system,
 @option{--with-gnu-as} has no effect.
 
-@itemize bullet
+@itemize @bullet
 @item @samp{hppa1.0-@var{any}-@var{any}}
 @item @samp{hppa1.1-@var{any}-@var{any}}
 @item @samp{i386-@var{any}-sysv}
@@ -568,13 +744,15 @@ whether you use the GNU assembler.  On any other system,
 @item @samp{m68000-att-sysv}
 @item @samp{@var{any}-lynx-lynxos}
 @item @samp{mips-@var{any}}
+@item @samp{sparc-sun-solaris2.@var{any}}
+@item @samp{sparc64-@var{any}-solaris2.@var{any}}
 @end itemize
 
-On the systems listed above (except for the HP-PA, for ISC on the
-386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
+On the systems listed above (except for the HP-PA, the SPARC, for ISC on
+the 386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
 you should also use the GNU linker (and specify @option{--with-gnu-ld}).
 
-@item --with-as=@var{pathname}
+@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
@@ -599,12 +777,11 @@ 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}}
-but for linker.
-
+but for the linker.
 
 @item --with-ld=@var{pathname}
-Same as
-@option{--with-as}, but for the linker.
+Same as @uref{#with-as,,@option{--with-as}}
+but for the linker.
 
 @item --with-stabs
 Specify that stabs debugging
@@ -690,6 +867,12 @@ like C++ and Java.  The possibilities for @var{lib} are:
 AIX thread support.
 @item dce
 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
+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.
 @item mach
 Generic MACH thread support, known to work on NeXTSTEP@.  (Please note
 that the file needed to support this configuration, @file{gthr-mach.h}, is
@@ -715,12 +898,21 @@ Microsoft Win32 API thread support.
 @end table
 
 @item --with-cpu=@var{cpu}
-Specify which cpu variant the
-compiler should generate code for by default.  This is currently
-only supported on some ports, specifically arm, powerpc, and
-SPARC@.  If configure does not recognize the model name (e.g.@: arm700,
-603e, or ultrasparc) you provide, please check the
-@file{gcc/config.gcc} script for a complete list of supported models.
+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, PowerPC,
+and SPARC@.
+
+@item --with-schedule=@var{cpu}
+@itemx --with-arch=@var{cpu}
+@itemx --with-tune=@var{cpu}
+@itemx --with-abi=@var{abi}
+@itemx --with-float=@var{type}
+These configure options provide default values for the @option{-mschedule=},
+@option{-march=}, @option{-mtune=}, and @option{-mabi=} 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
@@ -845,10 +1037,12 @@ 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} and
-@samp{gcac}.  The
-default when @var{list} is not specified is @samp{misc,tree,gc,rtlflag}; the
-checks @samp{rtl} and @samp{gcac} are very expensive.
+@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://developer.kde.org/~sewardj/}.  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.
 
 @item --enable-coverage
 @item --enable-coverage=@var{level}
@@ -924,6 +1118,14 @@ 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.
+
+@item --without-headers
+Tells GCC not use any target headers from a libc when building a cross
+compiler.  When crossing to GNU/Linux, you need the headers so gcc
+can build the exception handling for libgcc.
+See @uref{http://www.objsw.com/CrossGCC/,,CrossGCC} for more information
+on this option.
+
 @item --with-libs
 @itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
 Deprecated in favor of @option{--with-sysroot}.
@@ -976,7 +1178,7 @@ Other broken versions may recompile parts of the compiler when
 installing the compiler.)
 
 Some commands executed when making the compiler may fail (return a
-nonzero status) and be ignored by @code{make}.  These failures, which
+nonzero status) and be ignored by @command{make}.  These failures, which
 are often due to files that were not found, are expected, and can safely
 be ignored.
 
@@ -1125,17 +1327,18 @@ Note that if an error occurs in any step the make process will exit.
 
 @section Building in parallel
 
-If you have a multiprocessor system 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 just @samp{make bootstrap}
-when building GCC@.  You can use a bigger number instead of two if
-you like.  In most cases, it won't help to use a number bigger than
-the number of processors in your machine.
+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.
 
 @section Building the Ada compiler
 
 In order to build GNAT, the Ada compiler, you need a working GNAT
-compiler (GNAT version 3.13 or later, or GCC version 3.1 or later),
+compiler (GNAT version 3.14 or later, or GCC version 3.1 or later),
 since the Ada front end is written in Ada (with some
 GNAT-specific extensions), and GNU make.
 
@@ -1187,6 +1390,24 @@ following commands (assuming @command{make} is GNU make):
 Currently, when compiling the Ada front end, you cannot use the parallel
 build feature described in the previous section.
 
+@section Building with profile feedback
+
+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}.
+
+When @samp{make profiledbootstrap} is run, it will first build a @code{stage1}
+compiler.  This compiler is used to build a @code{stageprofile} compiler
+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
+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.
+
 @html
 <hr />
 <p>
@@ -1226,8 +1447,8 @@ These are part of the full distribution, but if you downloaded the
 separately.
 
 Second, you must have the testing tools installed.  This includes
-@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu} 1.4.2 (or later),
-Tcl, and Expect; the DejaGnu site has links to these.
+@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu} 1.4.1 or 1.4.3
+and later, Tcl, and Expect; the DejaGnu site has links to these.
 
 If the directories where @command{runtest} and @command{expect} were
 installed are not in the @env{PATH}, you may need to set the following
@@ -1284,6 +1505,9 @@ To get a list of the possible @file{*.exp} files, pipe the
 output of @samp{make check} into a file and look at the
 @samp{Running @dots{}  .exp} lines.
 
+The Java runtime tests can be executed via @samp{make check}
+in the @file{@var{target}/libjava/testsuite} directory in
+the build tree.
 
 @section Additional testing for Java Class Libraries
 
@@ -1532,8 +1756,8 @@ AIX:
 DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}.
 
 @item
-Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
-Development Tools for the Hitachi H8/300[HS] Series}.
+Renesas H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
+Development Tools for the Renesas H8/300[HS] Series}.
 
 @item
 HP-UX:
@@ -1545,6 +1769,10 @@ HP-UX:
 @uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
 @end itemize
 
+@item
+Motorola 68HC11/68HC12---@uref{http://www.gnu-m68hc11.org,,GNU
+Development Tools for the Motorola 68HC11/68HC12}.
+
 @item
 @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
 OpenServer/Unixware}.
@@ -1568,10 +1796,14 @@ The @uref{http://www.mingw.org/,,MinGW} project.
 @end itemize
 
 @item
-@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/,,The
-Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
-IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.
-
+@uref{ftp://ftp.thewrittenword.com/packages/by-name/,,The
+Written Word} offers binaries for
+AIX 4.3.2.
+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,
 @end itemize
 
 In addition to those specific offerings, you can get a binary
@@ -1621,11 +1853,11 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#arc-*-elf,,arc-*-elf}
 @item
-@uref{#arm-*-aout,,arm-*-aout}
-@item
 @uref{#arm-*-elf,,arm-*-elf}
+@uref{#arm-*-coff,,arm-*-coff}
+@uref{#arm-*-aout,,arm-*-aout}
 @item
-@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu}
+@uref{#xscale-*-*,,xscale-*-*}
 @item
 @uref{#avr,,avr}
 @item
@@ -1641,8 +1873,6 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
 @item
-@uref{#hppa*-hp-hpux9,,hppa*-hp-hpux9}
-@item
 @uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
 @item
 @uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
@@ -1655,10 +1885,6 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#ix86-*-linux*,,i?86-*-linux*}
 @item
-@uref{#ix86-*-sco,,i?86-*-sco}
-@item
-@uref{#ix86-*-sco3.2v4,,i?86-*-sco3.2v4}
-@item
 @uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
 @item
 @uref{#ix86-*-udk,,i?86-*-udk}
@@ -1667,7 +1893,7 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#ia64-*-linux,,ia64-*-linux}
 @item
-@uref{#*-lynx-lynxos,,*-lynx-lynxos}
+@uref{#ia64-*-hpux*,,ia64-*-hpux*}
 @item
 @uref{#*-ibm-aix*,,*-ibm-aix*}
 @item
@@ -1675,24 +1901,12 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#m32r-*-elf,,m32r-*-elf}
 @item
-@uref{#m68000-hp-bsd,,m68000-hp-bsd}
-@item
 @uref{#m6811-elf,,m6811-elf}
 @item
 @uref{#m6812-elf,,m6812-elf}
 @item
-@uref{#m68k-att-sysv,,m68k-att-sysv}
-@item
-@uref{#m68k-crds-unos,,m68k-crds-unos}
-@item
 @uref{#m68k-hp-hpux,,m68k-hp-hpux}
 @item
-@uref{#m68k-ncr-*,,m68k-ncr-*}
-@item
-@uref{#m68k-sun,,m68k-sun}
-@item
-@uref{#m68k-sun-sunos4.1.1,,m68k-sun-sunos4.1.1}
-@item
 @uref{#mips-*-*,,mips-*-*}
 @item
 @uref{#mips-sgi-irix5,,mips-sgi-irix5}
@@ -1721,8 +1935,6 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
 @item
-@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
-@item
 @uref{#s390-*-linux*,,s390-*-linux*}
 @item
 @uref{#s390x-*-linux*,,s390x-*-linux*}
@@ -1733,13 +1945,9 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
 @item
-@uref{#sparc-sun-sunos4*,,sparc-sun-sunos4*}
-@item
-@uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1}
-@item
 @uref{#sparc-*-linux*,,sparc-*-linux*}
 @item
-@uref{#sparc64-*-*,,sparc64-*-*}
+@uref{#sparc64-*-solaris2*,,sparc64-*-solaris2*}
 @item
 @uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
 @item
@@ -1822,9 +2030,6 @@ As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld}
 are supported on Tru64 UNIX, so you must not configure GCC with
 @option{--with-gnu-as} or @option{--with-gnu-ld}.
 
-The @option{--enable-threads} options isn't supported yet.  A patch is
-in preparation for a future release.
-
 GCC writes a @samp{.verstamp} directive to the assembler output file
 unless it is built as a cross-compiler.  It gets the version to use from
 the system header file @file{/usr/include/stamp.h}.  If you install a
@@ -1839,7 +2044,7 @@ target in an integral value on the host cannot be performed.  Building
 cross-compilers on the Alpha for 32-bit machines has only been tested in
 a few cases and may not work properly.
 
-@code{make compare} may fail on old versions of DEC Unix unless you add
+@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
 comparison fail if it differs between the @code{stage1} and
@@ -1904,27 +2109,27 @@ This configuration is intended for embedded systems.
 @html
 <hr />
 @end html
-@heading @anchor{arm-*-aout}arm-*-aout
-Advanced RISC Machines ARM-family processors.  These are often used in
-embedded applications.  There are no standard Unix configurations.
-This configuration corresponds to the basic instruction sequences and will
-produce @file{a.out} format object modules.
-
-You may need to make a variant of the file @file{arm.h} for your particular
-configuration.
+@heading @anchor{arm-*-elf}arm-*-elf
+@heading @anchor{xscale-*-*}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}.
 
 @html
 <hr />
 @end html
-@heading @anchor{arm-*-elf}arm-*-elf
-This configuration is intended for embedded systems.
+@heading @anchor{arm-*-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}.
 
 @html
 <hr />
 @end html
-@heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu
-
-We require GNU binutils 2.10 or newer.
+@heading @anchor{arm-*-aout}arm-*-aout
+ARM-family processors.  These targets support the AOUT file format:
+@code{arm-*-aout}, @code{arm-*-netbsd}.
 
 @html
 <hr />
@@ -2060,7 +2265,7 @@ The version of binutils installed in @file{/usr/bin} is known to work unless
 otherwise specified in any per-architecture notes.  However, binutils
 2.12.1 or greater is known to improve overall testsuite results.
 
-FreeBSD 1 is no longer supported in GCC 3.2.
+FreeBSD 1 is no longer supported.
 
 For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
 configuration support and files as shipped with GCC 2.95 are still in
@@ -2078,22 +2283,19 @@ 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
-results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5-STABLE and 5-CURRENT@.
+results on FreeBSD 4.8-STABLE and 5-CURRENT@.  In the past, known to
+bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2,
+4.3, 4.4, 4.5-STABLE@.
 
 In principle, @option{--enable-threads} is now compatible with
 @option{--enable-libgcj} on FreeBSD@.  However, it has only been built
-and tested on @samp{i386-*-freebsd4.5} and @samp{alpha-*-freebsd5.0}.
+and tested on @samp{i386-*-freebsd[45]} and @samp{alpha-*-freebsd[45]}.
 The static
 library may be incorrectly built (symbols are missing at link time).
 There is a rare timing-based startup hang (probably involves an
 assumption about the thread library).  Multi-threaded boehm-gc (required for
 libjava) exposes severe threaded signal-handling bugs on FreeBSD before
-4.5-RELEASE.  The alpha port may not fully bootstrap without some manual
-intervention: @command{gcjh} will crash with a floating-point exception while
-generating @file{java/lang/Double.h} (just copy the version built on
-@samp{i386-*-freebsd*} and rerun the top-level @command{gmake} with no
-arguments and it
-should properly complete the bootstrap).  Other CPU architectures
+4.5-RELEASE@.  Other CPU architectures
 supported by FreeBSD will require additional configuration tuning in, at
 the very least, both boehm-gc and libffi.
 
@@ -2103,7 +2305,7 @@ Shared @file{libgcc_s.so} is now built and installed by default.
 <hr />
 @end html
 @heading @anchor{h8300-hms}h8300-hms
-Hitachi H8/300 series of processors.
+Renesas H8/300 series of processors.
 
 Please have a look at our @uref{binaries.html,,binaries page}.
 
@@ -2116,6 +2318,7 @@ longer a multiple of 2 bytes.
 <hr />
 @end html
 @heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
+HP-UX version 9 or older is no longer supported.
 
 We @emph{highly} recommend using gas/binutils 2.8 or newer on all hppa
 platforms; you may encounter a variety of problems when using the HP
@@ -2146,22 +2349,6 @@ default scheduling model is desired.
 
 More specific information to @samp{hppa*-hp-hpux*} targets follows.
 
-@html
-<hr />
-@end html
-@heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9
-
-The HP assembler has major problems on this platform.  We've tried to work
-around the worst of the problems.  However, those workarounds may be causing
-linker crashes in some circumstances; the workarounds also probably prevent
-shared libraries from working.  Use the GNU assembler to avoid these problems.
-
-
-The configuration scripts for GCC will also trigger a bug in the hpux9
-shell.  To avoid this problem set @env{CONFIG_SHELL} to @file{/bin/ksh}
-and @env{SHELL} to @file{/bin/ksh} in your environment.
-
-
 @html
 <hr />
 @end html
@@ -2174,23 +2361,22 @@ charge:
 @itemize @bullet
 @item
 @html
-<a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
+<a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and
 Latin-America</a>
 @end html
 @ifnothtml
-@uref{http://us-support.external.hp.com,,}US, Canada, Asia-Pacific, and
-Latin-America
+@uref{http://us.itrc.hp.com/service/home/home.do,,} US, Canada, Asia-Pacific,
+and Latin-America.
 @end ifnothtml
 @item
-@uref{http://europe-support.external.hp.com,,Europe}
+@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
 @end itemize
 
-The HP assembler on these systems is much better than the hpux9 assembler,
-but still 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 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}.
 
 
 @html
@@ -2208,6 +2394,13 @@ set your @env{PATH} or define @env{CC} so that configure finds an appropriate
 compiler for the initial bootstrap.  Different prefixes must be used if
 both ports are to be installed on the same system.
 
+It is best to explicitly configure the @samp{hppa64-hp-hpux11*} target
+with the @option{--with-ld=@dots{}} option.  We support both the HP
+and GNU linkers for this target.  The two linkers require different
+link commands.  Thus, it's not possible to switch linkers during a
+GCC build.  This has been been reported to occur in a unified build
+of binutils and GCC.
+
 GCC 2.95.x is not supported under HP-UX 11 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.
@@ -2241,10 +2434,29 @@ by the HP linker.  So, again a recent linker patch is recommended.
 The HP assembler has many limitations and is not recommended for either
 the 32 or 64-bit ports.  For example, it does not support weak symbols
 or alias definitions.  As a result, explicit template instantiations
-are required when using C++.  You also can't generate debugging information
-when using the HP assembler.  Either the HP or GNU linker can be used
-with the 64-bit port but it may be necessary to use the GNU linker
-when dwarf2 exception support is implemented.
+are required when using C++.  This will make it difficult if not
+impossible to build many C++ applications.  You also can't generate
+debugging information when using the HP assembler with GCC.
+
+There are a number of issues to consider in selecting which linker to
+use with the 64-bit port.  The  GNU 64-bit linker can only create dynamic
+binaries.  The @option{-static} option causes linking with archive
+libraries but doesn't produce a truly static binary.  Dynamic binaries
+still require final binding by the dynamic loader to resolve a set of
+dynamic-loader-defined symbols.  The default behavior of the HP linker
+is the same as the GNU linker.  However, it can generate true 64-bit
+static binaries using the @option{+compat} option.
+
+The HP 64-bit linker doesn't support linkonce semantics.  As a
+result, C++ programs have many more sections than they should.
+
+The GNU 64-bit linker has some issues with shared library support
+and exceptions.  As a result, we only support libgcc in archive
+format.  For similar reasons, dwarf2 unwind and exception support
+are disabled.  The GNU linker also has problems creating binaries
+with @option{-static}.  It doesn't provide stubs for internal
+calls to global functions in shared libraries, so these calls
+can't be overloaded.
 
 There are several possible approaches to building the distribution.
 Binutils can be built first using the HP tools.  Then, the GCC
@@ -2253,11 +2465,9 @@ 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.
 
-When starting with a HP compiler, it is preferable to use the ANSI
-compiler as the bundled compiler only supports traditional C.
-Bootstrapping with the bundled compiler is tested infrequently and
-problems often arise because of the subtle differences in semantics
-between traditional and ISO C.
+Starting with GCC 3.4 an ISO C compiler is required to bootstrap.
+The bundled compiler supports only traditional C; you will need
+either HP's unbundled compiler, or a binary distribution of GCC@.
 
 This port still is undergoing significant development.
 
@@ -2296,33 +2506,20 @@ glibc 2.2.4 whether patches for GCC 3.0 are needed.  You can use glibc
 @end html
 @heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout
 Use this configuration to generate @file{a.out} binaries on Linux-based
-GNU systems.  This configuration is being superseded.  You must use
-gas/binutils version 2.5.2 or later.
+GNU systems.  This configuration is being superseded.
 
 @html
 <hr />
 @end html
 @heading @anchor{ix86-*-linux*}i?86-*-linux*
 
-You will need binutils 2.9.1.0.15 or newer for exception handling to work.
+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.
 
 If you receive Signal 11 errors when building on GNU/Linux, then it is
 possible you have a hardware problem.  Further information on this can be
 found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
 
-@html
-<hr />
-@end html
-@heading @anchor{ix86-*-sco}i?86-*-sco
-Compilation with RCC is recommended.  Also, it may be a good idea to
-link with GNU malloc instead of the malloc that comes with the system.
-
-@html
-<hr />
-@end html
-@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4
-Use this configuration for SCO release 3.2 version 4.
-
 @html
 <hr />
 @end html
@@ -2338,65 +2535,34 @@ 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@.
 
-Use of the @option{-march=pentiumpro} flag can result in
-unrecognized opcodes when using the native assembler on OS versions before
-5.0.6.  (Support for P6 opcodes was added to the native ELF assembler in
-that version.)  While it's rather rare to see these emitted by GCC yet,
-errors of the basic form:
-
-@example
-  /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
-  /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
-@end example
-
-are symptoms of this problem.  You may work around this by not
-building affected files with that flag, by using the GNU assembler, or
-by using the assembler provided with the current version of the OS@.
-Users of GNU assembler should see the note below for hazards on doing
-so.
-
-The native SCO assembler that is provided with the OS at no
-charge is normally required.  If, however, you must be able to use
-the GNU assembler (perhaps you're compiling code with asms that
-require GAS syntax) you may configure this package using the flags
-@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}.  You must
-use a recent version of GNU binutils; versions past 2.9.1 seem to work
-well.
-
-In general, the @option{--with-gnu-as} option isn't as well tested
-as the native assembler.
-
-Look in @file{gcc/config/i386/sco5.h} (search for ``messy'') for
-additional OpenServer-specific flags.
-
-Systems based on OpenServer before 5.0.4 (@samp{uname -X}
-will tell you what you're running) require TLS597 from
-@uref{ftp://stage.caldera.com/TLS/,,ftp://stage.caldera.com/TLS/}
-for C++ constructors and destructors to work right.
-
-The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
-do the wrong thing for a construct that GCC will emit for PIC
-code.  This can be seen as execution testsuite failures when using
-@option{-fPIC} on @file{921215-1.c}, @file{931002-1.c}, @file{nestfunc-1.c}, and @file{gcov-1.c}.
-For 5.0.5, an updated linker that will cure this problem is
-available.  You must install both
-@uref{ftp://ftp.sco.com/pub/openserver5/rs505a,,ftp://ftp.sco.com/pub/openserver5/rs505a}
-and @uref{ftp://ftp.sco.com/pub/openserver5,,OSS499A}.
-
-The dynamic linker in OpenServer 5.0.5 (earlier versions may show
-the same problem) aborts on certain G77-compiled programs.  It's particularly
-likely to be triggered by building Fortran code with the @option{-fPIC} flag.
-Although it's conceivable that the error could be triggered by other
-code, only G77-compiled code has been observed to cause this abort.
-If you are getting core dumps immediately upon execution of your
-G77 program---and especially if it's compiled with @option{-fPIC}---try applying
-@uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your @samp{libf2c} and
-rebuilding GCC@.
-Affected faults, when analyzed in a debugger, will show a stack
-backtrace with a fault occurring in @code{rtld()} and the program
-running as @file{/usr/lib/ld.so.1}.  This problem has been reported to SCO
-engineering and will hopefully be addressed in later releases.
-
+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 />
@@ -2441,41 +2607,35 @@ have installed.
 IA-64 processor (also known as IPF, or Itanium Processor Family)
 running GNU/Linux.
 
-The toolchain is not completely finished, so requirements will continue
-to change.
-GCC 3.0.1 and later require glibc 2.2.4.
-GCC 3.0.2 requires binutils from 2001-09-05 or later.
-GCC 3.0.1 requires binutils 2.11.1 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
 Red Hat 2.96 and Trillian 000171 are compatible with each other:
-3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.
+3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.
 This primarily affects C++ programs and programs that create shared libraries.
-Because of these ABI incompatibilities, GCC 3.0.2 is not recommended for
-user programs on GNU/Linux systems built using earlier compiler releases.
-GCC 3.0.2 is recommended for compiling linux, the kernel.
-GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major
-ABI changes are expected.
+GCC 3.1 or later is recommended for compiling linux, the kernel.
+As of version 3.1 GCC is believed to be fully ABI compliant, and hence no
+more major ABI changes are expected.
 
 @html
 <hr />
 @end html
-@heading @anchor{*-lynx-lynxos}*-lynx-lynxos
-LynxOS 2.2 and earlier comes with GCC 1.x already installed as
-@file{/bin/gcc}.  You should compile with this instead of @file{/bin/cc}.
-You can tell GCC to use the GNU assembler and linker, by specifying
-@samp{--with-gnu-as --with-gnu-ld} when configuring.  These will produce
-COFF format object files and executables;  otherwise GCC will use the
-installed tools, which produce @file{a.out} format executables.
+@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,
+the option @option{--with-gnu-as} may be necessary.
+
+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.
 
 @html
 <hr />
 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
 @end html
 @heading @anchor{*-ibm-aix*}*-ibm-aix*
+AIX version 3 or older is no longer supported.
 
-AIX Make frequently has problems with GCC makefiles.  GNU Make 3.76 or
+AIX Make frequently has problems with GCC makefiles.  GNU Make 3.79.1 or
 newer is recommended to build on this platform.
 
 Errors involving @code{alloca} when building GCC generally are due
@@ -2489,11 +2649,12 @@ does not provide a definition that will confuse @command{configure}.
 If this error occurs during stage2 or later, then the problem most likely
 is the version of Make (see above).
 
-The GNU Assembler incorrectly reports that it supports WEAK symbols on
-AIX which causes GCC to try to utilize weak symbol functionality although
-it is not supported on the platform.  The native @command{as} and
-@command{ld} still are recommended.  The native AIX tools do
-interoperate with GCC@.
+The native @command{as} and @command{ld} are recommended for bootstrapping
+on AIX 4 and required for bootstrapping on AIX 5L.  The GNU Assembler
+reports that it supports WEAK symbols on AIX 4, which causes GCC to try to
+utilize weak symbol functionality although it is not supported.  The GNU
+Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC.
+The native AIX tools do interoperate with GCC@.
 
 Building @file{libstdc++.a} requires a fix for an AIX Assembler bug
 APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
@@ -2592,17 +2753,9 @@ Use @samp{configure --target=ip2k-elf --enable-languages=c} to configure GCC@.
 <hr />
 @end html
 @heading @anchor{m32r-*-elf}m32r-*-elf
-Mitsubishi M32R processor.
+Renesas M32R processor.
 This configuration is intended for embedded systems.
 
-@html
-<hr />
-@end html
-@heading @anchor{m68000-hp-bsd}m68000-hp-bsd
-HP 9000 series 200 running BSD@.  Note that the C compiler that comes
-with this system cannot compile GCC; contact @email{law@@cygnus.com}
-to get binaries of GCC for bootstrapping.
-
 @html
 <hr />
 @end html
@@ -2617,55 +2770,6 @@ applications.  There are no standard Unix configurations.
 Motorola 68HC12 family micro controllers.  These are used in embedded
 applications.  There are no standard Unix configurations.
 
-@html
-<hr />
-@end html
-@heading @anchor{m68k-att-sysv}m68k-att-sysv
-AT&T 3b1, a.k.a.@: 7300 PC@.  This version of GCC cannot
-be compiled with the system C compiler, which is too buggy.
-You will need to get a previous version of GCC and use it to
-bootstrap.  Binaries are available from the OSU-CIS archive, at
-@uref{ftp://ftp.uu.net/systems/att7300/}.
-
-@html
-<hr />
-@end html
-@heading @anchor{m68k-crds-unos}m68k-crds-unos
-Use @samp{configure unos} for building on Unos.
-
-The Unos assembler is named @code{casm} instead of @code{as}.  For some
-strange reason linking @file{/bin/as} to @file{/bin/casm} changes the
-behavior, and does not work.  So, when installing GCC, you should
-install the following script as @file{as} in the subdirectory where
-the passes of GCC are installed:
-
-@example
-#!/bin/sh
-casm $*
-@end example
-
-The default Unos library is named @file{libunos.a} instead of
-@file{libc.a}.  To allow GCC to function, either change all
-references to @option{-lc} in @file{gcc.c} to @option{-lunos} or link
-@file{/lib/libc.a} to @file{/lib/libunos.a}.
-
-@cindex @code{alloca}, for Unos
-When compiling GCC with the standard compiler, to overcome bugs in
-the support of @code{alloca}, do not use @option{-O} when making stage 2.
-Then use the stage 2 compiler with @option{-O} to make the stage 3
-compiler.  This compiler will have the same characteristics as the usual
-stage 2 compiler on other systems.  Use it to make a stage 4 compiler
-and compare that with stage 3 to verify proper compilation.
-
-(Perhaps simply defining @code{ALLOCA} in @file{x-crds} as described in
-the comments there will make the above paragraph superfluous.  Please
-inform us of whether this works.)
-
-Unos uses memory segmentation instead of demand paging, so you will need
-a lot of memory.  5 Mb is barely enough if no other tasks are running.
-If linking @file{cc1} fails, try putting the object files into a library
-and linking from that library.
-
 @html
 <hr />
 @end html
@@ -2699,17 +2803,13 @@ library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
 
 This patch is also known as PHCO_4484.
 
-In addition, if you wish to use gas, you must use
-gas version 2.1 or later, and you must use the GNU linker version 2.1 or
-later.  Earlier versions of gas relied upon a program which converted the
-gas output into the native HP-UX format, but that program has not been
-kept up to date.  gdb does not understand that native HP-UX format, so
+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
-@code{fixproto} shell script triggers a bug in the system shell.  If you
+@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 @code{fixproto}.  This bug will cause the fixproto
+GNU shell) to run @command{fixproto}.  This bug will cause the fixproto
 program to report an error of the form:
 
 @example
@@ -2723,39 +2823,6 @@ to look like:
 #!/bin/ksh
 @end example
 
-
-@html
-<hr />
-@end html
-@heading @anchor{m68k-ncr-*}m68k-ncr-*
-On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
-allowed to have more than one megabyte of memory.  GCC cannot compile
-itself (or many other programs) with @option{-O} in that much memory.
-
-To solve this problem, reconfigure the kernel adding the following line
-to the configuration file:
-
-@smallexample
-MAXUMEM = 4096
-@end smallexample
-
-
-@html
-<hr />
-@end html
-@heading @anchor{m68k-sun}m68k-sun
-Sun 3.  We do not provide a configuration file to use the Sun FPA by
-default, because programs that establish signal handlers for floating
-point traps inherently cannot work with the FPA@.
-
-@html
-<hr />
-@end html
-@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1
-
-It is reported that you may need the GNU assembler on this platform.
-
-
 @html
 <hr />
 @end html
@@ -2769,6 +2836,16 @@ stop such warnings by installing the GNU linker.
 It would be nice to extend GAS to produce the gp tables, but they are
 optional, and there should not be a warning about their absence.
 
+The libstdc++ atomic locking routines for MIPS targets requires MIPS II
+and later.  A patch went in just after the GCC 3.3 release to
+make @samp{mips*-*-*} use the generic implementation instead.  You can also
+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.
+
+@html
+<hr />
+@end html
 @heading @anchor{mips-sgi-irix5}mips-sgi-irix5
 
 This configuration has considerable problems, which will be fixed in a
@@ -2779,7 +2856,7 @@ subsystem must be installed from the IDO CD-ROM supplied by Silicon
 Graphics.  It is also available for download from
 @uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}.
 
-@code{make compare} may fail on version 5 of IRIX unless you add
+@samp{make compare} may fail on version 5 of IRIX 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
 comparison fail if it differs between the @code{stage1} and
@@ -2927,15 +3004,9 @@ 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://www.opensource.apple.com/projects/darwin/} (free
+@uref{http://developer.apple.com/tools/compilers.html} (free
 registration required).
 
-If you're using Darwin 1.3 (Mac OS X 10.0) or earlier, you will need
-to upgrade the assembler to version ``cctools-364''.  To get cctools-364,
-check out @file{cctools} with tag @samp{Apple-364}, build it, and
-install the assembler as @file{usr/bin/as}.  See
-@uref{http://www.opensource.apple.com/tools/cvs/docs.html} for details.
-
 The default stack limit of 512K is too small, which may cause compiles
 to fail with 'Bus error'.  Set the stack larger, for instance
 by doing @samp{limit stack 800}.  It's a good idea to use the GNU
@@ -2971,13 +3042,6 @@ PowerPC system in big endian mode running NetBSD@.  To build the
 documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
 Texinfo version 3.12).
 
-@html
-<hr />
-@end html
-@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix
-Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as
-the default.
-
 @html
 <hr />
 @end html
@@ -3010,12 +3074,6 @@ the PSIM simulator.
 @heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
 Embedded PowerPC system in little endian mode.
 
-@html
-<hr />
-@end html
-@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
-PowerPC system in little endian mode running Windows NT@.
-
 @html
 <hr />
 @end html
@@ -3042,12 +3100,24 @@ GCC you first have to install a pre-built compiler, see our
 @uref{binaries.html,,binaries page} for details.
 
 The Solaris 2 @command{/bin/sh} will often fail to configure
-@file{libstdc++-v3}, @file{boehm-gc} or
-@file{libjava}.  If you encounter this problem, set @env{CONFIG_SHELL} to
-@command{/bin/ksh} in your environment before running @command{configure}.
+@file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}.  We therefore
+recommend to use the following sequence of commands to bootstrap and
+install GCC:
+
+@smallexample
+   % CONFIG_SHELL=/bin/ksh
+   % export CONFIG_SHELL
+   % @var{srcdir}/configure [@var{options}] [@var{target}]
+   % gmake bootstrap
+   % gmake install
+@end smallexample
+
+As explained in the @uref{build.html,,build} instructions, we recommend
+to use GNU make, which we call @command{gmake} here to distinguish it
+from Sun make.
 
 Solaris 2 comes with a number of optional OS packages.  Some of these
-packages are needed to use GCC fully, namely @code{SUNWarc},
+are needed to use GCC fully, namely @code{SUNWarc},
 @code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm},
 @code{SUNWsprot}, and @code{SUNWtoo}.  If you did not install all
 optional packages when installing Solaris 2, you will need to verify that
@@ -3063,6 +3133,10 @@ Trying to use the linker and other tools in
 For example, the linker may hang indefinitely.  The fix is to remove
 @file{/usr/ucb} from your @env{PATH}.
 
+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 the vendor
 tools (Sun @command{as}, Sun @command{ld}).
@@ -3156,36 +3230,16 @@ the bug.  The current (as of 2001-09-24) revision is -14, and is included in
 the Solaris 7 Recommended Patch Cluster.
 @end itemize
 
+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:
 
-@html
-<p>
-<hr />
-@end html
-@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4*
-
-A bug in the SunOS 4 linker will cause it to crash when linking
-@option{-fPIC} compiled objects (and will therefore not allow you to build
-shared libraries).
-
-To fix this problem you can either use the most recent version of
-binutils or get the latest SunOS 4 linker patch (patch ID 100170-10)
-from Sun's patch site.
-
-Sometimes on a Sun 4 you may observe a crash in the program
-@command{genflags} or @command{genoutput} while building GCC.  This is said to
-be due to a bug in @command{sh}.  You can probably get around it by running
-@command{genflags} or @command{genoutput} manually and then retrying the
-@command{make}.
-
-@html
-<hr />
-@end html
-@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1
-
-It has been reported that you might need
-@uref{ftp://ftp.yggdrasil.com/private/hjl,,binutils 2.8.1.0.23}
-for this platform, too.
+@smallexample
+ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
+  symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
+@end smallexample
 
+This bug has been fixed in the final 5.0 version of the assembler.
 
 @html
 <hr />
@@ -3200,18 +3254,7 @@ releases mishandled unaligned relocations on @code{sparc-*-*} targets.
 @html
 <hr />
 @end html
-@heading @anchor{sparc64-*-*}sparc64-*-*
-
-GCC version 2.95 is not able to compile code correctly for
-@code{sparc64} targets.  Users of the Linux kernel, at least,
-can use the @code{sparc32} program to start up a new shell
-invocation with an environment that causes @command{configure} to
-recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead.
-
-@html
-<hr />
-@end html
-@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+@heading @anchor{sparc64-*-solaris2*}sparc64-*-solaris2*
 
 The following compiler flags must be specified in the configure
 step in order to bootstrap this target with the Sun compiler:
@@ -3221,7 +3264,14 @@ step in order to bootstrap this target with the Sun compiler:
 @end example
 
 @option{-xildoff} turns off the incremental linker, and @option{-xarch=v9}
-specifies the v9 architecture to the Sun linker and assembler.
+specifies the SPARC-V9 architecture to the Sun linker and assembler.
+
+@html
+<hr />
+@end html
+@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+
+This is a synonym for sparc64-*-solaris2*.
 
 @html
 <hr />
@@ -3254,14 +3304,14 @@ On System V, if you get an error like this,
 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 @code{cc} command in
+@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 (@code{vcc}).  It produces incorrect code
+Don't try compiling with VAX C (@command{vcc}).  It produces incorrect code
 in some cases (for example, when @code{alloca} is used).
 
 @html
@@ -3311,7 +3361,7 @@ Tensilica Instruction Extension (TIE) language are only supported
 through inline assembly.
 
 The Xtensa configuration information must be specified prior to
-building GCC@.  The @file{gcc/config/xtensa/xtensa-config.h} header
+building GCC@.  The @file{include/xtensa-config.h} header
 file contains the configuration information.  If you created your
 own Xtensa configuration with the Xtensa Processor Generator, the
 downloaded files include a customized copy of this header file,
@@ -3334,12 +3384,15 @@ respects, this target is the same as the
 @end html
 @heading @anchor{windows}Microsoft Windows (32-bit)
 
-A port of GCC 2.95.x is included with the
+A port of GCC 2.95.2 and 3.x is 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.
+
 @html
 <hr />
 @end html