OSDN Git Service

2001-05-03 David O'Brien <obrien@FreeBSD.org>
[pf3gnuchains/gcc-fork.git] / gcc / install.texi
index 2c9bdf3..07c617c 100644 (file)
@@ -1,12 +1,13 @@
-@c Copyright (C) 1988,89,92,93,94,95,96,97 Free Software Foundation, Inc.
+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
 @c The text of this file appears in the file INSTALL
 @c in the GCC distribution, as well as in the GCC manual.
 
-Note most of this information is out of date and superceded by the EGCS
-install procedures.  It is provided for historical reference only.
+Note most of this information is out of date and superseded by the
+online GCC install procedures @uref{http://gcc.gnu.org/install/}.  It is
+provided for historical reference only.
 
 @ifclear INSTALLONLY
 @node Installation
@@ -15,6 +16,7 @@ install procedures.  It is provided for historical reference only.
 @cindex installing GNU CC
 
 @menu
+* Configuration Files::  Files created by running @code{configure}.
 * Configurations::    Configurations Supported by GNU CC.
 * Other Dir::     Compiling in a separate directory (not where the source is).
 * Cross-Compiler::   Building and installing a cross-compiler.
@@ -24,11 +26,11 @@ install procedures.  It is provided for historical reference only.
 * Header Dirs::   Understanding the standard header file directories.
 @end menu
 
-Here is the procedure for installing GNU CC on a Unix system.  See
-@ref{VMS Install}, for VMS systems.  In this section we assume you
+Here is the procedure for installing GNU CC on a GNU or Unix system.
+See @ref{VMS Install}, for VMS systems.  In this section we assume you
 compile in the same directory that contains the source files; see
-@ref{Other Dir}, to find out how to compile in a separate directory on Unix
-systems.
+@ref{Other Dir}, to find out how to compile in a separate directory on
+Unix systems.
 
 You cannot install GNU C by itself on MSDOS; it will not compile under
 any MSDOS compiler except itself.  You need to get the complete
@@ -49,9 +51,31 @@ 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} uses libraries which have bugs.
 
+@cindex Bison parser generator
+@cindex parser generator, Bison
+@item
+Make sure the Bison parser generator is installed.  (This is unnecessary
+if the Bison output file @file{c-parse.c} is more recent than
+@file{c-parse.y},and you do not plan to change the @samp{.y} file.)
+
+Bison versions older than Sept 8, 1988 will produce incorrect output
+for @file{c-parse.c}.
+
+@item
+If you have chosen a configuration for GNU CC which requires other GNU
+tools (such as GAS or the GNU linker) instead of the standard system
+tools, install the required tools in the build directory under the names
+@file{as}, @file{ld} or whatever is appropriate.  This will enable the
+compiler to find the proper tools for compilation of the program
+@file{enquire}.
+
+Alternatively, you can do subsequent compilation using a value of the
+@code{PATH} environment variable such that the necessary GNU tools come
+before the standard system tools.
+
 @item
 Specify the host, build and target machine configurations.  You do this
-by running the file @file{configure}.
+when you run the @file{configure} script.
 
 The @dfn{build} machine is the system which you are using, the
 @dfn{host} machine is the system where you want to run the resulting
@@ -67,14 +91,14 @@ to specify a configuration when building a native compiler unless
 wrong.
 
 In those cases, specify the build machine's @dfn{configuration name}
