aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/install.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/doc/install.texi')
-rw-r--r--gcc/doc/install.texi3583
1 files changed, 3583 insertions, 0 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
new file mode 100644
index 00000000000..43ec56070bf
--- /dev/null
+++ b/gcc/doc/install.texi
@@ -0,0 +1,3583 @@
+\input texinfo.tex @c -*-texinfo-*-
+@c @ifnothtml
+@c %**start of header
+@setfilename install.info
+@settitle Installing GCC
+@setchapternewpage odd
+@c %**end of header
+@c @end ifnothtml
+
+@c Specify title for specific html page
+@ifset indexhtml
+@settitle Installing GCC
+@end ifset
+@ifset specifichtml
+@settitle Host/Target specific installation notes for GCC
+@end ifset
+@ifset downloadhtml
+@settitle Downloading GCC
+@end ifset
+@ifset configurehtml
+@settitle Installing GCC: Configuration
+@end ifset
+@ifset buildhtml
+@settitle Installing GCC: Building
+@end ifset
+@ifset testhtml
+@settitle Installing GCC: Testing
+@end ifset
+@ifset finalinstallhtml
+@settitle Installing GCC: Final installation
+@end ifset
+@ifset binarieshtml
+@settitle Installing GCC: Binaries
+@end ifset
+@ifset gfdlhtml
+@settitle Installing GCC: GNU Free Documentation License
+@end ifset
+
+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
+
+@c Include everything if we're not making html
+@ifnothtml
+@set indexhtml
+@set specifichtml
+@set downloadhtml
+@set configurehtml
+@set buildhtml
+@set testhtml
+@set finalinstallhtml
+@set binarieshtml
+@set gfdlhtml
+@end ifnothtml
+
+@c Part 2 Summary Description and Copyright
+@macro copyrightnotice
+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+1999, 2000, 2001 Free Software Foundation, Inc.
+@sp 1
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, the Front-Cover texts being (a) (see below), and
+with the Back-Cover Texts being (b) (see below). A copy of the
+license is included in the section entitled ``@uref{./gfdl.html,,GNU
+Free Documentation License}''.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@end macro
+@ifinfo
+@copyrightnotice{}
+@end ifinfo
+
+@c Part 3 Titlepage and Copyright
+@titlepage
+@sp 10
+@comment The title is printed in a large font.
+@center @titlefont{Installing GCC}
+
+@c The following two commands start the copyright page.
+@page
+@vskip 0pt plus 1filll
+@copyrightnotice{}
+@end titlepage
+
+@c Part 4 Top node and Master Menu
+@ifinfo
+@node Top, , , (dir)
+@comment node-name, next, Previous, up
+
+@menu
+* Installing GCC:: This document describes the generic installation
+ procedure for GCC as well as detailing some target
+ specific installation instructions.
+
+* Specific:: Host/target specific installation notes for GCC.
+* Binaries:: Where to get pre-compiled binaries.
+
+* GNU Free Documentation License:: How you can copy and share this manual.
+* Concept Index:: This index has two entries.
+@end menu
+@end ifinfo
+
+@c Part 5 The Body of the Document
+@c ***Installing GCC**********************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Installing GCC, Binaries, , Top
+@end ifnothtml
+@ifset indexhtml
+@html
+<h1 align="center">Installing GCC</h1>
+@end html
+@ifnothtml
+@chapter Installing GCC
+@end ifnothtml
+
+The latest version of this document is always available at
+@uref{http://gcc.gnu.org/install/,,http://gcc.gnu.org/install/}.
+
+This document describes the generic installation procedure for GCC as well
+as detailing some target specific installation instructions.
+
+GCC includes several components that previously were separate distributions
+with their own installation instructions. This document supersedes all
+package specific installation instructions.
+
+@emph{Before} starting the build/install procedure please check the
+@ifnothtml
+@ref{Specific, host/target specific installation notes}.
+@end ifnothtml
+@ifnotinfo
+@uref{specific.html,,host/target specific installation notes}.
+@end ifnotinfo
+We recommend you browse the entire generic installation instructions before
+you proceed.
+
+A
+@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,list of successful builds}
+for GCC 3.0 releases is available at our web pages. This list is updated
+as new information becomes available.
+
+The installation procedure itself is broken into five steps.
+
+@ifinfo
+@menu
+* Downloading the source::
+* Configuration::
+* Building::
+* Testing:: (optional)
+* Final install::
+@end menu
+@end ifinfo
+@ifnotinfo
+@enumerate
+@item
+@uref{download.html,,Downloading the source}
+@item
+@uref{configure.html,,Configuration}
+@item
+@uref{build.html,,Building}
+@item
+@uref{test.html,,Testing} (optional)
+@item
+@uref{finalinstall.html,,Final install}
+@end enumerate
+@end ifnotinfo
+
+Please note that GCC does not support @samp{make uninstall} and probably
+won't do so in the near future as this would open a can of worms. Instead,
+we suggest that you install GCC into a directory of its own and simply
+remove that directory when you do not need that specific version of GCC
+any longer, and, if shared libraries are installed there as well, no
+more binaries exist that use them.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+
+@copyrightnotice{}
+@end ifhtml
+@end ifset
+
+@c ***Downloading the source**************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Downloading the source, Configuration, , Installing GCC
+@end ifnothtml
+@ifset downloadhtml
+@html
+<h1 align="center">Downloading GCC</h1>
+@end html
+@ifnothtml
+@chapter Downloading GCC
+@end ifnothtml
+@cindex Downloading GCC
+@cindex Downloading the Source
+
+GCC is distributed via @uref{http://gcc.gnu.org/cvs.html,,CVS} and FTP
+tarballs compressed with @command{gzip} or
+@command{bzip2}. It is possible to download a full distribution or specific
+components.
+
+Please refer to our @uref{http://gcc.gnu.org/releases.html,,releases web page}
+for information on how to obtain GCC@.
+
+The full distribution includes the C, C++, Objective-C, Fortran, Java,
+and CHILL compilers. The full distribution also includes runtime libraries
+for C++, Objective-C, Fortran, Java and CHILL. (GCC 3.0 does not
+include CHILL.) In GCC 3.0 and later versions, GNU compiler testsuites
+are also included in the full distribution.
+
+If you choose to download specific components, you must download the core
+GCC distribution plus any language specific distributions you wish to
+use. The core distribution includes the C language front end as well as the
+shared components. Each language has a tarball which includes the language
+front end as well as the language runtime (when appropriate).
+
+Unpack the core distribution as well as any language specific
+distributions in the same directory.
+
+If you also intend to build binutils (either to upgrade an existing
+installation or for use in place of the corresponding tools of your
+OS), unpack the binutils distribution either in the same directory or
+a separate one. In the latter case, add symbolic links to any
+components of the binutils you intend to build alongside the compiler
+(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
+@file{opcodes}, @dots{}) to the directory containing the GCC sources.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Configuration***********************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Configuration, Building, Downloading the source, Installing GCC
+@end ifnothtml
+@ifset configurehtml
+@html
+<h1 align="center">Installing GCC: Configuration</h1>
+@end html
+@ifnothtml
+@chapter Installing GCC: Configuration
+@end ifnothtml
+@cindex Configuration
+@cindex Installing GCC: Configuration
+
+Like most GNU software, GCC must be configured before it can be built.
+This document describes the recommended configuration procedure
+for both native and cross targets.
+
+We use @var{srcdir} to refer to the toplevel source directory for
+GCC; we use @var{objdir} to refer to the toplevel build/object directory.
+
+If you obtained the sources via CVS, @var{srcdir} must refer to the top
+@file{gcc} directory, the one where the @file{MAINTAINERS} can be found,
+and not its @file{gcc} subdirectory, otherwise the build will fail.
+
+First, we @strong{highly} recommend that GCC be built into a
+separate directory than the sources which does @strong{not} reside
+within the source tree. This is how we generally build GCC; building
+where @var{srcdir} == @var{objdir} should still work, but doesn't
+get extensive testing; building where @var{objdir} is a subdirectory
+of @var{srcdir} is unsupported.
+
+If you have previously built GCC in the same directory for a
+different target machine, do @samp{make distclean} to delete all files
+that might be invalid. One of the files this deletes is
+@file{Makefile}; if @samp{make distclean} complains that @file{Makefile}
+does not exist, it probably means that the directory is already suitably
+clean. However, with the recommended method of building in a separate
+@var{objdir}, you should simply use a different @var{objdir} for each
+target.
+
+Second, when configuring a native system, either @command{cc} or
+@command{gcc} must be in your path or you must set @env{CC} in
+your environment before running configure. Otherwise the configuration
+scripts may fail.
+
+Note that the bootstrap compiler and the resulting GCC must be link
+compatible, else the bootstrap will fail with linker errors about
+incompatible object file formats. Several multilibed targets are
+affected by this requirement, see
+@ifnothtml
+@ref{Specific, host/target specific installation notes}.
+@end ifnothtml
+@ifnotinfo
+@uref{specific.html,,host/target specific installation notes}.
+@end ifnotinfo
+
+To configure GCC:
+
+@example
+ % mkdir @var{objdir}
+ % cd @var{objdir}
+ % @var{srcdir}/configure [@var{options}] [@var{target}]
+@end example
+
+
+@heading Target specification
+@itemize @bullet
+@item
+GCC has code to correctly determine the correct value for @var{target}
+for nearly all native systems. Therefore, we highly recommend you not
+provide a configure target when configuring a native compiler.
+
+@item
+@var{target} must be specified as @option{--target=@var{target}}
+when configuring a cross compiler; examples of valid targets would be
+i960-rtems, m68k-coff, sh-elf, etc.
+
+@item
+Specifying just @var{target} instead of @option{--target=@var{target}}
+implies that the host defaults to @var{target}.
+@end itemize
+
+
+@heading Options specification
+
+Use @var{options} to override several configure time options for
+GCC@. A list of supported @var{options} follows; @command{configure
+--help} may list other options, but those not listed below may not
+work and should not normally be used.
+
+@table @code
+@item --prefix=@var{dirname}
+Specify the toplevel installation
+directory. This is the recommended way to install the tools into a directory
+other than the default. The toplevel installation directory defaults to
+@file{/usr/local}.
+
+We @strong{highly} recommend against @var{dirname} being the same or a
+subdirectory of @var{objdir} or vice versa.
+
+These additional options control where certain parts of the distribution
+are installed. Normally you should not need to use these options.
+@table @code
+
+@item --exec-prefix=@var{dirname}
+Specify the toplevel installation directory for architecture-dependent
+files. The default is @file{@var{prefix}}.
+
+@item --bindir=@var{dirname}
+Specify the installation directory for the executables called by users
+(such as @command{gcc} and @command{g++}). The default is
+@file{@var{exec-prefix}/bin}.
+
+@item --libdir=@var{dirname}
+Specify the installation directory for object code libraries and
+internal parts of GCC@. The default is @file{@var{exec-prefix}/lib}.
+
+@item --with-slibdir=@var{dirname}
+Specify the installation directory for the shared libgcc library. The
+default is @file{@var{libdir}}.
+
+@item --infodir=@var{dirname}
+Specify the installation directory for documentation in info format.
+The default is @file{@var{prefix}/info}.
+
+@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
+are derived by an automatic conversion process from parts of the full
+manual.)
+
+@item --with-gxx-include-dir=@var{dirname}
+Specify
+the installation directory for G++ header files. The default is
+@file{@var{prefix}/include/g++-v3}.
+
+@end table
+
+@item --with-local-prefix=@var{dirname}
+Specify the
+installation directory for local include files. The default is
+@file{/usr/local}. Specify this option if you want the compiler to
+search directory @file{@var{dirname}/include} for locally installed
+header files @emph{instead} of @file{/usr/local/include}.
+
+You should specify @option{--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 @option{--with-local-prefix} is @file{/usr/local}
+regardless of the value of @option{--prefix}. Specifying
+@option{--prefix} has no effect on which directory GCC searches for
+local header files. This may seem counterintuitive, but actually it is
+logical.
+
+The purpose of @option{--prefix} is to specify where to @emph{install
+GCC}. The local header files in @file{/usr/local/include}---if you put
+any in that directory---are not part of GCC@. They are part of other
+programs---perhaps many others. (GCC installs its own header files in
+another directory which is based on the @option{--prefix} value.)
+
+@strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}!
+The directory you use for @option{--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 corrections made by the @code{fixincludes} script.
+
+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 GCC@. Perhaps they make this assumption because
+installing GCC creates the directory.
+
+@item --enable-shared[=@var{package}[,@dots{}]]
+Build shared versions of libraries, if shared libraries are supported on
+the target platform. Unlike GCC 2.95.x and earlier, shared libraries
+are enabled by default on all platforms that support shared libraries,
+except for @samp{libobjc} which is built as a static library only by
+default.
+
+If a list of packages is given as an argument, build shared libraries
+only for the listed packages. For other packages, only static libraries
+will be built. Package names currently recognized in the GCC tree are
+@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not
+@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc} and
+@samp{libjava}. Note that @samp{libobjc} does not recognize itself by
+any name, so, if you list package names in @option{--enable-shared},
+you will only get static Objective-C libraries. @samp{libf2c} and
+@samp{libiberty} do not support shared libraries at all.
+
+Use @option{--disable-shared} to build only static libraries. Note that
+@option{--disable-shared} does not accept a list of package names as
+argument, only @option{--enable-shared} does.
+
+@item @anchor{with-gnu-as}--with-gnu-as
+Specify that the compiler should assume that the
+assembler it finds is the GNU assembler. However, this does not modify
+the rules to find an assembler and will result in confusion if found
+assembler is not actually the GNU assembler. (Confusion will also
+result if the compiler finds the GNU assembler but has not been
+configured with @option{--with-gnu-as}.) If you have more than one
+assembler installed on your system, you may want to use this option in
+connection with @option{--with-as=@var{pathname}}.
+
+The systems where it makes a difference whether you use the GNU assembler are
+@samp{hppa1.0-@var{any}-@var{any}}, @samp{hppa1.1-@var{any}-@var{any}},
+@samp{i386-@var{any}-sysv}, @samp{i386-@var{any}-isc},
+@samp{i860-@var{any}-bsd}, @samp{m68k-bull-sysv},
+@samp{m68k-hp-hpux}, @samp{m68k-sony-bsd},
+@samp{m68k-altos-sysv}, @samp{m68000-hp-hpux},
+@samp{m68000-att-sysv}, @samp{@var{any}-lynx-lynxos},
+and @samp{mips-@var{any}}.
+On any other system, @option{--with-gnu-as} has no effect.
+
+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,
+you should also use the GNU linker (and specify @option{--with-gnu-ld}).
+
+@item --with-as=@var{pathname}
+Specify that the
+compiler should use the assembler pointed to by @var{pathname}, rather
+than the one found by the standard rules to find an assembler, which
+are:
+@itemize @bullet
+@item
+Check the
+@file{@var{exec_prefix}/lib/gcc-lib/@var{target}/@var{version}}
+directory, where @var{exec_prefix} defaults to @var{prefix} which
+defaults to @file{/usr/local} unless overridden by the
+@option{--prefix=@var{pathname}} switch described above. @var{target} is the
+target system triple, such as @samp{sparc-sun-solaris2.7}, and
+@var{version} denotes the GCC version, such as 3.0.
+@item
+Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
+Sun Solaris 2).
+@end itemize
+Note that these rules do not check for the value of @env{PATH}. You may
+want to use @option{--with-as} if no assembler is installed in the
+directories listed above, or if you have multiple assemblers installed
+and want to choose one that is not found by the above rules.
+
+@item @anchor{with-gnu-ld}--with-gnu-ld
+Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
+but for linker.
+
+
+@item --with-ld=@var{pathname}
+Same as
+@option{--with-as}, but for the linker.
+
+@item --with-stabs
+Specify that stabs debugging
+information should be used instead of whatever format the host normally
+uses. Normally GCC uses the same debug format as the host system.
+
+On MIPS based systems and on Alphas, you must specify whether you want
+GCC to create the normal ECOFF debugging format, or to use BSD-style
+stabs passed through the ECOFF symbol table. The normal ECOFF debug
+format cannot fully handle languages other than C@. BSD stabs format can
+handle other languages, but it only works with the GNU debugger GDB@.
+
+Normally, GCC uses the ECOFF debugging format by default; if you
+prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@.
+
+No matter which default you choose when you configure GCC, the user
+can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly
+the debug format for a particular compilation.
+
+@option{--with-stabs} is meaningful on the ISC system on the 386, also, if
+@option{--with-gas} is used. It selects use of stabs debugging
+information embedded in COFF output. This kind of debugging information
+supports C++ well; ordinary COFF debugging information does not.
+
+@option{--with-stabs} is also meaningful on 386 systems running SVR4. It
+selects use of stabs debugging information embedded in ELF output. The
+C++ compiler currently (2.6.0) does not support the DWARF debugging
+information normally used on 386 SVR4 platforms; stabs provide a
+workable alternative. This requires gas and gdb, as the normal SVR4
+tools can not generate or interpret stabs.
+
+@item --disable-multilib
+Specify that multiple target
+libraries to support different target variants, calling
+conventions, etc should not be built. The default is to build a
+predefined set of them.
+
+Some targets provide finer-grained control over which multilibs are built
+(e.g., @option{--disable-softfloat}):
+@table @code
+
+@item arc-*-elf*
+biendian.
+
+@item arm-*-*
+fpu, 26bit, underscore, interwork, biendian, nofmult.
+
+@item m68*-*-*
+softfloat, m68881, m68000, m68020.
+
+@item mips*-*-*
+single-float, biendian, softfloat.
+
+@item powerpc*-*-*, rs6000*-*-*
+aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
+sysv, aix.
+
+@end table
+
+@item --enable-threads
+Specify that the target
+supports threads. This affects the Objective-C compiler and runtime
+library, and exception handling for other languages like C++ and Java.
+On some systems, this is the default.
+
+In general, the best (and, in many cases, the only known) threading
+model available will be configured for use. Beware that on some
+systems, gcc has not been taught what threading models are generally
+available for the system. In this case, @option{--enable-threads} is an
+alias for @option{--enable-threads=single}.
+
+@item --disable-threads
+Specify that threading support should be disabled for the system.
+This is an alias for @option{--enable-threads=single}.
+
+@item --enable-threads=@var{lib}
+Specify that
+@var{lib} is the thread support library. This affects the Objective-C
+compiler and runtime library, and exception handling for other languages
+like C++ and Java. The possibilities for @var{lib} are:
+
+@table @code
+@item aix
+AIX thread support.
+@item dce
+DCE thread support.
+@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
+missing and thus this setting will cause a known bootstrap failure.)
+@item no
+This is an alias for @samp{single}.
+@item posix
+Generic POSIX thread support.
+@item pthreads
+Same as @samp{posix} on arm*-*-linux*, *-*-chorusos* and *-*-freebsd*
+only. A future release of gcc might remove this alias or extend it
+to all platforms.
+@item rtems
+RTEMS thread support.
+@item single
+Disable thread support, should work for all platforms.
+@item solaris
+Sun Solaris 2 thread support.
+@item vxworks
+VxWorks thread support.
+@item win32
+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 the 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 configure script
+for a complete list of supported models.
+
+@item --enable-target-optspace
+Specify that target
+libraries should be optimized for code space instead of code speed.
+This is the default for the m32r platform.
+
+@item --disable-cpp
+Specify that a user visible @command{cpp} program should not be installed.
+
+@item --with-cpp-install-dir=@var{dirname}
+Specify that the user visible @command{cpp} program should be installed
+in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}.
+
+@item --enable-maintainer-mode
+The build rules that
+regenerate the GCC master message catalog @file{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 @option{--enable-maintainer-mode} will enable
+this. Note that you need a recent version of the @code{gettext} tools
+to do so.
+
+@item --enable-version-specific-runtime-libs
+Specify
+that runtime libraries should be installed in the compiler specific
+subdirectory (@file{@var{libsubdir}}) rather than the usual places. In
+addition, @samp{libstdc++}'s include files will be installed in
+@file{@var{libsubdir}/include/g++} unless you overruled it by using
+@option{--with-gxx-include-dir=@var{dirname}}. Using this option is
+particularly useful if you intend to use several versions of GCC in
+parallel. This is currently supported by @samp{libf2c} and
+@samp{libstdc++}, and is the default for @samp{libobjc} which cannot be
+changed in this case.
+
+@item --enable-languages=@var{lang1},@var{lang2},@dots{}
+Specify that only a particular subset of compilers and
+their runtime libraries should be built. For a list of valid values for
+@var{langN} you can issue the following command in the
+@file{gcc} directory of your GCC source tree:@*
+@example
+grep language= */config-lang.in
+@end example
+Currently, you can use any of the following:
+@code{c}, @code{c++}, @code{f77}, @code{java} and @code{objc}.
+@code{CHILL} is not currently maintained, and will almost
+certainly fail to compile.@*
+If you do not pass this flag, all languages available in the @file{gcc}
+sub-tree will be configured. Re-defining @code{LANGUAGES} when calling
+@samp{make bootstrap} @strong{does not} work anymore, as those
+language sub-directories might not have been configured!
+
+@item --disable-libgcj
+Specify that the run-time libraries
+used by GCJ should not be built. This is useful in case you intend
+to use GCJ with some other run-time, or you're going to install it
+separately, or it just happens not to build on your particular
+machine. In general, if the Java front end is enabled, the GCJ
+libraries will be enabled too, unless they're known to not work on
+the target platform. If GCJ is enabled but @samp{libgcj} isn't built, you
+may need to port it; in this case, before modifying the top-level
+@file{configure.in} so that @samp{libgcj} is enabled by default on this platform,
+you may use @option{--enable-libgcj} to override the default.
+
+@item --with-dwarf2
+Specify that the compiler should
+use DWARF 2 debugging information as the default.
+
+@item --enable-win32-registry
+@itemx --enable-win32-registry=@var{key}
+@itemx --disable-win32-registry
+The @option{--enable-win32-registry} option enables Windows-hosted GCC
+to look up installations paths in the registry using the following key:
+
+@smallexample
+@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\@var{key}}
+@end smallexample
+
+@var{key} defaults to GCC version number, and can be overridden by the
+@option{--enable-win32-registry=@var{key}} option. Vendors and distributors
+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 @option{--disable-win32-registry}
+option. This option has no effect on the other hosts.
+
+@item --nfp
+Specify that the machine does not have a floating point unit. This
+option only applies to @samp{m68k-sun-sunos@var{n}} and
+@samp{m68k-isi-bsd}. On any other system, @option{--nfp} has no effect.
+
+@item --enable-checking
+@itemx --enable-checking=@var{list}
+When you specify this option, the compiler is built to perform checking
+of tree node types when referencing fields of that node, and some other
+internal consistency checks. This does not change the generated code,
+but adds error checking within the compiler. This will slow down the
+compiler and may only work properly if you are building the compiler
+with GCC@. This is on by default when building from CVS or snapshots,
+but off for releases. More control over the checks may be had by
+specifying @var{list}; the categories of checks available are
+@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl} and @samp{gcac}. The
+default when @var{list} is not specified is @samp{misc,tree,gc}; the
+checks @samp{rtl} and @samp{gcac} are very expensive.
+
+@item --enable-nls
+@itemx --disable-nls
+The @option{--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 @option{--disable-nls} option disables NLS@.
+
+@item --with-included-gettext
+If NLS is enabled, the @option{--with-included-gettext} option causes the build
+procedure to prefer its copy of GNU @command{gettext}.
+
+@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 @option{--with-catgets} option causes the
+build procedure to use the host's @code{catgets} in this situation.
+
+@item --with-system-zlib
+Use installed zlib rather than that included with GCC@. This option
+only applies if the Java front end is being built.
+@end table
+
+Some options which only apply to building cross compilers:
+@table @code
+@item --with-headers=@var{dir}
+Specifies a directory
+which has target include files.
+@emph{This options is required} when building a cross
+compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist.
+These include files will be copied into the @file{gcc} install directory.
+Fixincludes will be run on these files to make them compatible with
+GCC.
+@item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
+Specifies a list of directories which contain the target runtime
+libraries. These libraries will be copied into the @file{gcc} install
+directory.
+@item --with-newlib
+Specifies that @samp{newlib} is
+being used as the target C library. This causes @code{__eprintf} to be
+omitted from @file{libgcc.a} on the assumption that it will be provided by
+@samp{newlib}.
+@end table
+
+Note that each @option{--enable} option has a corresponding
+@option{--disable} option and that each @option{--with} option has a
+corresponding @option{--without} option.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Building****************************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Building, Testing, Configuration, Installing GCC
+@end ifnothtml
+@ifset buildhtml
+@html
+<h1 align="center">Installing GCC: Building</h1>
+@end html
+@ifnothtml
+@chapter Building
+@end ifnothtml
+@cindex Installing GCC: Building
+
+Now that GCC is configured, you are ready to build the compiler and
+runtime libraries.
+
+We @strong{highly} recommend that GCC be built using GNU make;
+other versions may work, then again they might not.
+
+(For example, many broken versions of make will fail if you use the
+recommended setup where @var{objdir} is different from @var{srcdir}.
+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
+are often due to files that were not found, are expected, and can safely
+be ignored.
+
+It is normal to have compiler warnings when compiling certain files.
+Unless you are a GCC developer, you can generally ignore these warnings
+unless they cause compilation to fail.
+
+On certain old systems, defining certain environment variables such as
+@env{CC} can interfere with the functioning of @command{make}.
+
+If you encounter seemingly strange errors when trying to build the
+compiler in a directory other than the source directory, it could be
+because you have previously configured the compiler in the source
+directory. Make sure you have done all the necessary preparations.
+
+If you build GCC on a BSD system using a directory stored in an old System
+V file system, problems may occur in running @code{fixincludes} if the
+System V file system doesn't support symbolic links. These problems
+result in a failure to fix the declaration of @code{size_t} in
+@file{sys/types.h}. If you find that @code{size_t} is a signed type and
+that type mismatches occur, this could be the cause.
+
+The solution is not to use such a directory for building GCC@.
+
+When building from CVS or snapshots, or if you modify parser sources,
+you need the Bison parser generator installed. Any version 1.25 or
+later should work; older versions may also work. If you do not modify
+parser sources, releases contain the Bison-generated files and you do
+not need Bison installed to build them.
+
+When building from CVS or snapshots, or if you modify Texinfo
+documentation, you need version 4.0 or later of Texinfo installed if you
+want Info documentation to be regenerated. Releases contain Info
+documentation pre-built for the unmodified documentation in the release.
+
+@section Building a native compiler
+
+For a native build issue the command @samp{make bootstrap}. This
+will build the entire GCC system, which includes the following steps:
+
+@itemize @bullet
+@item
+Build host tools necessary to build the compiler such as texinfo, bison,
+gperf.
+
+@item
+Build target tools for use by the compiler such as binutils (bfd,
+binutils, gas, gprof, ld, and opcodes)
+if they have been individually linked
+or moved into the top level GCC source tree before configuring.
+
+@item
+Perform a 3-stage bootstrap of the compiler.
+
+@item
+Perform a comparison test of the stage2 and stage3 compilers.
+
+@item
+Build runtime libraries using the stage3 compiler from the previous step.
+
+@end itemize
+
+If you are short on disk space you might consider @samp{make
+bootstrap-lean} instead. This is identical to @samp{make
+bootstrap} except that object files from the stage1 and
+stage2 of the 3-stage bootstrap of the compiler are deleted as
+soon as they are no longer needed.
+
+
+If you want to save additional space during the bootstrap and in
+the final installation as well, you can build the compiler binaries
+without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g
+-O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}. This will save
+roughly 40% of disk space both for the bootstrap and the final installation.
+(Libraries will still contain debugging information.)
+
+If you wish to use non-default GCC flags when compiling the stage2 and
+stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
+@samp{make bootstrap}. Non-default optimization flags are less well
+tested here than the default of @samp{-g -O2}, but should still work.
+In a few cases, you may find that you need to specify special flags such
+as @option{-msoft-float} here to complete the bootstrap; or, if the
+native compiler miscompiles the stage1 compiler, you may need to work
+around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
+stage1 compiler that were miscompiled, or by using @samp{make
+bootstrap4} to increase the number of stages of bootstrap.
+
+If you used the flag @option{--enable-languages=@dots{}} to restrict
+the compilers to be built, only those you've actually enabled will be
+built. This will of course only build those runtime libraries, for
+which the particular compiler has been built. Please note,
+that re-defining @env{LANGUAGES} when calling @samp{make bootstrap}
+@strong{does not} work anymore!
+
+If the comparison of stage2 and stage3 fails, this normally indicates
+that the stage2 compiler has compiled GCC incorrectly, and is therefore
+a potentially serious bug which you should investigate and report. (On
+a few systems, meaningful comparison of object files is impossible; they
+always appear ``different''. If you encounter this problem, you will
+need to disable comparison in the @file{Makefile}.)
+
+@section Building a cross compiler
+
+We recommend reading the
+@uref{http://www.objsw.com/CrossGCC/,,crossgcc FAQ}
+for information about building cross compilers.
+
+When building a cross compiler, it is not generally possible to do a
+3-stage bootstrap of the compiler. This makes for an interesting problem
+as parts of GCC can only be built with GCC@.
+
+To build a cross compiler, we first recommend building and installing a
+native compiler. You can then use the native GCC compiler to build the
+cross compiler. The installed native compiler needs to be GCC version
+2.95 or later.
+
+Assuming you have already installed a native copy of GCC and configured
+your cross compiler, issue the command @command{make}, which performs the
+following steps:
+
+@itemize @bullet
+@item
+Build host tools necessary to build the compiler such as texinfo, bison,
+gperf.
+
+@item
+Build target tools for use by the compiler such as binutils (bfd,
+binutils, gas, gprof, ld, and opcodes)
+if they have been individually linked or moved into the top level GCC source
+tree before configuring.
+
+@item
+Build the compiler (single stage only).
+
+@item
+Build runtime libraries using the compiler from the previous step.
+@end itemize
+
+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.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Testing*****************************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Testing, Final install, Building, Installing GCC
+@end ifnothtml
+@ifset testhtml
+@html
+<h1 align="center">Installing GCC: Testing</h1>
+@end html
+@ifnothtml
+@chapter Installing GCC: Testing
+@end ifnothtml
+@cindex Testing
+@cindex Installing GCC: Testing
+@cindex Testsuite
+
+Before you install GCC, you might wish to run the testsuite. This
+step is optional and may require you to download additional software.
+
+First, you must have @uref{download.html,,downloaded the testsuites}.
+The full distribution contains testsuites; only if you downloaded the
+``core'' compiler plus any front ends, you do not have the testsuites.
+
+Second, you must have a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu} installed;
+dejagnu 1.3 is not sufficient.
+
+Now you may need specific preparations:
+
+@itemize @bullet
+
+@item
+The following environment variables may need to be set appropriately, as in
+the following example (which assumes that DejaGnu has been installed
+under @file{/usr/local}):
+
+@example
+ TCL_LIBRARY = /usr/local/share/tcl8.0
+ DEJAGNULIBS = /usr/local/share/dejagnu
+@end example
+
+On systems such as Cygwin, these paths are required to be actual
+paths, not mounts or links; presumably this is due to some lack of
+portability in the DejaGnu code.
+
+If the directories where @command{runtest} and @command{expect} were
+installed are in the @env{PATH}, it should not be necessary to set these
+environment variables.
+
+@end itemize
+
+Finally, you can run the testsuite (which may take a long time):
+@example
+ cd @var{objdir}; make -k check
+@end example
+
+The testing process will try to test as many components in the GCC
+distribution as possible, including the C, C++, Objective-C and Fortran
+compilers as well as the C++ and Java runtime libraries.
+
+@section How can I run the test suite on selected tests?
+
+As a first possibility to cut down the number of tests that are run it is
+possible to use @samp{make check-gcc} or @samp{make check-g++}
+in the @file{gcc} subdirectory of the object directory. To further cut down the
+tests the following is possible:
+
+@example
+ make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
+@end example
+
+This will run all @command{gcc} execute tests in the testsuite.
+
+@example
+ make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
+@end example
+
+This will run the @command{g++} ``old-deja'' tests in the testsuite where the filename
+matches @samp{9805*}.
+
+The @file{*.exp} files are located in the testsuite directories of the GCC
+source, the most important ones being @file{compile.exp},
+@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}.
+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.
+
+@section How to interpret test results
+
+After the testsuite has run you'll find various @file{*.sum} and @file{*.log}
+files in the testsuite subdirectories. The @file{*.log} files contain a
+detailed log of the compiler invocations and the corresponding
+results, the @file{*.sum} files summarize the results. These summaries list
+all the tests that have been run with a corresponding status code:
+
+@itemize @bullet
+@item
+PASS: the test passed as expected
+@item
+XPASS: the test unexpectedly passed
+@item
+FAIL: the test unexpectedly failed
+@item
+XFAIL: the test failed as expected
+@item
+UNSUPPORTED: the test is not supported on this platform
+@item
+ERROR: the testsuite detected an error
+@item
+WARNING: the testsuite detected a possible problem
+@end itemize
+
+It is normal for some tests to report unexpected failures. At the
+current time our testing harness does not allow fine grained control
+over whether or not a test is expected to fail. We expect to fix this
+problem in future releases.
+
+
+@section Submitting test results
+
+If you want to report the results to the GCC project, use the
+@file{contrib/test_summary} shell script. Start it in the @var{objdir} with
+
+@example
+ @var{srcdir}/contrib/test_summary -p your_commentary.txt \
+ -m gcc-testresults@@gcc.gnu.org |sh
+@end example
+
+This script uses the @command{Mail} program to send the results, so
+make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is
+prepended to the testsuite summary and should contain any special
+remarks you have on your results or your build environment. Please
+do not edit the testsuite result block or the subject line, as these
+messages are automatically parsed and presented at the
+@uref{http://gcc.gnu.org/testresults/,,GCC testresults} web
+page. Here you can also gather information on how specific tests
+behave on different platforms and compare them with your results. A
+few failing testcases are possible even on released versions and you
+should look here first if you think your results are unreasonable.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Final install***********************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Final install, , Testing, Installing GCC
+@end ifnothtml
+@ifset finalinstallhtml
+@html
+<h1 align="center">Installing GCC: Final installation</h1>
+@end html
+@ifnothtml
+@chapter Installing GCC: Final installation
+@end ifnothtml
+
+Now that GCC has been built (and optionally tested), you can install it with
+@example
+cd @var{objdir}; make install
+@end example
+
+That step completes the installation of GCC; user level binaries can
+be found in @file{@var{prefix}/bin} where @var{prefix} is the value you
+specified with the @option{--prefix} to configure (or @file{/usr/local}
+by default). (If you specified @option{--bindir}, that directory will
+be used instead; otherwise, if you specified @option{--exec-prefix},
+@file{@var{exec-prefix}/bin} will be used.) Headers for the C++ and
+Java libraries are installed in @file{@var{prefix}/include}; libraries
+in @file{@var{libdir}} (normally @file{@var{prefix}/lib}); internal
+parts of the compiler in @file{@var{libdir}/gcc-lib}; documentation in
+info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}).
+
+If you don't mind, please quickly review the
+@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0 build status page}.
+If your system is not listed for the version of GCC that you built,
+send a note to
+@email{gcc@@gcc.gnu.org} indicating
+that you successfully built and installed GCC.
+Include the following information:
+
+@itemize @bullet
+@item
+Output from running @file{@var{srcdir}/config.guess}. Do not send us
+that file itself, just the one-line output from running it.
+
+@item
+The output of @samp{gcc -v} for your newly installed gcc.
+This tells us which version of GCC you built and the options you passed to
+configure.
+
+@item
+If the build was for GNU/Linux, also include:
+@itemize @bullet
+@item
+The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3);
+this information should be available from @file{/etc/issue}.
+
+@item
+The version of the Linux kernel, available from @samp{uname --version}
+or @samp{uname -a}.
+
+@item
+The version of glibc you used; for RPM-based systems like Red Hat,
+Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version,
+and on systems like Debian and Progeny use @samp{dpkg -l libc6}.
+@end itemize
+For other systems, you can include similar information if you think it is
+relevant.
+
+@item
+Any other information that you think would be useful to people building
+GCC on the same configuration. The new entry in the build status list
+will include a link to the archived copy of your message.
+@end itemize
+
+We'd also like to know if the
+@ifnothtml
+@ref{Specific, host/target specific installation notes}
+@end ifnothtml
+@ifhtml
+@uref{specific.html,,host/target specific installation notes}
+@end ifhtml
+didn't include your host/target information or if that information is
+incomplete or out of date. Send a note to
+@email{gcc@@gcc.gnu.org} telling us how the information should be changed.
+
+If you find a bug, please report it following our
+@uref{../bugs.html,,bug reporting guidelines}.
+
+If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
+dvi}. You will need to have @command{texi2dvi} (version at least 4.0)
+and @TeX{} installed. This creates a number of @file{.dvi} files in
+subdirectories of @file{@var{objdir}}; these may be converted for
+printing with programs such as @command{dvips}. You can also
+@uref{http://www.gnu.org/order/order.html,,buy printed manuals from the
+Free Software Foundation}, though such manuals may not be for the most
+recent version of GCC@.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Binaries****************************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Binaries, Specific, Installing GCC, Top
+@end ifnothtml
+@ifset binarieshtml
+@html
+<h1 align="center">Installing GCC: Binaries</h1>
+@end html
+@ifnothtml
+@chapter Installing GCC: Binaries
+@end ifnothtml
+@cindex Binaries
+@cindex Installing GCC: Binaries
+
+We are often asked about pre-compiled versions of GCC@. While we cannot
+provide these for all platforms, below you'll find links to binaries for
+various platforms where creating them by yourself is not easy due to various
+reasons.
+
+Please note that we did not create these binaries, nor do we
+support them. If you have any problems installing them, please
+contact their makers.
+
+@itemize
+@item
+AIX:
+@itemize
+@item
+@uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX};
+
+@item
+@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX};
+@end itemize
+
+@item
+DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP};
+
+@item
+HP-UX:
+@itemize
+@item
+@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center};
+
+@item
+@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
+@end itemize
+
+@item
+@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
+OpenServer/Unixware};
+
+@item
+Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware};
+
+@item
+SGI---@uref{http://freeware.sgi.com/,,SGI Freeware};
+
+@item
+Windows 95, 98, and NT:
+@itemize
+@item
+The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project;
+@item
+@uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32}
+related projects by Mumit Khan.
+@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.
+
+@item
+Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
+Development Tools for the Hitachi H8/300[HS] Series}
+
+@end itemize
+
+In addition to those specific offerings, you can get a binary
+distribution CD-ROM from the
+@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}.
+It contains binaries for a number of platforms, and
+includes not only GCC, but other stuff as well. The current CD does
+not contain the latest version of GCC, but it should allow
+bootstrapping the compiler. An updated version of that disk is in the
+works.
+
+@html
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***Specific****************************************************************
+@ifnothtml
+@comment node-name, next, previous, up
+@node Specific, GNU Free Documentation License, Binaries, Top
+@end ifnothtml
+@ifset specifichtml
+@html
+<h1 align="center">Host/target specific installation notes for GCC</h1>
+@end html
+@ifnothtml
+@chapter Host/target specific installation notes for GCC
+@end ifnothtml
+@cindex Specific
+@cindex Specific installation notes
+@cindex Target specific installation
+@cindex Host specific installation
+@cindex Target specific installation notes
+
+Please read this document carefully @emph{before} installing the
+GNU Compiler Collection on your machine.
+
+A
+@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,list of successful builds}
+for GCC 3.0 releases is available at our web pages. This list is updated
+as new information becomes available.
+
+@ifhtml
+@itemize
+@item
+@uref{#1750a-*-*,,1750a-*-*}
+@item
+@uref{#a29k,,a29k}
+@item
+@uref{#a29k-*-bsd,,a29k-*-bsd}
+@item
+@uref{#alpha*-*-*,,alpha*-*-*}
+@item
+@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
+@item
+@uref{#arc-*-elf,,arc-*-elf}
+@item
+@uref{#arm-*-aout,,arm-*-aout}
+@item
+@uref{#arm-*-elf,,arm-*-elf}
+@item
+@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu}
+@item
+@uref{#arm-*-riscix,,arm-*-riscix}
+@item
+@uref{#avr,,avr}
+@item
+@uref{#c4x,,c4x}
+@item
+@uref{#dos,,DOS}
+@item
+@uref{#dsp16xx,,dsp16xx}
+@item
+@uref{#elxsi-elxsi-bsd,,elxsi-elxsi-bsd}
+@item
+@uref{#*-*-freebsd*,,*-*-freebsd*}
+@item
+@uref{#h8300-hms,,h8300-hms}
+@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}
+@item
+@uref{#i370-*-*,,i370-*-*}
+@item
+@uref{#*-*-linux-gnu,,*-*-linux-gnu}
+@item
+@uref{#ix86-*-linux*oldld,,i?86-*-linux*oldld}
+@item
+@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
+@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}
+@item
+@uref{#ix86-*-isc,,i?86-*-isc}
+@item
+@uref{#ix86-*-esix,,i?86-*-esix}
+@item
+@uref{#ix86-ibm-aix,,i?86-ibm-aix}
+@item
+@uref{#ix86-sequent-bsd,,i?86-sequent-bsd}
+@item
+@uref{#ix86-sequent-ptx1*,,i?86-sequent-ptx1*, i?86-sequent-ptx2*}
+@item
+@uref{#ix86-*-sysv3*,,i?86-*-sysv3*}
+@item
+@uref{#i860-intel-osf*,,i860-intel-osf*}
+@item
+@uref{#ia64-*-linux,,ia64-*-linux}
+@item
+@uref{#*-lynx-lynxos,,*-lynx-lynxos}
+@item
+@uref{#*-ibm-aix*,,*-ibm-aix*}
+@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-altos,,m68k-altos}
+@item
+@uref{#m68k-apple-aux,,m68k-apple-aux}
+@item
+@uref{#m68k-att-sysv,,m68k-att-sysv}
+@item
+@uref{#m68k-bull-sysv,,m68k-bull-sysv}
+@item
+@uref{#m68k-crds-unox,,m68k-crds-unox}
+@item
+@uref{#m68k-hp-hpux,,m68k-hp-hpux}
+@item
+@uref{#m68k-*-nextstep*,,m68k-*-nextstep*}
+@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{#m88k-*-svr3,,m88k-*-svr3}
+@item
+@uref{#m88k-*-dgux,,m88k-*-dgux}
+@item
+@uref{#m88k-tektronix-sysv3,,m88k-tektronix-sysv3}
+@item
+@uref{#mips-*-*,,mips-*-*}
+@item
+@uref{#mips-dec-*,,mips-dec-*}
+@item
+@uref{#mips-mips-bsd,,mips-mips-bsd}
+@item
+@uref{#mips-mips-riscos*,,mips-mips-riscos*}
+@item
+@uref{#mips-sgi-irix4,,mips-sgi-irix4}
+@item
+@uref{#mips-sgi-irix5,,mips-sgi-irix5}
+@item
+@uref{#mips-sgi-irix6,,mips-sgi-irix6}
+@item
+@uref{#mips-sony-sysv,,mips-sony-sysv}
+@item
+@uref{#ns32k-encore,,ns32k-encore}
+@item
+@uref{#ns32k-*-genix,,ns32k-*-genix}
+@item
+@uref{#ns32k-sequent,,ns32k-sequent}
+@item
+@uref{#ns32k-utek,,ns32k-utek}
+@item
+@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4}
+@item
+@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
+@item
+@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
+@item
+@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
+@item
+@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
+@item
+@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
+@item
+@uref{#powerpc-*-eabi,,powerpc-*-eabi}
+@item
+@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
+@item
+@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
+@item
+@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
+@item
+@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
+@item
+@uref{#romp-*-aos,,romp-*-aos, romp-*-mach}
+@item
+@uref{#s390-*-linux*}
+@item
+@uref{#s390x-*-linux*}
+@item
+@uref{#*-*-solaris2*,,*-*-solaris2*}
+@item
+@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
+@item
+@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
+@item
+@uref{#*-*-solaris2.8,,*-*-solaris2.8}
+@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-*-*}
+@item
+@uref{#*-*-sysv*,,*-*-sysv*}
+@item
+@uref{#vax-dec-ultrix,,vax-dec-ultrix}
+@item
+@uref{#we32k-*-*,,we32k-*-*}
+@item
+@uref{#xtensa-*-elf,,xtensa-*-elf}
+@item
+@uref{#xtensa-*-linux*,,xtensa-*-linux*}
+@item
+@uref{#windows,,Microsoft Windows}
+@item
+@uref{#os2,,OS/2}
+@item
+@uref{#older,,Older systems}
+@end itemize
+
+@itemize
+@item
+@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.)
+@end itemize
+@end ifhtml
+
+
+@html
+<!-- -------- host/target specific issues start here ---------------- -->
+<hr>
+@end html
+@heading @anchor{1750a-*-*}1750a-*-*
+MIL-STD-1750A processors.
+
+The MIL-STD-1750A cross configuration produces output for
+@code{as1750}, an assembler/linker available under the GNU General Public
+License for the 1750A@. @code{as1750} can be obtained at
+@uref{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
+A similarly licensed simulator for
+the 1750A is available from same address.
+
+You should ignore a fatal error during the building of @samp{libgcc}
+(@samp{libgcc} is not yet implemented for the 1750A@.)
+
+The @code{as1750} assembler requires the file @file{ms1750.inc}, which is
+found in the directory @file{gcc/config/1750a}.
+
+GCC produced the same sections as the Fairchild F9450 C Compiler,
+namely:
+
+@table @code
+@item Normal
+The program code section.
+
+@item Static
+The read/write (RAM) data section.
+
+@item Konst
+The read-only (ROM) constants section.
+
+@item Init
+Initialization section (code to copy KREL to SREL)@.
+@end table
+
+The smallest addressable unit is 16 bits (@code{BITS_PER_UNIT} is 16). This
+means that type @code{char} is represented with a 16-bit word per character.
+The 1750A's ``Load/Store Upper/Lower Byte'' instructions are not used by
+GCC@.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{a29k}a29k
+AMD Am29k-family processors. These are normally used in embedded
+applications. There are no standard Unix configurations.
+This configuration
+corresponds to AMD's standard calling sequence and binary interface
+and is compatible with other 29k tools.
+
+You may need to make a variant of the file @file{a29k.h} for your
+particular configuration.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{a29k-*-bsd}a29k-*-bsd
+AMD Am29050 used in a system running a variant of BSD Unix.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{alpha*-*-*}alpha*-*-*
+
+This section contains general configuration information for all
+alpha-based platforms using ELF (in particular, ignore this section for
+DEC OSF/1, Digital UNIX and Tru64 UNIX)@. In addition to reading this
+section, please read all other sections that match your target.
+
+We require binutils 2.11.2 or newer.
+Previous binutils releases had a number of problems with DWARF 2
+debugging information, not the least of which is incorrect linking of
+shared libraries.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf*
+Systems using processors that implement the DEC Alpha architecture and
+are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
+Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
+
+In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
+currently (2001-06-13) work with @command{mips-tfile}. As a workaround,
+we need to use the old assembler, invoked via the barely documented
+@option{-oldas} option. To bootstrap GCC, you either need to use the
+Compaq C Compiler:
+
+@example
+ % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}]
+@end example
+
+or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
+
+@example
+ % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}]
+@end example
+
+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. The Java runtime library has been
+reported to work on Tru64 UNIX V4.0F, V5.0, and V5.1, so you may try
+@option{--enable-libgcj} and report your results.
+
+GCC writes a @samp{.verstamp} directive to the assembler output file
+unless it is built as a cross-compiler. It gets the version to use from
+the system header file @file{/usr/include/stamp.h}. If you install a
+new version of DEC Unix, you should rebuild GCC to pick up the new version
+stamp.
+
+Note that since the Alpha is a 64-bit architecture, cross-compilers from
+32-bit machines will not generate code as efficient as that generated
+when the compiler is running on a 64-bit machine because many
+optimizations that depend on being able to represent a word on the
+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
+@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
+@code{stage2} compilations. The option @option{-save-temps} forces a
+fixed name to be used for the assembler input file, instead of a
+randomly chosen name in @file{/tmp}. Do not add @option{-save-temps}
+unless the comparisons fail without that option. If you add
+@option{-save-temps}, you will have to manually delete the @samp{.i} and
+@samp{.s} files after each series of compilations.
+
+GCC now supports both the native (ECOFF) debugging format used by DBX
+and GDB and an encapsulated STABS format for use only with GDB@. See the
+discussion of the @option{--with-stabs} option of @file{configure} above
+for more information on these formats and how to select them.
+
+There is a bug in DEC's assembler that produces incorrect line numbers
+for ECOFF format when the @samp{.align} directive is used. To work
+around this problem, GCC will not emit such alignment directives
+while writing ECOFF format debugging information even if optimization is
+being performed. Unfortunately, this has the very undesirable
+side-effect that code addresses when @option{-O} is specified are
+different depending on whether or not @option{-g} is also specified.
+
+To avoid this behavior, specify @option{-gstabs+} and use GDB instead of
+DBX@. DEC is now aware of this problem with the assembler and hopes to
+provide a fix shortly.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{arc-*-elf}arc-*-elf
+Argonaut ARC processor.
+This configuration is intended for embedded systems.
+
+@html
+</p>
+<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.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{arm-*-elf}arm-*-elf
+This configuration is intended for embedded systems.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu
+
+We require GNU binutils 2.10 or newer.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{arm-*-riscix}arm-*-riscix
+The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.
+If you are running a version of RISC iX prior to 1.2 then you must
+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
+@uref{ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z}. To enable stabs
+debugging, pass @option{--with-gnu-as} to configure.
+
+You will need to install GNU @command{sed} before you can run configure.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{avr}avr
+
+ATMEL AVR-family micro controllers. These are used in embedded
+applications. There are no standard Unix configurations.
+@ifnothtml
+@xref{AVR Options,, AVR Options, gcc, Using and Porting the GNU Compiler
+Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``AVR Options'' in the main manual
+@end ifhtml
+for the list of supported MCU types.
+
+Use @samp{configure --target=avr --enable-languages="c"} to configure GCC@.
+
+Further installation notes and other useful information about AVR tools
+can also be obtained from:
+
+@itemize @bullet
+@item
+@uref{http://home.overta.ru/users/denisc,,http://home.overta.ru/users/denisc}
+@item
+@uref{http://www.amelek.gda.pl/avr,,http://www.amelek.gda.pl/avr}
+@end itemize
+
+We @emph{strongly} recommend using binutils 2.11 or newer.
+
+The following error:
+@example
+ Error: register required
+@end example
+
+indicates that you should upgrade to a newer version of the binutils.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{c4x}c4x
+
+Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
+Processors. These are used in embedded applications. There are no
+standard Unix configurations.
+@ifnothtml
+@xref{TMS320C3x/C4x Options,, TMS320C3x/C4x Options, gcc, Using and
+Porting the GNU Compiler Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``TMS320C3x/C4x Options'' in the main manual
+@end ifhtml
+for the list of supported MCU types.
+
+GCC can be configured as a cross compiler for both the C3x and C4x
+architectures on the same system. Use @samp{configure --target=c4x
+--enable-languages="c,c++"} to configure.
+
+
+Further installation notes and other useful information about C4x tools
+can also be obtained from:
+
+@itemize @bullet
+@item
+@uref{http://www.elec.canterbury.ac.nz/c4x/,,http://www.elec.canterbury.ac.nz/c4x/}
+@end itemize
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{dos}DOS
+
+Please have a look at our @uref{binaries.html,,binaries page}.
+
+You cannot install GCC by itself on MSDOS; it will not compile under
+any MSDOS compiler except itself. You need to get the complete
+compilation package DJGPP, which includes binaries as well as sources,
+and includes all the necessary compilation tools and libraries.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{dsp16xx}dsp16xx
+A port to the AT&T DSP1610 family of processors.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{*-*-freebsd*}*-*-freebsd*
+
+The version of binutils installed in @file{/usr/bin} is known to work unless
+otherwise specified in any per-architecture notes. However, binutils
+2.11 is known to improve overall testsuite results.
+
+For FreeBSD 1, 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
+place. FreeBSD 2.2.7 has been known to bootstrap completely; however,
+it is unknown which version of binutils was used (it is assumed that it
+was the system copy in @file{/usr/bin}) and C++ EH failures were noted.
+
+For FreeBSD using the ELF file format: DWARF 2 debugging is now the
+default for all CPU architectures. It had been the default on
+FreeBSD/alpha since its inception. You may use @option{-gstabs} instead
+of @option{-g}, if you really want the old debugging format. There are
+no known issues with mixing object files and libraries with different
+debugging formats. Otherwise, this release of GCC should now match more
+of the configuration used in the stock FreeBSD configuration of GCC. In
+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 and 5-CURRENT@.
+
+At this time, @option{--enable-threads} is not compatible with
+@option{--enable-libgcj} on FreeBSD@.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd
+The Elxsi's C compiler has known limitations that prevent it from
+compiling GCC@. Please contact @email{mrs@@wrs.com} for more details.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{h8300-hms}h8300-hms
+Hitachi H8/300 series of processors.
+
+Please have a look at our @uref{binaries.html,,binaries page}.
+
+The calling convention and structure layout has changed in release 2.6.
+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.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
+
+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
+assembler.
+
+Specifically, @option{-g} does not work on HP-UX (since that system
+uses a peculiar debugging format which GCC does not know about), unless you
+use GAS and GDB and configure GCC with the
+@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
+@option{--with-as=@dots{}} options.
+
+If you wish to use pa-risc 2.0 architecture support, you must use either
+the HP assembler, gas/binutils 2.11 or a recent
+@uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}.
+
+More specific information to @samp{hppa*-hp-hpux*} targets follows.
+
+@html
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10
+
+For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
+@code{PHCO_19798} from HP@. HP has two sites which provide patches free of
+charge:
+
+@itemize @bullet
+@item
+@html
+<a href="http://us-support.external.hp.com">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
+@end ifnothtml
+@item
+@uref{http://europe-support.external.hp.com,,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}.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11
+
+GCC 3.0 supports HP-UX 11. You must use GNU binutils 2.11 or above on
+this platform. Thread support is not currently implemented for this
+platform, so @option{--enable-threads} does not work.
+See @uref{http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html}
+and @uref{http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html}.
+GCC 2.95.x is not supported under HP-UX 11 and cannot be used to
+compile GCC 3.0. Refer to @uref{binaries.html,,binaries} for information
+about obtaining precompiled GCC binaries for HP-UX.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{i370-*-*}i370-*-*
+This port is very preliminary and has many known bugs. We hope to
+have a higher-quality port for this machine soon.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
+
+If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
+out-of-the-box. You'll get compile errors while building @samp{libstdc++}.
+The patch @uref{glibc-2.2.patch,,glibc-2.2.patch}, that is to be
+applied in the GCC source tree, fixes the compatibility problems.
+
+@html
+</p>
+@end html
+
+@html
+<p>
+@end html
+
+Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
+since the latest exception handling changes for GCC@. Compiling glibc
+with GCC 3.0 will give a binary incompatible glibc and therefore cause
+lots of problems and might make your system completly unusable. This
+will definitly need fixes in glibc but might also need fixes in GCC@. We
+strongly advise to wait for glibc 2.2.4 and to read the release notes of
+glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc
+2.2.3 with GCC 3.0, just do not try to recompile it.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-linux*oldld}i?86-*-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.
+
+@html
+</p>
+<hr>
+@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.
+
+@html
+</p>
+<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.
+
+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
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4
+Use this configuration for SCO release 3.2 version 4.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
+Use this for the SCO OpenServer Release 5 family of operating systems.
+
+Unlike earlier versions of GCC, the ability to generate COFF with this
+target is no longer provided.
+
+Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
+the system debugger to be used. That support was too burdensome to
+maintain. GCC now emits only DWARF 2 for this target. This means you
+may use either the UDK debugger or GDB to debug programs built by this
+version of GCC@.
+
+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://ftp.sco.com/TLS/,,ftp://ftp.sco.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/Supplements/rs505a/,,ftp://ftp.sco.com/Supplements/rs505a/}
+and @uref{ftp://ftp.sco.com/SLS/,,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.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-udk}i?86-*-udk
+
+This target emulates the SCO Universal Development Kit and requires that
+package be installed. (If it is installed, you will have a
+@file{/udk/usr/ccs/bin/cc} file present.) It's very much like the
+@samp{i?86-*-unixware7*} target
+but is meant to be used when hosting on a system where UDK isn't the
+default compiler such as OpenServer 5 or Unixware 2. This target will
+generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
+with the same warnings and caveats as the SCO UDK@.
+
+This target is a little tricky to build because we have to distinguish
+it from the native tools (so it gets headers, startups, and libraries
+from the right place) while making the tools not think we're actually
+building a cross compiler. The easiest way to do this is with a configure
+command like this:
+
+@samp{CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure
+--host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-}
+
+@emph{You should substitute @samp{i686} in the above command with the appropriate
+processor for your host.}
+
+After the usual @samp{make bootstrap} and
+@samp{make install}, you can then access the UDK-targeted GCC
+tools by adding @command{udk-} before the commonly known name. For
+example, to invoke the C compiler, you would use @command{udk-gcc}.
+They will coexist peacefully with any native-target GCC tools you may
+have installed.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-isc}i?86-*-isc
+It may be a good idea to link with GNU malloc instead of the malloc that
+comes with the system.
+
+In ISC version 4.1, @command{sed} core dumps when building
+@file{deduced.h}. Use the version of @command{sed} from version 4.0.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-*-esix}i?86-*-esix
+It may be good idea to link with GNU malloc instead of the malloc that
+comes with the system.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-ibm-aix}i?86-ibm-aix
+You need to use GAS version 2.1 or later, and LD from
+GNU binutils version 2.2 or later.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd
+Go to the Berkeley universe before compiling.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*
+You must install GNU @command{sed} before running @command{configure}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{#ix86-*-sysv3*}i?86-*-sysv3*
+The @code{fixproto} shell script may trigger a bug in the system shell.
+If you encounter this problem, upgrade your operating system or
+use @command{bash} (the GNU shell) to run @code{fixproto}.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{i860-intel-osf*}i860-intel-osf*
+On the Intel Paragon (an i860 machine), if you are using operating
+system version 1.0, you will get warnings or errors about redefinition
+of @code{va_arg} when you build GCC@.
+
+If this happens, then you need to link most programs with the library
+@file{iclib.a}. You must also modify @file{stdio.h} as follows: before
+the lines
+
+@example
+#if defined(__i860__) && !defined(_VA_LIST)
+#include <va_list.h>
+@end example
+
+@noindent
+insert the line
+
+@example
+#if __PGC__
+@end example
+
+@noindent
+and after the lines
+
+@example
+extern int vprintf(const char *, va_list );
+extern int vsprintf(char *, const char *, va_list );
+#endif
+@end example
+
+@noindent
+insert the line
+
+@example
+#endif /* __PGC__ */
+@end example
+
+These problems don't exist in operating system version 1.1.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ia64-*-linux}ia64-*-linux
+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.
+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.
+
+@html
+</p>
+<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.
+
+@html
+</p>
+<hr>
+<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
+@end html
+@heading @anchor{*-ibm-aix*}*-ibm-aix*
+
+AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
+newer is recommended to build on this platform.
+
+Errors involving @code{alloca} when building GCC generally are due
+to an incorrect definition of @code{CC} in the Makefile or mixing files
+compiled with the native C compiler and GCC@. During the stage1 phase of
+the build, the native AIX compiler @strong{must} be invoked as @command{cc}
+(not @command{xlc}). Once @command{configure} has been informed of
+@command{xlc}, one needs to use @samp{make distclean} to remove the
+configure cache files and ensure that @env{CC} environment variable
+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 which
+is not really supported on the platform. The native @command{as} and
+@command{ld} still are recommended. The native AIX tools do
+interoperate with GCC@.
+
+Building @file{libstdc++.a} requires a fix for a AIX Assembler bug
+APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
+
+Linking executables and shared libraries may produce warnings of
+duplicate symbols. The assembly files generated by GCC for AIX always
+have included multiple symbol definitions for certain global variable
+and function declarations in the original program. The warnings should
+not prevent the linker from producing a correct library or runnable
+executable.
+
+GCC's exception handling implementation stores process-specific data in
+the shared library which prevents exception handling from working
+correctly on AIX in a default installation. To work around this, the
+shared objects need to be loaded in the process private segment to
+prevent them from being shared and marked read-only. This is
+accomplished on AIX by installing the shared libraries
+(@file{libgcc_s.a} and @file{libstdc++.a}) with file permissions
+disallowing read-other (@samp{chmod a+x,o-r}). If the shared libraries
+have been used, the shared library segment can be cleaned using the
+@samp{/usr/sbin/slibclean} command.
+
+AIX 4.3 utilizes a ``large format'' archive to support both 32-bit and
+64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
+to parse archive libraries did not handle the new format correctly.
+These routines are used by GCC and result in error messages during
+linking such as ``not a COFF file''. The version of the routines shipped
+with AIX 4.3.1 should work for a 32-bit environment. The @option{-g}
+option of the archive command may be used to create archives of 32-bit
+objects using the original ``small format''. A correct version of the
+routines is shipped with AIX 4.3.2 and above.
+
+Some versions of the AIX binder (linker) can fail with a relocation
+overflow severe error when the @option{-bbigtoc} option is used to link
+GCC-produced object files into an executable that overflows the TOC@. A fix
+for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
+available from IBM Customer Support and from its
+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
+website as PTF U455193.
+
+The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
+with a segmentation fault when invoked by any version of GCC@. A fix for
+APAR IX87327 is available from IBM Customer Support and from its
+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
+website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above.
+
+The initial assembler shipped with AIX 4.3.0 generates incorrect object
+files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
+TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
+website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.
+
+AIX provides National Language Support (NLS)@. Compilers and assemblers
+use NLS to support locale-specific representations of various data
+formats including floating-point numbers (e.g., @samp{.} vs @samp{,} for
+separating decimal fractions). There have been problems reported where
+GCC does not produce the same floating-point formats that the assembler
+expects. If one encounters this problem, set the @env{LANG}
+environment variable to @samp{C} or @samp{En_US}.
+
+By default, GCC for AIX 4.1 and above produces code that can be used on
+both Power or PowerPC processors.
+
+A default can be specified with the @option{-mcpu=@var{cpu_type}}
+switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m32r-*-elf}m32r-*-elf
+Mitsubishi M32R processor.
+This configuration is intended for embedded systems.
+
+@html
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{m6811-elf}m6811-elf
+Motorola 68HC11 family micro controllers. These are used in embedded
+applications. There are no standard Unix configurations.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m6812-elf}m6812-elf
+Motorola 68HC12 family micro controllers. These are used in embedded
+applications. There are no standard Unix configurations.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-altos}m68k-altos
+Altos 3068. You must use the GNU assembler, linker and debugger.
+Also, you must fix a kernel bug.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-apple-aux}m68k-apple-aux
+Apple Macintosh running A/UX@.
+You may configure GCC to use either the system assembler and
+linker or the GNU assembler and linker. You should use the GNU configuration
+if you can, especially if you also want to use G++. You enable
+that configuration with the @option{--with-gnu-as} and @option{--with-gnu-ld}
+options to @code{configure}.
+
+Note the C compiler that comes
+with this system cannot compile GCC@. You can find binaries of GCC
+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.
+
+@html
+</p>
+<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://archive.cis.ohio-state.edu/pub/att7300/}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-bull-sysv}m68k-bull-sysv
+Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GCC works
+either with native assembler or GNU assembler. You can use
+GNU assembler with native COFF generation by providing @option{--with-gnu-as} to
+the configure script or use GNU assembler with stabs-in-COFF encapsulation
+by providing @samp{--with-gnu-as --stabs}. For any problem with the native
+assembler or for availability of the DPX/2 port of GAS, contact
+@email{F.Pierresteguy@@frcl.bull.fr}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-crds-unox}m68k-crds-unox
+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
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
+HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in
+the assembler that prevents compilation of GCC@. This
+bug manifests itself during the first stage of compilation, while
+building @file{libgcc2.a}:
+
+@smallexample
+_floatdisf
+cc1: warning: `-g' option not supported on this version of GCC
+cc1: warning: `-g1' option not supported on this version of GCC
+./xgcc: Internal compiler error: program as got fatal signal 11
+@end smallexample
+
+A patched version of the assembler is available as the file
+@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}. If you
+have HP software support, the patch can also be obtained directly from
+HP, as described in the following note:
+
+@quotation
+This is the patched assembler, to patch SR#1653-010439, where the
+assembler aborts on floating point constants.
+
+The bug is not really in the assembler, but in the shared library
+version of the function ``cvtnum(3c)''. The bug on ``cvtnum(3c)'' is
+SR#4701-078451. Anyway, the attached assembler uses the archive
+library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
+@end quotation
+
+This patch is also known as PHCO_4484.
+
+In addition, 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
+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
+encounter this problem, upgrade your operating system or use BASH (the
+GNU shell) to run @code{fixproto}. This bug will cause the fixproto
+program to report an error of the form:
+
+@example
+./fixproto: sh internal 1K buffer overflow
+@end example
+
+To fix this, you can also change the first line of the fixproto script
+to look like:
+
+@example
+#!/bin/ksh
+@end example
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m68k-*-nextstep*}m68k-*-nextstep*
+
+Current GCC versions probably do not work on version 2 of the NeXT
+operating system.
+
+On NeXTStep 3.0, the Objective-C compiler does not work, due,
+apparently, to a kernel bug that it happens to trigger. This problem
+does not happen on 3.1.
+
+You absolutely @strong{must} use GNU sed and GNU make on this platform.
+
+
+On NeXTSTEP 3.x where x < 3 the build of GCC will abort during
+stage1 with an error message like this:
+
+@example
+ _eh
+ /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
+ /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
+ valued 95 (_).
+@end example
+
+The reason for this is the fact that NeXT's assembler for these
+versions of the operating system does not support the @samp{.section}
+pseudo op that's needed for full C++ exception functionality.
+
+As NeXT's assembler is a derived work from GNU as, a free
+replacement that does can be obtained at
+@uref{ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz,,ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz}.
+
+If you try to build the integrated C++ & C++ runtime libraries on this system
+you will run into trouble with include files. The way to get around this is
+to use the following sequence. Note you must have write permission to
+the directory @var{prefix} you specified in the configuration process of GCC
+for this sequence to work.
+
+@example
+ cd bld-gcc
+ make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+ cd gcc
+ make bootstrap
+ make install-headers-tar
+ cd ..
+ make bootstrap3
+@end example
+
+@html
+</p>
+<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
+</p>
+<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
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{m88k-*-svr3}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
+standard C compiler. There are apparently bugs in this compiler that
+result in object files differences between stage 2 and stage 3. If this
+happens, make the stage 4 compiler and compare it to the stage 3
+compiler. If the stage 3 and stage 4 object files are identical, this
+suggests you encountered a problem with the standard C compiler; the
+stage 3 and 4 compilers may be usable.
+
+It is best, however, to use an older version of GCC for bootstrapping
+if you have one.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m88k-*-dgux}m88k-*-dgux
+Motorola m88k running DG/UX@. To build 88open BCS native or cross
+compilers on DG/UX, specify the configuration name as
+@samp{m88k-*-dguxbcs} and build in the 88open BCS software development
+environment. To build ELF native or cross compilers on DG/UX, specify
+@samp{m88k-*-dgux} and build in the DG/UX ELF development environment.
+You set the software development environment by issuing
+@samp{sde-target} command and specifying either @samp{m88kbcs} or
+@samp{m88kdguxelf} as the operand.
+
+If you do not specify a configuration name, @file{configure} guesses the
+configuration based on the current software development environment.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3
+Tektronix XD88 running UTekV 3.2e. Do not turn on
+optimization while building stage1 if you bootstrap with
+the buggy Green Hills compiler. Also, the bundled LAI
+System V NFS is buggy so if you build in an NFS mounted
+directory, start from a fresh reboot, or avoid NFS all together.
+Otherwise you may have trouble getting clean comparisons
+between stages.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-*-*}mips-*-*
+If you use the 1.31 version of the MIPS assembler (such as was shipped
+with Ultrix 3.1), you will need to use the @option{-fno-delayed-branch} switch
+when optimizing floating point code. Otherwise, the assembler will
+complain when the GCC compiler fills a branch delay slot with a
+floating point instruction, such as @code{add.d}.
+
+If on a MIPS system you get an error message saying ``does not have gp
+sections for all it's [sic] sectons [sic]'', don't worry about it. This
+happens whenever you use GAS with the MIPS linker, but there is not
+really anything wrong, and it is okay to use the output file. You can
+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.
+
+Users have reported some problems with version 2.0 of the MIPS
+compiler tools that were shipped with Ultrix 4.1. Version 2.10
+which came with Ultrix 4.2 seems to work fine.
+
+Users have also reported some problems with version 2.20 of the
+MIPS compiler tools that were shipped with RISC/os 4.x. The earlier
+version 2.11 seems to work fine.
+
+Some versions of the MIPS linker will issue an assertion failure
+when linking code that uses @code{alloca} against shared
+libraries on RISC-OS 5.0, and DEC's OSF/1 systems. This is a bug
+in the linker, that is supposed to be fixed in future revisions.
+To protect against this, GCC passes @option{-non_shared} to the
+linker unless you pass an explicit @option{-shared} or
+@option{-call_shared} switch.
+
+@heading @anchor{mips-mips-bsd}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{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}.
+
+If you use the MIPS C compiler to bootstrap, it may be necessary
+to increase its table size for switch statements with the
+@option{-Wf,-XNg1500} option. If you use the @option{-O2}
+optimization option, you also need to use @option{-Olimit 3000}.
+Both of these options are automatically generated in the
+@file{Makefile} that the shell script @file{configure} builds.
+If you override the @code{CC} make variable and use the MIPS
+compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-dec-*}mips-dec-*
+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 mips-dec-ultrix
+Ultrix configuration.
+
+@item mips-dec-osf1
+DEC's version of OSF/1.
+
+@item mips-dec-osfrose
+Open Software Foundation reference port of OSF/1 which uses the
+OSF/rose object file format instead of ECOFF@. Normally, you
+would not select this configuration.
+@end table
+
+If you use the MIPS C compiler to bootstrap, it may be necessary
+to increase its table size for switch statements with the
+@option{-Wf,-XNg1500} option. If you use the @option{-O2}
+optimization option, you also need to use @option{-Olimit 3000}.
+Both of these options are automatically generated in the
+@file{Makefile} that the shell script @file{configure} builds.
+If you override the @code{CC} make variable and use the MIPS
+compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-mips-riscos*}mips-mips-riscos*
+If you use the MIPS C compiler to bootstrap, it may be necessary
+to increase its table size for switch statements with the
+@option{-Wf,-XNg1500} option. If you use the @option{-O2}
+optimization option, you also need to use @option{-Olimit 3000}.
+Both of these options are automatically generated in the
+@file{Makefile} that the shell script @file{configure} builds.
+If you override the @code{CC} make variable and use the MIPS
+compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
+
+MIPS computers running RISC-OS can support four different
+personalities: default, BSD 4.3, System V.3, and System V.4
+(older versions of RISC-OS don't support V.4). To configure GCC
+for these platforms use the following configurations:
+
+@table @samp
+@item mips-mips-riscos@var{rev}
+Default configuration for RISC-OS, revision @var{rev}.
+
+@item mips-mips-riscos@var{rev}bsd
+BSD 4.3 configuration for RISC-OS, revision @var{rev}.
+
+@item mips-mips-riscos@var{rev}sysv4
+System V.4 configuration for RISC-OS, revision @var{rev}.
+
+@html
+</p>
+<hr>
+@end html
+@item mips-mips-riscos@var{rev}sysv
+System V.3 configuration for RISC-OS, revision @var{rev}.
+@end table
+
+The revision @code{rev} mentioned above is the revision of
+RISC-OS to use. You must reconfigure GCC when going from a
+RISC-OS revision 4 to RISC-OS revision 5. This has the effect of
+avoiding a linker bug.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-sgi-irix4}mips-sgi-irix4
+
+In order to compile GCC on an SGI running IRIX 4, the ``c.hdr.lib''
+option must be installed from the CD-ROM supplied from Silicon Graphics.
+This is found on the 2nd CD in release 4.0.1.
+
+On IRIX version 4.0.5F, and perhaps on some other versions as well,
+there is an assembler bug that reorders instructions incorrectly. To
+work around it, specify the target configuration
+@samp{mips-sgi-irix4loser}. This configuration inhibits assembler
+optimization.
+
+In a compiler configured with target @samp{mips-sgi-irix4}, you can turn
+off assembler optimization by using the @option{-noasmopt} option. This
+compiler option passes the option @option{-O0} to the assembler, to
+inhibit reordering.
+
+The @option{-noasmopt} option can be useful for testing whether a problem
+is due to erroneous assembler reordering. Even if a problem does not go
+away with @option{-noasmopt}, it may still be due to assembler
+reordering---perhaps GCC itself was miscompiled as a result.
+
+You may get the following warning on IRIX 4 platforms, it can be safely
+ignored.
+@example
+ warning: foo.o does not have gp tables for all its sections.
+@end example
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
+
+This configuration has considerable problems, which will be fixed in a
+future release.
+
+In order to compile GCC on an SGI running IRIX 5, the ``compiler_dev.hdr''
+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
+@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
+@code{stage2} compilations. The option @option{-save-temps} forces a
+fixed name to be used for the assembler input file, instead of a
+randomly chosen name in @file{/tmp}. Do not add @option{-save-temps}
+unless the comparisons fail without that option. If you do you
+@option{-save-temps}, you will have to manually delete the @samp{.i} and
+@samp{.s} files after each series of compilations.
+
+If you use the MIPS C compiler to bootstrap, it may be necessary
+to increase its table size for switch statements with the
+@option{-Wf,-XNg1500} option. If you use the @option{-O2}
+optimization option, you also need to use @option{-Olimit 3000}.
+
+To enable debugging under IRIX 5, you must use GNU @command{as} 2.11.2
+or later,
+and use the @option{--with-gnu-as} configure option when configuring GCC.
+GNU @command{as} is distributed as part of the binutils package.
+When using release 2.11.2, you need to apply a patch
+@uref{http://sources.redhat.com/ml/binutils/2001-07/msg00352.html,,http://sources.redhat.com/ml/binutils/2001-07/msg00352.html}
+which will be included in the next release of binutils.
+
+When building GCC, the build process loops rebuilding @command{cc1} over
+and over again. This happens on @samp{mips-sgi-irix5.2}, and possibly
+other platforms. It has been reported that this is a known bug in the
+@command{make} shipped with IRIX 5.2. We recommend you use GNU
+@command{make} instead of the vendor supplied @command{make} program;
+however, you may have success with @command{smake} on IRIX 5.2 if you do
+not have GNU @command{make} available.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
+
+If you are using IRIX @command{cc} as your bootstrap compiler, you must
+ensure that the N32 ABI is in use. To test this, compile a simple C
+file with @command{cc} and then run @command{file} on the
+resulting object file. The output should look like:
+
+@example
+test.o: ELF N32 MSB @dots{}
+@end example
+
+If you see:
+
+@example
+test.o: ELF 32-bit MSB @dots{}
+@end example
+
+or
+
+@example
+test.o: ELF 64-bit MSB @dots{}
+@end example
+
+then your version of @command{cc} uses the O32 or N64 ABI by default. You
+should set the environment variable @env{CC} to @samp{cc -n32}
+before configuring GCC@.
+
+GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If
+you build GCC on a system that doesn't have the N64 libraries installed,
+you need to configure with @option{--disable-multilib} so GCC doesn't
+try to use them. Look for @file{/usr/lib64/libc.so.1} to see if you
+have the 64-bit libraries installed.
+
+You must @emph{not} use GNU @command{as} (which isn't built anyway as of
+binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems.
+
+GCC does not currently support generating O32 ABI binaries in the
+@samp{mips-sgi-irix6} configurations. It is possible to create a GCC
+with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5}
+target and using a patched GNU @command{as} 2.11.2 as documented in the
+@uref{#mips-sgi-irix5,,@samp{mips-sgi-irix5}} section above. Using the
+native assembler requires patches to GCC which will be included in a
+future release. It is
+expected that O32 ABI support will be available again in a future release.
+
+The @option{--enable-threads} option doesn't currently work, a patch is
+in preparation for a future release. The @option{--enable-libgcj}
+option is disabled by default: IRIX 6 uses a very low default limit
+(20480) for the command line length. Although libtool contains a
+workaround for this problem, at least the N64 @samp{libgcj} is known not
+to build despite this, running into an internal error of the native
+@command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to
+its maximum of 262144 bytes. If you have root access, you can use the
+@command{systune} command to do this.
+
+GCC does not correctly pass/return structures which are
+smaller than 16 bytes and which are not 8 bytes. The problem is very
+involved and difficult to fix. It affects a number of other targets also,
+but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
+structures are common. The exact problem is that structures are being padded
+at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes
+of the register when it should be loaded into the upper 4 bytes of the
+register.
+
+GCC is consistent with itself, but not consistent with the SGI C compiler
+(and the SGI supplied runtime libraries), so the only failures that can
+happen are when there are library functions that take/return such
+structures. There are very few such library functions. Currently this
+is known to affect @code{inet_ntoa}, @code{inet_lnaof},
+@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}. Until the
+bug is fixed, GCC contains workarounds for the known affected functions.
+
+See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
+information about using GCC on IRIX platforms.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{mips-sony-sysv}mips-sony-sysv
+Sony MIPS NEWS@. This works in NEWSOS 5.0.1, but not in 5.0.2 (which
+uses ELF instead of COFF)@. Support for 5.0.2 will probably be provided
+soon by volunteers. In particular, the linker does not like the
+code generated by GCC when shared libraries are linked in.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ns32k-encore}ns32k-encore
+Encore ns32000 system. Encore systems are supported only under BSD@.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ns32k-*-genix}ns32k-*-genix
+National Semiconductor ns32000 system. Genix has bugs in @code{alloca}
+and @code{malloc}; you must get the compiled versions of these from GNU
+Emacs.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ns32k-sequent}ns32k-sequent
+Go to the Berkeley universe before compiling.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ns32k-utek}ns32k-utek
+UTEK ns32000 system (``merlin''). The C compiler that comes with this
+system cannot compile GCC; contact @samp{tektronix!reed!mason} to get
+binaries of GCC for bootstrapping.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc*-*-*}powerpc-*-*
+
+You can specify a default version for the @option{-mcpu=@var{cpu_type}}
+switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
+PowerPC system in big endian mode, running System V.4.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
+
+You will need
+@uref{ftp://ftp.varesearch.com/pub/support/hjl/binutils,,binutils 2.9.4.0.8}
+or newer for a working GCC@. It is strongly recommended to recompile binutils
+if you initially built it with gcc-2.7.2.x.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
+PowerPC system in big endian mode running NetBSD@. To build the
+documentation you will need Texinfo version 4.0 (NetBSD 1.5.1 included
+Texinfo version 3.12).
+
+@html
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
+Embedded PowerPC system in big endian mode for use in running under the
+PSIM simulator.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
+Embedded PowerPC system in big endian mode.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
+PowerPC system in little endian mode, running System V.4.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
+Embedded PowerPC system in little endian mode for use in running under
+the PSIM simulator.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
+Embedded PowerPC system in little endian mode.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
+PowerPC system in little endian mode running Windows NT@.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach
+The only operating systems supported for the IBM RT PC are AOS and
+MACH@. GCC does not support AIX running on the RT@. We recommend you
+compile GCC with an earlier version of itself; if you compile GCC
+with @command{hc}, the Metaware compiler, it will work, but you will get
+mismatches between the stage 2 and stage 3 compilers in various files.
+These errors are minor differences in some floating-point constants and
+can be safely ignored; the stage 3 compiler is correct.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{s390-*-linux*}s390-*-linux*
+IBM S/390 system running Linux for S/390.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{s390x-*-linux*}s390x-*-linux*
+IBM zSeries system (64 bit) running Linux for zSeries.
+
+@html
+</p>
+<hr>
+@end html
+@c Please use Solaris 2 to refer to all release of Solaris, starting
+@c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for
+@c SunOS 4 releases which we don't use to avoid confusion. Solaris
+@c alone is too unspecific and must be avoided.
+@heading @anchor{*-*-solaris2*}*-*-solaris2*
+
+Sun does not ship a C compiler with Solaris 2. To bootstrap and install
+GCC you first have to install a pre-built compiler, see 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 and run @command{make bootstrap} again.
+Another possibility that sometimes helps is to remove
+@file{*-*-solaris2*/config.cache}.
+
+Solaris 2 comes with a number of optional OS packages. Some of these
+packages 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
+the packages that GCC needs are installed.
+
+To check whether an optional package is installed, use
+the @command{pkginfo} command. To add an optional package, use the
+@command{pkgadd} command. For further details, see the Solaris 2
+documentation.
+
+Trying to use the linker and other tools in
+@file{/usr/ucb} to install GCC has been observed to cause trouble.
+For example, the linker may hang indefinitely. The fix is to remove
+@file{/usr/ucb} from your @env{PATH}.
+
+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}).
+
+Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
+newer: @command{g++} will complain that types are missing. These headers assume
+that omitting the type means @code{int}; this assumption worked for C89 but
+is wrong for C++, and is now wrong for C99 also.
+
+@command{g++} accepts such (invalid) constructs with the option
+@option{-fpermissive}; it
+will assume that any missing type is @code{int} (as defined by C89).
+
+There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
+106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
+108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
+108653-22 for Intel) that fix this bug.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
+
+Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
+A typical error message might look similar to the following:
+
+@samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041:
+error: can't compute value of an expression involving an external symbol.}
+
+This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris
+2.6 and has been fixed in later (5.x) versions of the assembler,
+starting with Solaris 7.
+
+Starting with Solaris 7, the operating system is capable of executing
+64-bit SPARC V9 binaries. GCC 3.0 doesn't properly support this yet.
+Although some patches or recipes to enable this support have been posted
+to various newsgroups and mailing lists, we recommend against using
+them, since the compiler may either crash or, worse, silently generate
+bad code. If you really need this capability now, you might try a CVS
+version of GCC 3.1, which will fully support this. If all you want is
+code tuned for the UltraSPARC CPU, you should try the
+@option{-mtune=ultrasparc} option instead, which should be safe from
+those bugs and produce code that, unlike full 64-bit code, can still run
+on non-UltraSPARC machines.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
+
+Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
+the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
+and later, including all EGCS releases. Sun formerly recommended
+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
+recommend it only for people who use Sun's compilers.
+
+Here are some workarounds to this problem:
+@itemize @bullet
+@item
+Do not install Sun patch 107058-01 until after Sun releases a
+complete patch for bug 4210064. This is the simplest course to take,
+unless you must also use Sun's C compiler. Unfortunately 107058-01
+is preinstalled on some new Solaris 7-based hosts, so you may have to
+back it out.
+
+@item
+Copy the original, unpatched Solaris 7
+@command{/usr/ccs/bin/as} into
+@command{/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.0/as},
+adjusting the latter name to fit your local conventions and software
+version numbers.
+
+@item
+Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
+both 107058-01 and 106950-03 installed has reported the bug with GCC
+and Sun's dynamic linker. This last course of action is riskiest,
+for two reasons. First, you must install 106950 on all hosts that
+run code generated by GCC; it doesn't suffice to install it only on
+the hosts that run GCC itself. Second, Sun says that 106950-03 is
+only a partial fix for bug 4210064, but Sun doesn't know whether the
+partial fix is adequate for GCC@. Revision -08 or later should fix
+the bug. The current (as of 2001-09-24) revision is -14, and is included in
+the Solaris 7 Recommended Patch Cluster.
+@end itemize
+
+
+@html
+<p>
+<hr>
+@end html
+@heading @anchor{*-*-solaris2.8}*-*-solaris2.8
+
+The Solaris 8 linker fails to link some @samp{libjava} programs if
+previously-installed GCC java libraries already exist in the configured
+prefix. For this reason, @samp{libgcj} is disabled by default on Solaris 8.
+If you use GNU @command{ld}, or if you don't have a previously-installed @samp{libgcj} in
+the same prefix, use @option{--enable-libgcj} to build and install the
+Java libraries.
+
+@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
+</p>
+<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.
+
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{sparc-*-linux*}sparc-*-linux*
+
+GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
+or newer on this platform. All earlier binutils and glibc
+releases mishandled unaligned relocations on @code{sparc-*-*} targets.
+
+
+@html
+</p>
+<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
+</p>
+<hr>
+@end html
+@heading @anchor{#*-*-sysv*}*-*-sysv*
+On System V release 3, you may get this error message
+while linking:
+
+@smallexample
+ld fatal: failed to write symbol name @var{something}
+ in strings table for file @var{whatever}
+@end smallexample
+
+This probably indicates that the disk is full or your ulimit won't allow
+the file to be as large as it needs to be.
+
+This problem can also result because the kernel parameter @code{MAXUMEM}
+is too small. If so, you must regenerate the kernel and make the value
+much larger. The default value is reported to be 1024; a value of 32768
+is said to work. Smaller values may also work.
+
+On System V, if you get an error like this,
+
+@example
+/usr/local/lib/bison.simple: In function `yyparse':
+/usr/local/lib/bison.simple:625: virtual memory exhausted
+@end example
+
+@noindent
+that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
+
+On a System V release 4 system, make sure @file{/usr/bin} precedes
+@file{/usr/ucb} in @code{PATH}. The @code{cc} command in
+@file{/usr/ucb} uses libraries which have bugs.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
+Don't try compiling with VAX C (@code{vcc}). It produces incorrect code
+in some cases (for example, when @code{alloca} is used).
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{we32k-*-*}we32k-*-*
+These computers are also known as the 3b2, 3b5, 3b20 and other similar
+names. (However, the 3b1 is actually a 68000.)
+
+Don't use @option{-g} when compiling with the system's compiler. The
+system's linker seems to be unable to handle such a large program with
+debugging information.
+
+The system's compiler runs out of capacity when compiling @file{stmt.c}
+in GCC@. You can work around this by building @file{cpp} in GCC
+first, then use that instead of the system's preprocessor with the
+system's C compiler to compile @file{stmt.c}. Here is how:
+
+@smallexample
+mv /lib/cpp /lib/cpp.att
+cp cpp /lib/cpp.gnu
+echo '/lib/cpp.gnu -traditional $@{1+"$@@"@}' > /lib/cpp
+chmod +x /lib/cpp
+@end smallexample
+
+The system's compiler produces bad code for some of the GCC
+optimization files. So you must build the stage 2 compiler without
+optimization. Then build a stage 3 compiler with optimization.
+That executable should work. Here are the necessary commands:
+
+@smallexample
+make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
+make stage2
+make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
+@end smallexample
+
+You may need to raise the ULIMIT setting to build a C++ compiler,
+as the file @file{cc1plus} is larger than one megabyte.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{xtensa-*-elf}xtensa-*-elf
+
+This target is intended for embedded Xtensa systems using the
+@samp{newlib} C library. It uses ELF but does not support shared
+objects. Designed-defined instructions specified via the
+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
+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,
+which you can use to replace the default header file.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{xtensa-*-linux*}xtensa-*-linux*
+
+This target is for Xtensa systems running GNU/Linux. It supports ELF
+shared objects and the GNU C library (glibc). It also generates
+position-independent code (PIC) regardless of whether the
+@option{-fpic} or @option{-fPIC} options are used. In other
+respects, this target is the same as the
+@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{windows}Microsoft Windows (32 bit)
+
+A port of GCC 2.95.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.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{os2}OS/2
+
+GCC does not currently support OS/2. However, Andrew Zabolotny has been
+working on a generic OS/2 port with pgcc. The current code can be found
+at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}.
+
+An older copy of GCC 2.8.1 is included with the EMX tools available at
+@uref{ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/,,
+ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{older}Older systems
+
+GCC contains support files for many older (1980s and early
+1990s) Unix variants. For the most part, support for these systems
+has not been deliberately removed, but it has not been maintained for
+several years and may suffer from bitrot. Support from some systems
+has been removed from GCC 3: fx80, ns32-ns-genix, pyramid, tahoe,
+gmicro, spur; most of these targets had not been updated since GCC
+version 1.
+
+Support for older systems as targets for cross-compilation is less
+problematic than support for them as hosts for GCC; if an enthusiast
+wishes to make such a target work again (including resurrecting any
+of the targets that never worked with GCC 2, starting from the last
+CVS version before they were removed), patches
+@uref{../contribute.html,,following the usual requirements}
+would be likely to be accepted, since they should not affect the
+support for more modern targets.
+
+Support for old systems as hosts for GCC can cause problems if the
+workarounds for compiler, library and operating system bugs affect the
+cleanliness or maintainability of the rest of GCC@. In some cases, to
+bring GCC up on such a system, if still possible with current GCC, may
+require first installing an old version of GCC which did work on that
+system, and using it to compile a more recent GCC, to avoid bugs in
+the vendor compiler. Old releases of GCC 1 and GCC 2 are available in
+the @file{old-releases} directory on the
+@uref{../mirrors.html,,GCC mirror sites}. Header bugs may generally
+be avoided using @command{fixincludes}, but bugs or deficiencies in
+libraries and the operating system may still cause problems.
+
+For some systems, old versions of GNU binutils may also be useful,
+and are available from @file{pub/binutils/old-releases} on
+@uref{http://sources.redhat.com/mirrors.html,,sources.redhat.com mirror sites}.
+
+Some of the information on specific systems above relates to
+such older systems, but much of the information
+about GCC on such systems (which may no longer be applicable to
+current GCC) is to be found in the GCC texinfo manual.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.)
+
+C++ support is significantly better on ELF targets if you use the
+@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of
+inlines, vtables and template instantiations will be discarded
+automatically.
+
+
+@html
+</p>
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***GFDL********************************************************************
+@ifset gfdlhtml
+@include fdl.texi
+@html
+</p>
+<hr>
+<p>
+@end html
+@ifhtml
+@uref{./index.html,,Return to the GCC Installation page}
+@end ifhtml
+@end ifset
+
+@c ***************************************************************************
+@c Part 6 The End of the Document
+@ifinfo
+@comment node-name, next, previous, up
+@node Concept Index, , GNU Free Documentation License, Top
+@end ifinfo
+
+@ifinfo
+@unnumbered Concept Index
+
+@printindex cp
+
+@contents
+@end ifinfo
+@bye