-with the @samp{--build} option; the host and target will default to be
-the same as the build machine.  (If you are building a cross-compiler,
+with the @samp{--host} option; the host and target will default to be
+the same as the host machine.  (If you are building a cross-compiler,
 see @ref{Cross-Compiler}.)
 
 Here is an example:
 
 @smallexample
-./configure --build=sparc-sun-sunos4.1
+./configure --host=sparc-sun-sunos4.1
 @end smallexample
 
 A configuration name may be canonical or it may be more or less
@@ -100,10 +124,11 @@ See @ref{Configurations}, for a list of supported configuration names and
 notes on many of the configurations.  You should check the notes in that
 section before proceeding any further with the installation of GNU CC.
 
-There are four additional options you can specify independently to
-describe variant hardware and software configurations.  These are
-@samp{--with-gnu-as}, @samp{--with-gnu-ld}, @samp{--with-stabs} and
-@samp{--nfp}.
+@item
+When running @code{configure}, you may also need to specify certain
+additional options that describe variant hardware and software
+configurations.  These are @samp{--with-gnu-as}, @samp{--with-gnu-ld},
+@samp{--with-stabs} and @samp{--nfp}.
 
 @table @samp
 @item --with-gnu-as
@@ -141,9 +166,9 @@ linker with GNU CC.
 
 This option does not cause the GNU linker to be installed; it just
 modifies the behavior of GNU CC to work with the GNU linker.
-@cSpecifically, it inhibits the installation of @code{collect2}, a program
-@cwhich otherwise serves as a front-end for the system's linker on most
-@cconfigurations.
+@c Specifically, it inhibits the installation of @code{collect2}, a program
+@c which otherwise serves as a front-end for the system's linker on most
+@c configurations.
 
 @item --with-stabs
 On MIPS based systems and on Alphas, you must specify whether you want
@@ -182,7 +207,7 @@ make a difference.
 @cindex Haifa scheduler
 @cindex scheduler, experimental
 @item --enable-haifa
-@item --disable-haifa
+@itemx --disable-haifa
 Use @samp{--enable-haifa} to enable use of an experimental instruction
 scheduler (from IBM Haifa).  This may or may not produce better code.
 Some targets on which it is known to be a win enable it by default; use
@@ -199,61 +224,73 @@ threads implementation available, in which case threads can be enabled
 with this option by supplying a suitable @var{type}, probably
 @samp{posix}.  The possibilities for @var{type} are @samp{single},
 @samp{posix}, @samp{win32}, @samp{solaris}, @samp{irix} and @samp{mach}.
-@end table
 
-The @file{configure} script searches subdirectories of the source
-directory for other compilers that are to be integrated into GNU CC.
-The GNU compiler for C++, called G++ is in a subdirectory named
-@file{cp}.  @file{configure} inserts rules into @file{Makefile} to build
-all of those compilers.
+@cindex Internal Compiler Checking
+@item --enable-checking
+When you specify this option, the compiler is built to perform checking
+of tree node types when referencing fields of that node.  This does not
+change the generated code, but adds error checking within the compiler.
+This will slow down the compiler and may only work properly if you
+are building the compiler with GNU C.
+
+@cindex Native Language Support
+@cindex NLS
+@item --enable-nls
+@itemx --disable-nls
+The @samp{--enable-nls} option enables Native Language Support (NLS),
+which lets GCC output diagnostics in languages other than American
+English. Native Language Support is enabled by default if not doing a 
+canadian cross build. The @samp{--disable-nls} option disables NLS.
+
+@cindex @code{gettext}
+@item --with-included-gettext
+If NLS is enbled, the @samp{--with-included-gettext} option causes the build
+procedure to prefer its copy of GNU @code{gettext}. This is the default. If
+you want the GCC build procedure to prefer the host's @code{gettext}
+libraries, use @samp{--without-included-gettext}.
+
+@cindex @code{catgets}
+@item --with-catgets
+If NLS is enabled, and if the host lacks @code{gettext} but has the
+inferior @code{catgets} interface, the GCC build procedure normally
+ignores @code{catgets} and instead uses GCC's copy of the GNU
+@code{gettext} library.  The @samp{--with-catgets} option causes the
+build procedure to use the host's @code{catgets} in this situation.
+
+@cindex @code{maintainer-mode}
+@item --enable-maintainer-mode
+The build rules that regenerate the GCC master message catalog
+@code{gcc.pot} are normally disabled. This is because it can only be rebuilt
+if the complete source tree is present. If you have changed the sources and
+want to rebuild the catalog, configuring with
+@samp{--enable-maintainer-mode} will enable this. Note that you need a
+special version of the @code{gettext} tools to do so.
+
+@cindex Windows32 Registry support
+@item --enable-win32-registry
+@itemx --enable-win32-registry=@var{KEY}
+@itemx --disable-win32-registry
+The @samp{--enable-win32-registry} option enables Windows-hosted GCC
+to look up installations paths in the registry using the following key:
 
-Here we spell out what files will be set up by @code{configure}.  Normally
-you need not be concerned with these files.
-
-@itemize @bullet
-@item
-@ifset INTERNALS
-A file named @file{config.h} is created that contains a @samp{#include}
-of the top-level config file for the machine you will run the compiler
-on (@pxref{Config}).  This file is responsible for defining information
-about the host machine.  It includes @file{tm.h}.
-@end ifset
-@ifclear INTERNALS
-A file named @file{config.h} is created that contains a @samp{#include}
-of the top-level config file for the machine you will run the compiler
-on (@pxref{Config,,The Configuration File, gcc.info, Using and Porting
-GCC}).  This file is responsible for defining information about the host
-machine.  It includes @file{tm.h}.
-@end ifclear
-
-The top-level config file is located in the subdirectory @file{config}.
-Its name is always @file{xm-@var{something}.h}; usually
-@file{xm-@var{machine}.h}, but there are some exceptions.
-
-If your system does not support symbolic links, you might want to
-set up @file{config.h} to contain a @samp{#include} command which
-refers to the appropriate file.
-
-@item
-A file named @file{tconfig.h} is created which includes the top-level config
-file for your target machine.  This is used for compiling certain
-programs to run on that machine.
+@smallexample
+@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<KEY>}
+@end smallexample
 
-@item
-A file named @file{tm.h} is created which includes the
-machine-description macro file for your target machine.  It should be in
-the subdirectory @file{config} and its name is often
-@file{@var{machine}.h}.
+<KEY> defaults to GCC version number, and can be overridden by the
+@code{--enable-win32-registry=KEY} option. Vendors and distributors
+who use custom installers are encouraged to provide a different key,
+perhaps one comprised of vendor name and GCC version number, to
+avoid conflict with existing installations. This feature is enabled
+by default, and can be disabled by @code{--disable-win32-registry}
+option.  This option has no effect on the other hosts.
+@end table
 
 @item
-The command file @file{configure} also constructs the file
-@file{Makefile} by adding some text to the template file
-@file{Makefile.in}.  The additional text comes from files in the
-@file{config} directory, named @file{t-@var{target}} and
-@file{x-@var{host}}.  If these files do not exist, it means nothing
-needs to be added for a given target or host.
-@end itemize
+In certain cases, you should specify certain other options when you run
+@code{configure}.
 
+@itemize @bullet
 @item
 The standard directory for installing GNU CC is @file{/usr/local/lib}.
 If you want to install its files somewhere else, specify
@@ -261,18 +298,19 @@ If you want to install its files somewhere else, specify
 is a directory name to use instead of @file{/usr/local} for all purposes
 with one exception: the directory @file{/usr/local/include} is searched
 for header files no matter where you install the compiler.  To override
-this name, use the @code{--local-prefix} option below.
+this name, use the @code{--with-local-prefix} option below.  The directory
+you specify need not exist, but its parent directory must exist.
 
 @item
-Specify @samp{--local-prefix=@var{dir}} if you want the compiler to
+Specify @samp{--with-local-prefix=@var{dir}} if you want the compiler to
 search directory @file{@var{dir}/include} for locally installed header
 files @emph{instead} of @file{/usr/local/include}.
 
-You should specify @samp{--local-prefix} @strong{only} if your site has
+You should specify @samp{--with-local-prefix} @strong{only} if your site has
 a different convention (not @file{/usr/local}) for where to put
 site-specific files.
 
-The default value for @samp{--local-prefix} is @file{/usr/local}
+The default value for @samp{--with-local-prefix} is @file{/usr/local}
 regardless of the value of @samp{--prefix}.  Specifying @samp{--prefix}
 has no effect on which directory GNU CC searches for local header files.
 This may seem counterintuitive, but actually it is logical.
@@ -283,8 +321,8 @@ any in that directory---are not part of GNU CC.  They are part of other
 programs---perhaps many others.  (GNU CC installs its own header files
 in another directory which is based on the @samp{--prefix} value.)
 
-@strong{Do not} specify @file{/usr} as the @samp{--local-prefix}!  The
-directory you use for @samp{--local-prefix} @strong{must not} contain
+@strong{Do not} specify @file{/usr} as the @samp{--with-local-prefix}!  The
+directory you use for @samp{--with-local-prefix} @strong{must not} contain
 any of the system's standard header files.  If it did contain them,
 certain programs would be miscompiled (including GNU Emacs, on certain
 targets), because this would override and nullify the header file
@@ -294,29 +332,7 @@ Indications are that people who use this option use it based on
 mistaken ideas of what it is for.  People use it as if it specified
 where to install part of GNU CC.  Perhaps they make this assumption
 because installing GNU CC creates the directory.
-
-@cindex Bison parser generator
-@cindex parser generator, Bison
-@item
-Make sure the Bison parser generator is installed.  (This is
-unnecessary if the Bison output files @file{c-parse.c} and
-@file{cexp.c} are more recent than @file{c-parse.y} and @file{cexp.y}
-and you do not plan to change the @samp{.y} files.)
-
-Bison versions older than Sept 8, 1988 will produce incorrect output
-for @file{c-parse.c}.
-
-@item
-If you have chosen a configuration for GNU CC which requires other GNU
-tools (such as GAS or the GNU linker) instead of the standard system
-tools, install the required tools in the build directory under the names
-@file{as}, @file{ld} or whatever is appropriate.  This will enable the
-compiler to find the proper tools for compilation of the program
-@file{enquire}.
-
-Alternatively, you can do subsequent compilation using a value of the
-@code{PATH} environment variable such that the necessary GNU tools come
-before the standard system tools.
+@end itemize
 
 @item
 Build the compiler.  Just type @samp{make LANGUAGES=c} in the compiler
@@ -324,23 +340,24 @@ directory.
 
 @samp{LANGUAGES=c} specifies that only the C compiler should be
 compiled.  The makefile normally builds compilers for all the supported
-languages; currently, C, C++ and Objective C.  However, C is the only
-language that is sure to work when you build with other non-GNU C
-compilers.  In addition, building anything but C at this stage is a
-waste of time.
+languages; currently, C, C++, Objective C, Java, FORTRAN, and CHILL.
+However, C is the only language that is sure to work when you build with
+other non-GNU C compilers.  In addition, building anything but C at this
+stage is a waste of time.
 
 In general, you can specify the languages to build by typing the
 argument @samp{LANGUAGES="@var{list}"}, where @var{list} is one or more
-words from the list @samp{c}, @samp{c++}, and @samp{objective-c}.  If
-you have any additional GNU compilers as subdirectories of the GNU CC
-source directory, you may also specify their names in this list.
+words from the list @samp{c}, @samp{c++}, @samp{objective-c},
+@samp{java}, @samp{f77}, and @samp{CHILL}.  If you have any additional
+GNU compilers as subdirectories of the GNU CC source directory, you may
+also specify their names in this list.
 
 Ignore any warnings you may see about ``statement not reached'' in
 @file{insn-emit.c}; they are normal.  Also, warnings about ``unknown
 escape sequence'' are normal in @file{genopinit.c} and perhaps some
 other files.  Likewise, you should ignore warnings about ``constant is
 so large that it is unsigned'' in @file{insn-emit.c} and
-@file{insn-recog.c} and a warning about a comparison always being zero
+@file{insn-recog.c}, and a warning about a comparison always being zero
 in @file{enquire.o}.  Any other compilation errors may represent bugs in
 the port to your machine or operating system, and
 @ifclear INSTALLONLY
@@ -350,9 +367,9 @@ should be investigated and reported (@pxref{Bugs}).
 should be investigated and reported.
 @end ifset
 
-Some commercial compilers fail to compile GNU CC because they have bugs
-or limitations.  For example, the Microsoft compiler is said to run out
-of macro space.  Some Ultrix compilers run out of expression space; then
+Some compilers fail to compile GNU CC because they have bugs or
+limitations.  For example, the Microsoft compiler is said to run out of
+macro space.  Some Ultrix compilers run out of expression space; then
 you need to break up the statement where the problem happens.
 
 @item
@@ -447,8 +464,8 @@ instead of making @file{stage1}, @file{stage2}, and performing
 the two compiler builds.
 
 @item
-Then compare the latest object files with the stage 2 object
-files---they ought to be identical, aside from time stamps (if any).
+Compare the latest object files with the stage 2 object files---they
+ought to be identical, aside from time stamps (if any).
 
 On some systems, meaningful comparison of object files is impossible;
 they always appear ``different.''  This is currently true on Solaris and
@@ -507,11 +524,11 @@ This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to
 files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory
 @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}, which is where
 the compiler driver program looks for them.  Here @var{target} is the
-target machine type specified when you ran @file{configure}, and
-@var{version} is the version number of GNU CC.  This naming scheme
-permits various versions and/or cross-compilers to coexist.
-It also copies the executables for compilers for other languages
-(e.g., @file{cc1plus} for C++) to the same directory.
+canonicalized form of target machine type specified when you ran
+@file{configure}, and @var{version} is the version number of GNU CC.
+This naming scheme permits various versions and/or cross-compilers to
+coexist.  It also copies the executables for compilers for other
+languages (e.g., @file{cc1plus} for C++) to the same directory.
 
 This also copies the driver program @file{xgcc} into
 @file{/usr/local/bin/gcc}, so that it appears in typical execution
@@ -534,14 +551,6 @@ since they usually run faster than the ones compiled with some other
 compiler.)
 
 @item
-If you're going to use C++, it's likely that you need to also install
-the libg++ distribution.  It should be available from the same
-place where you got the GNU C distribution.  Just as GNU C does not
-distribute a C runtime library, it also does not include a C++ run-time
-library.  All I/O functionality, special class libraries, etc., are
-available in the libg++ distribution.
-
-@item
 GNU CC includes a runtime library for Objective-C because it is an
 integral part of the language.  You can find the files associated with
 the library in the subdirectory @file{objc}.  The GNU Objective-C
@@ -588,6 +597,56 @@ Microsoft Win32 API thread support.
 @end itemize
 @end enumerate
 
+@node Configuration Files
+@section Files Created by @code{configure}
+
+Here we spell out what files will be set up by @code{configure}.  Normally
+you need not be concerned with these files.
+
+@itemize @bullet
+@item
+@ifset INTERNALS
+A file named @file{config.h} is created that contains a @samp{#include}
+of the top-level config file for the machine you will run the compiler
+on (@pxref{Config}).  This file is responsible for defining information
+about the host machine.  It includes @file{tm.h}.
+@end ifset
+@ifclear INTERNALS
+A file named @file{config.h} is created that contains a @samp{#include}
+of the top-level config file for the machine you will run the compiler
+on (@pxref{Config,,The Configuration File, gcc.info, Using and Porting
+GCC}).  This file is responsible for defining information about the host
+machine.  It includes @file{tm.h}.
+@end ifclear
+
+The top-level config file is located in the subdirectory @file{config}.
+Its name is always @file{xm-@var{something}.h}; usually
+@file{xm-@var{machine}.h}, but there are some exceptions.
+
+If your system does not support symbolic links, you might want to
+set up @file{config.h} to contain a @samp{#include} command which
+refers to the appropriate file.
+
+@item
+A file named @file{tconfig.h} is created which includes the top-level config
+file for your target machine.  This is used for compiling certain
+programs to run on that machine.
+
+@item
+A file named @file{tm.h} is created which includes the
+machine-description macro file for your target machine.  It should be in
+the subdirectory @file{config} and its name is often
+@file{@var{machine}.h}.
+
+@item
+The command file @file{configure} also constructs the file
+@file{Makefile} by adding some text to the template file
+@file{Makefile.in}.  The additional text comes from files in the
+@file{config} directory, named @file{t-@var{target}} and
+@file{x-@var{host}}.  If these files do not exist, it means nothing
+needs to be added for a given target or host.
+@end itemize
+
 @node Configurations
 @section Configurations Supported by GNU CC
 @cindex configurations supported by GNU CC
@@ -595,11 +654,12 @@ Microsoft Win32 API thread support.
 Here are the possible CPU types:
 
 @quotation
-@c gmicro, alliant, spur and tahoe omitted since they don't work.
-1750a, a29k, alpha, arm, c@var{n}, clipper, dsp16xx, elxsi, h8300,
-hppa1.0, hppa1.1, i370, i386, i486, i586, i860, i960, m32r, m68000, m68k,
-m88k, mips, mipsel, mips64, mips64el, ns32k, powerpc, powerpcle,
-pyramid, romp, rs6000, sh, sparc, sparclite, sparc64, vax, we32k.
+@c gmicro, fx80, spur and tahoe omitted since they don't work.
+1750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300,
+hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, m32r,
+m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el,
+mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
+sparclite, sparc64, v850, vax, we32k.
 @end quotation
 
 Here are the recognized company names.  As you can see, customary
@@ -623,8 +683,8 @@ Here is a list of system types:
 
 @quotation
 386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
-dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux-gnu,
-hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
+dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
+linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
 netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
 solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
 vxworks, winnt, xenix.
@@ -640,6 +700,12 @@ make a difference.  For example, you can write @samp{bsd4.3} or
 number is most needed for @samp{sysv3} and @samp{sysv4}, which are often
 treated differently.
 
+@samp{linux-gnu} is the canonical name for the GNU/Linux target; however
+GNU CC will also accept @samp{linux}.  The version of the kernel in use is
+not relevant on these systems.  A suffix such as @samp{libc1} or @samp{aout}
+distinguishes major versions of the C library; all of the suffixed versions
+are obsolete.
+
 If you specify an impossible combination such as @samp{i860-dg-vms},
 then you may get an error message from @file{configure}, or it may
 ignore part of the information and do the best it can with the rest.
@@ -692,7 +758,7 @@ MIL-STD-1750A processors.
 The MIL-STD-1750A cross configuration produces output for
 @code{as1750}, an assembler/linker available under the GNU Public
 License for the 1750A. @code{as1750} can be obtained at 
-@emph{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
+@uref{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
 A similarly licensed simulator for
 the 1750A is available from same address.
 
@@ -784,12 +850,24 @@ produce @file{a.out} format object modules.
 You may need to make a variant of the file @file{arm.h} for your particular
 configuration.
 
-@item arm-*-linuxaout
-Any of the ARM family processors running the Linux-based GNU system with
-the @file{a.out} binary format (ELF is not yet supported).  You must use
-version 2.8.1.0.7 or later of the GNU/Linux binutils, which you can download
-from @file{sunsite.unc.edu:/pub/Linux/GCC} and other mirror sites for
-Linux-based GNU systems.
+@item arm-*-elf
+This configuration is intended for embedded systems.
+
+@item arm-*-linux*aout
+Any of the ARM-family processors running the Linux-based GNU system with
+the @file{a.out} binary format.  This is an obsolete configuration.
+
+@item arm-*-linux
+@itemx arm-*-linux-gnu
+@itemx arm-*-linux*oldld
+Any of the ARM-family processors running the Linux-based GNU system with
+the @file{ELF} binary format.  You must use version 2.9.1.0.22 or later
+of the GNU/Linux binutils, which you can download from
+@uref{ftp://ftp.varesearch.com/pub/support/hjl/binutils/}.
+
+These two configurations differ only in the required version of GNU
+binutils.  For binutils 2.9.1.0.x, use @samp{arm-*-linux-gnuoldld}.  For 
+newer versions of binutils, use @samp{arm-*-linux-gnu}.
 
 @item arm-*-riscix
 The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.
@@ -798,7 +876,7 @@ specify the version number during configuration.  Note that the
 assembler shipped with RISC iX does not support stabs debugging
 information; a new version of the assembler, with stabs support
 included, is now available from Acorn and via ftp
-@file{ftp.acorn.com:/pub/riscix/as+xterm.tar.Z}.  To enable stabs
+@uref{ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z}.  To enable stabs
 debugging, pass @samp{--with-gnu-as} to configure.
 
 You will need to install GNU @file{sed} before you can run configure.
@@ -816,10 +894,16 @@ particular configuration.
 @item a29k-*-bsd
 AMD Am29050 used in a system running a variant of BSD Unix.
 
+@item avr
+ATMEL AVR-family micro controllers.  These are used in embedded
+applications.  There are no standard Unix configurations.
+@xref{AVR Options}, for the list of supported MCU types.
+
 @item decstation-*
-DECstations can support three different personalities: Ultrix,
-DEC OSF/1, and OSF/rose.  To configure GCC for these platforms
-use the following configurations:
+MIPS-based DECstations can support three different personalities:
+Ultrix, DEC OSF/1, and OSF/rose.  (Alpha-based DECstation products have
+a configuration name beginning with @samp{alpha-dec}.)  To configure GCC
+for these platforms use the following configurations:
 
 @table @samp
 @item decstation-ultrix
@@ -845,7 +929,7 @@ compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
 
 @item elxsi-elxsi-bsd
 The Elxsi's C compiler has known limitations that prevent it from
-compiling GNU C.  Please contact @code{mrs@@cygnus.com} for more details.
+compiling GNU C.  Please contact @email{mrs@@cygnus.com} for more details.
 
 @item dsp16xx
 A port to the AT&T DSP1610 family of processors.
@@ -882,44 +966,22 @@ All code must be recompiled.  The calling convention now passes the
 first three arguments in function calls in registers.  Structures are no
 longer a multiple of 2 bytes.
 
-@item hppa*-*-*
-There are several variants of the HP-PA processor which run a variety
-of operating systems.  GNU CC must be configured to use the correct
-processor type and operating system, or GNU CC will not function correctly.
-The easiest way to handle this problem is to @emph{not} specify a target
-when configuring GNU CC, the @file{configure} script will try to automatically
-determine the right processor type and operating system.
-
-@samp{-g} does not work on HP-UX, since that system uses a peculiar
-debugging format which GNU CC does not know about.  However, @samp{-g}
-will work if you also use GAS and GDB in conjunction with GCC.  We
-highly recommend using GAS for all HP-PA configurations.
-
-You should be using GAS-2.6 (or later) along with GDB-4.16 (or later).  These
-can be retrieved from all the traditional GNU ftp archive sites.
-
-GAS will need to be installed into a directory before @code{/bin},
-@code{/usr/bin}, and @code{/usr/ccs/bin} in your search path.  You
-should install GAS before you build GNU CC.
-
-To enable debugging, you must configure GNU CC with the @samp{--with-gnu-as}
-option before building.
-
 @item i370-*-*
 This port is very preliminary and has many known bugs.  We hope to
 have a higher-quality port for this machine soon.
 
-@item i386-*-linux-gnuoldld
+@item i386-*-linux*oldld
 Use this configuration to generate @file{a.out} binaries on Linux-based
 GNU systems if you do not have gas/binutils version 2.5.2 or later
 installed. This is an obsolete configuration.
 
-@item i386-*-linux-gnuaout
+@item i386-*-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.
 
-@item i386-*-linux-gnu
+@item i386-*-linux
+@itemx i386-*-linux-gnu
 Use this configuration to generate ELF binaries on Linux-based GNU
 systems.  You must use gas/binutils version 2.5.2 or later.
 
@@ -931,26 +993,7 @@ link with GNU malloc instead of the malloc that comes with the system.
 Use this configuration for SCO release 3.2 version 4.
 
 @item i386-*-sco3.2v5*
-Use this for the SCO OpenServer Release family including 5.0.0, 5.0.2, 
-5.0.4, Internet FastStart 1.0, and Internet FastStart 1.1.
-
-GNU CC can generate ELF binaries (if you specify @samp{-melf}) or COFF 
-binaries (the default).  If you are going to build your compiler in ELF 
-mode (once you have bootstrapped the first stage compiler) you 
-@strong{must} specify @samp{-melf} as part of @code{CC},
-@emph{not} @code{CFLAGS}, for example as
-@samp{CC="stage1/xgcc -melf -Bstage1/" }.  If you do not do this, the
-bootstrap will generate incorrect versions of @file{libgcc.a}.
-
-You must have TLS597 (from ftp.sco.com/TLS) installed for ELF
-binaries to work correctly. Note that Open Server 5.0.2 @emph{does}
-need TLS597 installed.
-
-@emph{NOTE:} You must follow the instructions about invoking
-@samp{make bootstrap} because the native OpenServer compiler builds
-a @file{cc1plus} that will not correctly parse many valid C++ programs.
-You must do a @samp{make bootstrap} if you are building with the native
-compiler.
+Use this for the SCO OpenServer Release 5 family of operating systems.
 
 @item i386-*-isc
 It may be a good idea to link with GNU malloc instead of the malloc that
@@ -971,10 +1014,8 @@ GNU binutils version 2.2 or later.
 Go to the Berkeley universe before compiling.
 
 @item i386-sequent-ptx1*
-Sequent DYNIX/ptx 1.x.
-
-@item i386-sequent-ptx2*
-Sequent DYNIX/ptx 2.x.
+@itemx i386-sequent-ptx2*
+You must install GNU @file{sed} before running @file{configure}.
 
 @item i386-sun-sunos4
 You may find that you need another version of GNU CC to begin
@@ -986,52 +1027,6 @@ seems not to have this problem.
 See @ref{Sun Install}, for information on installing GNU CC on Sun
 systems.
 
-@item i[345]86-*-winnt3.5
-This version requires a GAS that has not yet been released.  Until it
-is, you can get a prebuilt binary version via anonymous ftp from
-@file{cs.washington.edu:pub/gnat} or @file{cs.nyu.edu:pub/gnat}. You
-must also use the Microsoft header files from the Windows NT 3.5 SDK.
-Find these on the CDROM in the @file{/mstools/h} directory dated 9/4/94.  You
-must use a fixed version of Microsoft linker made especially for NT 3.5,
-which is also is available on the NT 3.5 SDK CDROM.  If you do not have
-this linker, can you also use the linker from Visual C/C++ 1.0 or 2.0.
-
-Installing GNU CC for NT builds a wrapper linker, called @file{ld.exe},
-which mimics the behaviour of Unix @file{ld} in the specification of
-libraries (@samp{-L} and @samp{-l}).  @file{ld.exe} looks for both Unix
-and Microsoft named libraries.  For example, if you specify
-@samp{-lfoo}, @file{ld.exe} will look first for @file{libfoo.a}
-and then for @file{foo.lib}.
-
-You may install GNU CC for Windows NT in one of two ways, depending on
-whether or not you have a Unix-like shell and various Unix-like
-utilities.
-
-@enumerate
-@item
-If you do not have a Unix-like shell and few Unix-like utilities, you
-will use a DOS style batch script called @file{configure.bat}.  Invoke
-it as @code{configure winnt} from an MSDOS console window or from the
-program manager dialog box.  @file{configure.bat} assumes you have
-already installed and have in your path a Unix-like @file{sed} program
-which is used to create a working @file{Makefile} from @file{Makefile.in}.
-
-@file{Makefile} uses the Microsoft Nmake program maintenance utility and
-the Visual C/C++ V8.00 compiler to build GNU CC.  You need only have the
-utilities @file{sed} and @file{touch} to use this installation method,
-which only automatically builds the compiler itself.  You must then
-examine what @file{fixinc.winnt} does, edit the header files by hand and
-build @file{libgcc.a} manually.
-
-@item
-The second type of installation assumes you are running a Unix-like
-shell, have a complete suite of Unix-like utilities in your path, and
-have a previous version of GNU CC already installed, either through
-building it via the above installation method or acquiring a pre-built
-binary.  In this case, use the @file{configure} script in the normal
-fashion.
-@end enumerate
-
 @item i860-intel-osf1
 This is the Paragon.
 @ifset INSTALLONLY
@@ -1060,7 +1055,7 @@ This configuration is intended for embedded systems.
 
 @item m68000-hp-bsd
 HP 9000 series 200 running BSD.  Note that the C compiler that comes
-with this system cannot compile GNU CC; contact @code{law@@cs.utah.edu}
+with this system cannot compile GNU CC; contact @email{law@@cygnus.com}
 to get binaries of GNU CC for bootstrapping.
 
 @item m68k-altos
@@ -1076,53 +1071,17 @@ that configuration with + the @samp{--with-gnu-as} and @samp{--with-gnu-ld}
 options to @code{configure}.
 
 Note the C compiler that comes
-with this system cannot compile GNU CC.  You can fine binaries of GNU CC
+with this system cannot compile GNU CC.  You can find binaries of GNU CC
 for bootstrapping on @code{jagubox.gsfc.nasa.gov}.
 You will also a patched version of @file{/bin/ld} there that
 raises some of the arbitrary limits found in the original.
 
 @item m68k-att-sysv
-AT&T 3b1, a.k.a. 7300 PC.  Special procedures are needed to compile GNU
-CC with this machine's standard C compiler, due to bugs in that
-compiler.  You can bootstrap it more easily with
-previous versions of GNU CC if you have them.
-
-Installing GNU CC on the 3b1 is difficult if you do not already have
-GNU CC running, due to bugs in the installed C compiler.  However,
-the following procedure might work.  We are unable to test it.
-
-@enumerate
-@item
-Comment out the @samp{#include "config.h"} line near the start of
-@file{cccp.c} and do @samp{make cpp}.  This makes a preliminary version
-of GNU cpp.
-
-@item
-Save the old @file{/lib/cpp} and copy the preliminary GNU cpp to that
-file name.
-
-@item
-Undo your change in @file{cccp.c}, or reinstall the original version,
-and do @samp{make cpp} again.
-
-@item
-Copy this final version of GNU cpp into @file{/lib/cpp}.
-
-@findex obstack_free
-@item
-Replace every occurrence of @code{obstack_free} in the file
-@file{tree.c} with @code{_obstack_free}.
-
-@item
-Run @code{make} to get the first-stage GNU CC.
-
-@item
-Reinstall the original version of @file{/lib/cpp}.
-
-@item
-Now you can compile GNU CC with itself and install it in the normal
-fashion.
-@end enumerate
+AT&T 3b1, a.k.a. 7300 PC.  This version of GNU CC 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://archive.cis.ohio-state.edu/pub/att7300/}.
 
 @item m68k-bull-sysv
 Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GNU CC works
@@ -1131,7 +1090,7 @@ GNU assembler with native coff generation by providing @samp{--with-gnu-as} to
 the configure script or use GNU assembler with dbx-in-coff encapsulation
 by providing @samp{--with-gnu-as --stabs}. For any problem with native
 assembler or for availability of the DPX/2 port of GAS, contact
-@code{F.Pierresteguy@@frcl.bull.fr}.
+@email{F.Pierresteguy@@frcl.bull.fr}.
 
 @item m68k-crds-unox
 Use @samp{configure unos} for building on Unos.
@@ -1177,8 +1136,8 @@ PHCO_4484 from HP.
 In addition, if you wish to use gas @samp{--with-gnu-as} 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
+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
 you must use gas if you wish to use gdb.
 
 @item m68k-sun
@@ -1189,6 +1148,14 @@ point traps inherently cannot work with the FPA.
 See @ref{Sun Install}, for information on installing GNU CC on Sun
 systems.
 
+@item m6811-elf
+Motorola 68HC11 family micro controllers.  These are used in embedded
+applications.  There are no standard Unix configurations.
+
+@item m6812-elf
+Motorola 68HC12 family micro controllers.  These are used in embedded
+applications.  There are no standard Unix configurations.
+
 @item m88k-*-svr3
 Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port.
 These systems tend to use the Green Hills C, revision 1.8.5, as the
@@ -1227,8 +1194,8 @@ between stages.
 @item mips-mips-bsd
 MIPS machines running the MIPS operating system in BSD mode.  It's
 possible that some old versions of the system lack the functions
-@code{memcpy}, @code{memcmp}, and @code{memset}.  If your system lacks
-these, you must remove or undo the definition of
+@code{memcpy}, @code{memmove}, @code{memcmp}, and @code{memset}.  If your
+system lacks these, you must remove or undo the definition of
 @code{TARGET_MEM_FUNCTIONS} in @file{mips-bsd.h}.
 
 The MIPS C compiler needs to be told to increase its table size
@@ -1370,12 +1337,14 @@ stage3 object files, and errors when compiling @file{libgcc.a} or
 xlc-1.3.0.0 (distributed with AIX 3.2.5), and xlc-1.3.0.19.  Both
 xlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are known to produce working
 versions of GNU CC, but most other recent releases correctly bootstrap
-GNU CC.  Also, releases of AIX prior to AIX 3.2.4 include a version of
+GNU CC.
+
+Release 4.3.0 of AIX and ones prior to AIX 3.2.4 include a version of
 the IBM assembler which does not accept debugging directives: assembler
 updates are available as PTFs.  Also, if you are using AIX 3.2.5 or
 greater and the GNU assembler, you must have a version modified after
 October 16th, 1995 in order for the GNU C compiler to build.  See the
-file @file{README.RS6000} for more details on of these problems.
+file @file{README.RS6000} for more details on any of these problems.
 
 GNU CC does not yet support the 64-bit PowerPC instructions.
 
@@ -1412,7 +1381,8 @@ PowerPC system in big endian mode, running System V.4.
 You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
 switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
 
-@item powerpc-*-linux-gnu
+@item powerpc-*-linux
+@itemx powerpc-*-linux-gnu
 PowerPC system in big endian mode, running the Linux-based GNU system.
 
 You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
@@ -1927,9 +1897,13 @@ To install the cross-compiler, use @samp{make install}, as usual.
 @cindex Sun installation
 @cindex installing GNU CC on the Sun
 
-On Solaris (version 2.1), do not use the linker or other tools in
+On Solaris, do not use the linker or other tools in
 @file{/usr/ucb} to build GNU CC.  Use @code{/usr/ccs/bin}.
 
+If the assembler reports @samp{Error: misaligned data} when bootstrapping,
+you are probably using an obsolete version of the GNU assembler.  Upgrade
+to the latest version of GNU @code{binutils}, or use the Solaris assembler.
+
 Make sure the environment variable @code{FLOAT_OPTION} is not set when
 you compile @file{libgcc.a}.  If this option were set to @code{f68881}
 when @file{libgcc.a} is compiled, the resulting code would demand to be
@@ -2027,8 +2001,8 @@ $ assign /system /translation=concealed -
 
 @noindent
 with the appropriate disk and directory name.  If you are going to be
-using libg++, this is where the libg++ install procedure will install
-the libg++ header files.
+using a C++ runtime library, this is where its install procedure will install
+its header files.
 
 @item
 Obtain the file @file{gcc-cc1plus.exe}, and place this in the same
@@ -2293,11 +2267,11 @@ stores the fixed include files.  A cross compiled GNU CC runs
 @code{fixincludes} on the header files in @file{$(tooldir)/include}.
 (If the cross compilation header files need to be fixed, they must be
 installed before GNU CC is built.  If the cross compilation header files
-are already suitable for ANSI C and GNU CC, nothing special need be
+are already suitable for ISO C and GNU CC, nothing special need be
 done).
 
-@code{GPLUS_INCLUDE_DIR} means the same thing for native and cross.  It
-is where @code{g++} looks first for header files.  @code{libg++}
+@code{GPLUSPLUS_INCLUDE_DIR} means the same thing for native and cross.  It
+is where @code{g++} looks first for header files.  The C++ library
 installs only target independent header files in that directory.
 
 @code{LOCAL_INCLUDE_DIR} is used only for a native compiler.  It is