@c Part 2 Summary Description and Copyright
@copying
-Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+2008 Free Software Foundation, Inc.
@sp 1
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
@command{zsh} is not a fully compliant POSIX shell and will not
work when configuring GCC@.
+@item A POSIX or SVR4 awk
+
+Necessary for creating some of the generated source files for GCC@.
+If in doubt, use a recent GNU awk version, as some of the older ones
+are broken. GNU awk version 3.1.5 is known to work.
+
@item GNU binutils
Necessary in some circumstances, optional in others. See the
Necessary to build GCC@. If you do not have it installed in your
library search path, you will have to configure with the
-@option{--with-gmp} configure option. See also
-@option{--with-gmp-lib} and @option{--with-gmp-include}.
+@option{--with-gmp} configure option. See also @option{--with-gmp-lib}
+and @option{--with-gmp-include}. Alternatively, if a GMP source
+distribution is found in a subdirectory of your GCC sources named
+@file{gmp}, it will be built together with GCC@.
-@item MPFR Library version 2.3.0 (or later)
+@item MPFR Library version 2.3.2 (or later)
Necessary to build GCC@. It can be downloaded from
@uref{http://www.mpfr.org/}. The version of MPFR that is bundled with
to the recommended version of MPFR.
The @option{--with-mpfr} configure option should be used if your MPFR
-Library is not installed in your default library search path. See
-also @option{--with-mpfr-lib} and @option{--with-mpfr-include}.
+Library is not installed in your default library search path. See also
+@option{--with-mpfr-lib} and @option{--with-mpfr-include}.
+Alternatively, if a MPFR source distribution is found in a subdirectory
+of your GCC sources named @file{mpfr}, it will be built together with
+GCC@.
+
+@item Parma Polyhedra Library (PPL) version 0.10
+
+Necessary to build GCC with the Graphite loop optimizations.
+It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
+
+The @option{--with-ppl} configure option should be used if PPL is not
+installed in your default library search path.
+
+@item CLooG-PPL version 0.15
+
+Necessary to build GCC with the Graphite loop optimizations. It can
+be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
+The code in @file{cloog-ppl-0.15.tar.gz} comes from a branch of CLooG
+available from @uref{http://repo.or.cz/w/cloog-ppl.git}. CLooG-PPL
+should be configured with @option{--with-ppl}.
+
+The @option{--with-cloog} configure option should be used if CLooG is
+not installed in your default library search path.
@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip})
files are not included in the SVN repository. They are included in
releases.
-@item Texinfo version 4.4 (or later)
+@item Texinfo version 4.7 (or later)
Necessary for running @command{makeinfo} when modifying @file{*.texi}
files to test your changes.
@uref{ftp://sourceware.org/pub/java/}, or by running the script
@command{contrib/download_ecj}.
+@item antlr.jar version 2.7.1 (or later)
+@itemx antlr binary
+
+If you wish to build the @command{gjdoc} binary in libjava, you will
+need to have a @file{antlr.jar} library available. The library is
+searched in system locations but can be configured with
+@option{--with-antlr-jar=} instead. When configuring with
+@option{--enable-java-maintainer-mode}, you will need to have one of
+the executables named @command{cantlr}, @command{runantlr} or
+@command{antlr} in your path.
+
@end table
@html
(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
@file{opcodes}, @dots{}) to the directory containing the GCC sources.
+Likewise, the GMP and MPFR libraries can be automatically built together
+with GCC. Unpack the GMP and/or MPFR source distributions in the
+directory containing the GCC sources and rename their directories to
+@file{gmp} and @file{mpfr}, respectively (or use symbolic links with the
+same name).
+
@html
<hr />
<p>
@item --libexecdir=@var{dirname}
Specify the installation directory for internal executables of GCC@.
- The default is @file{@var{exec-prefix}/libexec}.
+The default is @file{@var{exec-prefix}/libexec}.
@item --with-slibdir=@var{dirname}
Specify the installation directory for the shared libgcc library. The
@itemize @bullet
@item @samp{hppa1.0-@var{any}-@var{any}}
@item @samp{hppa1.1-@var{any}-@var{any}}
-@item @samp{i386-@var{any}-sysv}
-@item @samp{m68k-bull-sysv}
-@item @samp{m68k-hp-hpux}
-@item @samp{m68000-hp-hpux}
-@item @samp{m68000-att-sysv}
@item @samp{sparc-sun-solaris2.@var{any}}
@item @samp{sparc64-@var{any}-solaris2.@var{any}}
@end itemize
This is an alias for @option{--enable-tls=no}.
@item --with-cpu=@var{cpu}
+@itemx --with-cpu-32=@var{cpu}
+@itemx --with-cpu-64=@var{cpu}
Specify which cpu variant the compiler should generate code for by default.
@var{cpu} will be used as the default value of the @option{-mcpu=} switch.
This option is only supported on some targets, including ARM, i386, M68k,
-PowerPC, and SPARC@.
+PowerPC, and SPARC@. The @option{--with-cpu-32} and
+@option{--with-cpu-64} options specify separate default CPUs for
+32-bit and 64-bit modes; these options are only supported for i386 and
+x86-64.
@item --with-schedule=@var{cpu}
@itemx --with-arch=@var{cpu}
+@itemx --with-arch-32=@var{cpu}
+@itemx --with-arch-64=@var{cpu}
@itemx --with-tune=@var{cpu}
+@itemx --with-tune-32=@var{cpu}
+@itemx --with-tune-64=@var{cpu}
@itemx --with-abi=@var{abi}
@itemx --with-fpu=@var{type}
@itemx --with-float=@var{type}
On MIPS targets, make @option{-mno-llsc} the default when no
@option{-mllsc} option is passed.
+@item --with-mips-plt
+On MIPS targets, make use of copy relocations and PLTs.
+These features are extensions to the traditional
+SVR4-based MIPS ABIs and require support from GNU binutils
+and the runtime C library.
+
@item --enable-__cxa_atexit
Define if you want to use __cxa_atexit, rather than atexit, to
register C++ destructors for local statics and global objects.
See ``RS/6000 and PowerPC Options'' in the main manual
@end ifhtml
+@item --enable-cld
+This option enables @option{-mcld} by default for 32-bit x86 targets.
+@ifnothtml
+@xref{i386 and x86-64 Options,, i386 and x86-64 Options, gcc,
+Using the GNU Compiler Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``i386 and x86-64 Options'' in the main manual
+@end ifhtml
+
@item --enable-win32-registry
@itemx --enable-win32-registry=@var{key}
@itemx --disable-win32-registry
@itemx --enable-decimal-float=dpd
@itemx --disable-decimal-float
Enable (or disable) support for the C decimal floating point extension
-that is in the IEEE 754R extension to the IEEE754 floating point
-standard. This is enabled by default only on PowerPC, i386, and
-x86_64 GNU/Linux systems. Other systems may also support it, but
-require the user to specifically enable it. You can optionally
-control which decimal floating point format is used (either @samp{bid}
-or @samp{dpd}). The @samp{bid} (binary integer decimal) format is
-default on i386 and x86_64 systems, and the @samp{dpd} (densely packed
-decimal) format is default on PowerPC systems.
+that is in the IEEE 754-2008 standard. This is enabled by default only
+on PowerPC, i386, and x86_64 GNU/Linux systems. Other systems may also
+support it, but require the user to specifically enable it. You can
+optionally control which decimal floating point format is used (either
+@samp{bid} or @samp{dpd}). The @samp{bid} (binary integer decimal)
+format is default on i386 and x86_64 systems, and the @samp{dpd}
+(densely packed decimal) format is default on PowerPC systems.
@item --enable-fixed-point
@itemx --disable-fixed-point
shorthand assumptions are not correct, you can use the explicit
include and lib options directly.
+@item --with-ppl=@var{pathname}
+@itemx --with-ppl-include=@var{pathname}
+@itemx --with-ppl-lib=@var{pathname}
+@itemx --with-cloog=@var{pathname}
+@itemx --with-cloog-include=@var{pathname}
+@itemx --with-cloog-lib=@var{pathname}
+If you do not have PPL (the Parma Polyhedra Library) and the CLooG
+libraries installed in a standard location and you want to build GCC,
+you can explicitly specify the directory where they are installed
+(@samp{--with-ppl=@var{pplinstalldir}},
+@samp{--with-cloog=@var{clooginstalldir}}). The
+@option{--with-ppl=@var{pplinstalldir}} option is shorthand for
+@option{--with-ppl-lib=@var{pplinstalldir}/lib} and
+@option{--with-ppl-include=@var{pplinstalldir}/include}. Likewise the
+@option{--with-cloog=@var{clooginstalldir}} option is shorthand for
+@option{--with-cloog-lib=@var{clooginstalldir}/lib} and
+@option{--with-cloog-include=@var{clooginstalldir}/include}. If these
+shorthand assumptions are not correct, you can use the explicit
+include and lib options directly.
+
@item --with-debug-prefix-map=@var{map}
Convert source directory names using @option{-fdebug-prefix-map} when
building runtime libraries. @samp{@var{map}} is a space-separated
dependencies when statically linking to libgcj. However it makes it
impossible to override the affected portions of libgcj at run-time.
+@item --enable-reduced-reflection
+Build most of libgcj with @option{-freduced-reflection}. This reduces
+the size of libgcj at the expense of not being able to do accurate
+reflection on the classes it contains. This option is safe if you
+know that code using libgcj will never use reflection on the standard
+runtime classes in libgcj (including using serialization, RMI or CORBA).
+
@item --with-ecos
Enable runtime eCos target support.
@item --with-win32-nlsapi=ansi, unicows or unicode
Indicates how MinGW @samp{libgcj} translates between UNICODE
characters and the Win32 API@.
+
+@item --enable-java-home
+If enabled, this creates a JPackage compatible SDK environment during install.
+Note that if --enable-java-home is used, --with-arch-directory=ARCH must also
+be specified.
+
+@item --with-arch-directory=ARCH
+Specifies the name to use for the @file{jre/lib/ARCH} directory in the SDK
+environment created when --enable-java-home is passed. Typical names for this
+directory include i386, amd64, ia64, etc.
+
+@item --with-os-directory=DIR
+Specifies the OS directory for the SDK include directory. This is set to auto
+detect, and is typically 'linux'.
+
+@item --with-origin-name=NAME
+Specifies the JPackage origin name. This defaults to the 'gcj' in
+java-1.5.0-gcj.
+
+@item --with-arch-suffix=SUFFIX
+Specifies the suffix for the sdk directory. Defaults to the empty string.
+Examples include '.x86_64' in 'java-1.5.0-gcj-1.5.0.0.x86_64'.
+
+@item --with-jvm-root-dir=DIR
+Specifies where to install the SDK. Default is $(prefix)/lib/jvm.
+
+@item --with-jvm-jar-dir=DIR
+Specifies where to install jars. Default is $(prefix)/lib/jvm-exports.
+
+@item --with-python-dir=DIR
+Specifies where to install the Python modules used for aot-compile. DIR should
+not include the prefix used in installation. For example, if the Python modules
+are to be installed in /usr/lib/python2.5/site-packages, then
+--with-python-dir=/lib/python2.5/site-packages should be passed. If this is
+not specified, then the Python modules are installed in $(prefix)/share/python.
+
+@item --enable-aot-compile-rpm
+Adds aot-compile-rpm to the list of installed scripts.
+
@table @code
@item ansi
Use the single-byte @code{char} and the Win32 A functions natively,
build the C front end.
When building from SVN or snapshots, or if you modify Texinfo
-documentation, you need version 4.4 or later of Texinfo installed if you
+documentation, you need version 4.7 or later of Texinfo installed if you
want Info documentation to be regenerated. Releases contain Info
documentation pre-built for the unmodified documentation in the release.
@section Building the Ada compiler
In order to build GNAT, the Ada compiler, you need a working GNAT
-compiler (GNAT version 3.14 or later, or GCC version 3.1 or later).
+compiler (GCC version 3.4 or later).
This includes GNAT tools such as @command{gnatmake} and
@command{gnatlink}, since the Ada front end is written in Ada and
uses some GNAT-specific extensions.
@uref{../bugs.html,,bug reporting guidelines}.
If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
-dvi}. You will need to have @command{texi2dvi} (version at least 4.4)
+dvi}. You will need to have @command{texi2dvi} (version at least 4.7)
and @TeX{} installed. This creates a number of @file{.dvi} files in
subdirectories of @file{@var{objdir}}; these may be converted for
printing with programs such as @command{dvips}. Alternately, by using
@uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX};
@item
-@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Softeware for IBM System p};
+@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Software for IBM System p};
@item
@uref{http://www.perzl.org/aix,,AIX 5L and 6 Open Source Packages}.
@item
@uref{#alpha-dec-osf,,alpha*-dec-osf*}
@item
-@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*}
-@item
@uref{#arc-x-elf,,arc-*-elf}
@item
@uref{#arm-x-elf,,arm-*-elf}
@uref{#arm-x-coff,,arm-*-coff}
@uref{#arm-x-aout,,arm-*-aout}
@item
-@uref{#xscale-x-x,,xscale-*-*}
-@item
@uref{#avr,,avr}
@item
@uref{#bfin,,Blackfin}
@item
@uref{#x-x-linux-gnu,,*-*-linux-gnu}
@item
-@uref{#ix86-x-linuxaout,,i?86-*-linux*aout}
-@item
@uref{#ix86-x-linux,,i?86-*-linux*}
@item
-@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*}
-@item
@uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
@item
-@uref{#ix86-x-udk,,i?86-*-udk}
-@item
@uref{#ia64-x-linux,,ia64-*-linux}
@item
@uref{#ia64-x-hpux,,ia64-*-hpux*}
@item
@uref{#m68k-x-x,,m68k-*-*}
@item
-@uref{#m68k-hp-hpux,,m68k-hp-hpux}
-@item
@uref{#m68k-uclinux,,m68k-uclinux}
@item
@uref{#mips-x-x,,mips-*-*}
@item
@uref{#mips-sgi-irix6,,mips-sgi-irix6}
@item
-@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4}
+@uref{#powerpc-x-x,,powerpc*-*-*}
@item
@uref{#powerpc-x-darwin,,powerpc-*-darwin*}
@item
-@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4}
+@uref{#powerpc-x-elf,,powerpc-*-elf}
@item
@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*}
@item
@item
@uref{#powerpc-x-eabi,,powerpc-*-eabi}
@item
-@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
+@uref{#powerpcle-x-elf,,powerpcle-*-elf}
@item
@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim}
@item
@item
@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
@item
-@uref{#x-x-sysv,,*-*-sysv*}
-@item
-@uref{#vax-dec-ultrix,,vax-dec-ultrix}
-@item
@uref{#x-x-vxworks,,*-*-vxworks*}
@item
@uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
@item
-@uref{#xtensa-x-elf,,xtensa-*-elf}
+@uref{#xtensa-x-elf,,xtensa*-*-elf}
@item
-@uref{#xtensa-x-linux,,xtensa-*-linux*}
+@uref{#xtensa-x-linux,,xtensa*-*-linux*}
@item
@uref{#windows,,Microsoft Windows}
@item
+@uref{#x-x-cygwin,,*-*-cygwin}
+@item
+@uref{#x-x-interix,,*-*-interix}
+@item
+@uref{#x-x-mingw,,*-*-mingw}
+@item
@uref{#os2,,OS/2}
@item
@uref{#older,,Older systems}
@html
<hr />
@end html
-@heading @anchor{alphaev5-cray-unicosmk}alphaev5-cray-unicosmk*
-Cray T3E systems running Unicos/Mk.
-
-This port is incomplete and has many known bugs. We hope to improve the
-support for this target soon. Currently, only the C front end is supported,
-and it is not possible to build parallel applications. Cray modules are not
-supported; in particular, Craylibs are assumed to be in
-@file{/opt/ctl/craylibs/craylibs}.
-
-On this platform, you need to tell GCC where to find the assembler and
-the linker. The simplest way to do so is by providing @option{--with-as}
-and @option{--with-ld} to @file{configure}, e.g.@:
-
-@smallexample
- configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
- --enable-languages=c
-@end smallexample
-
-The comparison test at the end of the bootstrapping process fails on Unicos/Mk
-because the assembler inserts timestamps into object files. You should
-be able to work around this by doing @samp{make all} after getting this
-failure.
-
-@html
-<hr />
-@end html
@heading @anchor{arc-x-elf}arc-*-elf
Argonaut ARC processor.
This configuration is intended for embedded systems.
<hr />
@end html
@heading @anchor{arm-x-elf}arm-*-elf
-@heading @anchor{xscale-x-x}xscale-*-*
ARM-family processors. Subtargets that use the ELF object format
require GNU binutils 2.13 or newer. Such subtargets include:
-@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux},
-@code{arm-*-rtems} and @code{arm-*-kaos}.
+@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux}
+and @code{arm-*-rtems}.
@html
<hr />
There are a few different CRIS targets:
@table @code
-@item cris-axis-aout
-Old target. Includes a multilib for the @samp{elinux} a.out-based
-target. No multilibs for newer architecture variants.
@item cris-axis-elf
Mainly for monolithic embedded systems. Includes a multilib for the
@samp{v10} core used in @samp{ETRAX 100 LX}.
@samp{ETRAX 100 LX} by default.
@end table
-For @code{cris-axis-aout} and @code{cris-axis-elf} you need binutils 2.11
+For @code{cris-axis-elf} you need binutils 2.11
or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer.
Pre-packaged tools can be obtained from
search for ld. The two linkers supported on this target require different
commands. The default linker is determined during configuration. As a
result, it's not possible to switch linkers in the middle of a GCC build.
-This has been been reported to sometimes occur in unified builds of
-binutils and GCC@.
+This has been reported to sometimes occur in unified builds of binutils
+and GCC@.
GCC 3.0 through 3.2 require binutils 2.11 or above. GCC 3.3 through
GCC 4.0 require binutils 2.14 or later.
@html
<hr />
@end html
-@heading @anchor{ix86-x-linuxaout}i?86-*-linux*aout
-Use this configuration to generate @file{a.out} binaries on Linux-based
-GNU systems. This configuration is being superseded.
-
-@html
-<hr />
-@end html
@heading @anchor{ix86-x-linux}i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
@html
<hr />
@end html
-@heading @anchor{ix86-x-sco32v5}i?86-*-sco3.2v5*
-Use this for the SCO OpenServer Release 5 family of operating systems.
-
-Unlike earlier versions of GCC, the ability to generate COFF with this
-target is no longer provided.
-
-Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
-the system debugger to be used. That support was too burdensome to
-maintain. GCC now emits only DWARF 2 for this target. This means you
-may use either the UDK debugger or GDB to debug programs built by this
-version of GCC@.
-
-GCC is now only supported on releases 5.0.4 and later, and requires that
-you install Support Level Supplement OSS646B or later, and Support Level
-Supplement OSS631C or later. If you are using release 5.0.7 of
-OpenServer, you must have at least the first maintenance pack installed
-(this includes the relevant portions of OSS646). OSS646, also known as
-the ``Execution Environment Update'', provides updated link editors and
-assemblers, as well as updated standard C and math libraries. The C
-startup modules are also updated to support the System V gABI draft, and
-GCC relies on that behavior. OSS631 provides a collection of commonly
-used open source libraries, some of which GCC depends on (such as GNU
-gettext and zlib). SCO OpenServer Release 5.0.7 has all of this built
-in by default, but OSS631C and later also apply to that release. Please
-visit
-@uref{ftp://ftp.sco.com/pub/openserver5,,ftp://ftp.sco.com/pub/openserver5}
-for the latest versions of these (and other potentially useful)
-supplements.
-
-Although there is support for using the native assembler, it is
-recommended that you configure GCC to use the GNU assembler. You do
-this by using the flags
-@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You should
-use a modern version of GNU binutils. Version 2.13.2.1 was used for all
-testing. In general, only the @option{--with-gnu-as} option is tested.
-A modern bintuils (as well as a plethora of other development related
-GNU utilities) can be found in Support Level Supplement OSS658A, the
-``GNU Development Tools'' package. See the SCO web and ftp sites for details.
-That package also contains the currently ``officially supported'' version of
-GCC, version 2.95.3. It is useful for bootstrapping this version.
-
-@html
-<hr />
-@end html
@heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10
Use this for Solaris 10 or later on x86 and x86-64 systems. This
configuration is supported by GCC 4.0 and later versions only.
@html
<hr />
@end html
-@heading @anchor{ix86-x-udk}i?86-*-udk
-
-This target emulates the SCO Universal Development Kit and requires that
-package be installed. (If it is installed, you will have a
-@file{/udk/usr/ccs/bin/cc} file present.) It's very much like the
-@samp{i?86-*-unixware7*} target
-but is meant to be used when hosting on a system where UDK isn't the
-default compiler such as OpenServer 5 or Unixware 2. This target will
-generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
-with the same warnings and caveats as the SCO UDK@.
-
-This target is a little tricky to build because we have to distinguish
-it from the native tools (so it gets headers, startups, and libraries
-from the right place) while making the tools not think we're actually
-building a cross compiler. The easiest way to do this is with a configure
-command like this:
-
-@smallexample
- CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure \
- --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
-@end smallexample
-
-@emph{You should substitute @samp{i686} in the above command with the appropriate
-processor for your host.}
-
-After the usual @samp{make} and
-@samp{make install}, you can then access the UDK-targeted GCC
-tools by adding @command{udk-} before the commonly known name. For
-example, to invoke the C compiler, you would use @command{udk-gcc}.
-They will coexist peacefully with any native-target GCC tools you may
-have installed.
-
-
-@html
-<hr />
-@end html
@heading @anchor{ia64-x-linux}ia64-*-linux
IA-64 processor (also known as IPF, or Itanium Processor Family)
running GNU/Linux.
@end html
@heading @anchor{m68k-x-x}m68k-*-*
By default, @samp{m68k-*-aout}, @samp{m68k-*-coff*},
-@samp{m68k-*-elf*}, @samp{m68k-*-rtems} and @samp{m68k-*-uclinux}
+@samp{m68k-*-elf*}, @samp{m68k-*-rtems}, @samp{m68k-*-uclinux} and
+@samp{m68k-*-linux}
build libraries for both M680x0 and ColdFire processors. If you only
need the M680x0 libraries, you can omit the ColdFire ones by passing
@option{--with-arch=m68k} to @command{configure}. Alternatively, you
can omit the M680x0 libraries by passing @option{--with-arch=cf} to
-@command{configure}. These targets default to 5206 code when
+@command{configure}. These targets default to 5206 or 5475 code as
+appropriate for the target system when
configured with @option{--with-arch=cf} and 68020 code otherwise.
-The @samp{m68k-*-linux-gnu}, @samp{m68k-*-netbsd} and
+The @samp{m68k-*-netbsd} and
@samp{m68k-*-openbsd} targets also support the @option{--with-arch}
option. They will generate ColdFire CFV4e code when configured with
@option{--with-arch=cf} and 68020 code otherwise.
@html
<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 gdb does not understand that native HP-UX format, so
-you must use gas if you wish to use gdb.
-
-On HP-UX version 8.05, but not on 8.07 or more recent versions, the
-@command{fixproto} shell script triggers a bug in the system shell. If you
-encounter this problem, upgrade your operating system or use BASH (the
-GNU shell) to run @command{fixproto}. This bug will cause the fixproto
-program to report an error of the form:
-
-@smallexample
-./fixproto: sh internal 1K buffer overflow
-@end smallexample
-
-To fix this, you can also change the first line of the fixproto script
-to look like:
-
-@smallexample
-#!/bin/ksh
-@end smallexample
-
-@html
-<hr />
-@end html
@heading @anchor{m68k-x-uclinux}m68k-*-uclinux
GCC 4.3 changed the uClinux configuration so that it uses the
@samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI.
You can specify a default version for the @option{-mcpu=@var{cpu_type}}
switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
+You will need
+@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
+or newer for a working GCC@.
+
@html
<hr />
@end html
@html
<hr />
@end html
-@heading @anchor{powerpc-x-elf}powerpc-*-elf, powerpc-*-sysv4
+@heading @anchor{powerpc-x-elf}powerpc-*-elf
PowerPC system in big endian mode, running System V.4.
@html
@end html
@heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu*
-You will need
-@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
-or newer for a working GCC@.
+PowerPC system in big endian mode running Linux.
@html
<hr />
@end html
@heading @anchor{powerpc-x-netbsd}powerpc-*-netbsd*
-PowerPC system in big endian mode running NetBSD@. To build the
-documentation you will need Texinfo version 4.4 (NetBSD 1.5.1 included
-Texinfo version 3.12).
+PowerPC system in big endian mode running NetBSD@.
@html
<hr />
@html
<hr />
@end html
-@heading @anchor{powerpcle-x-elf}powerpcle-*-elf, powerpcle-*-sysv4
+@heading @anchor{powerpcle-x-elf}powerpcle-*-elf
PowerPC system in little endian mode, running System V.4.
@html
have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
@file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build.
-All releases of GNU binutils prior to 2.11.2 have known bugs on this
-platform. We recommend the use of GNU binutils 2.11.2 or later, or the
-vendor tools (Sun @command{as}, Sun @command{ld}). Note that your mileage
-may vary if you use a combination of the GNU tools and the Sun tools: while
-the combination GNU @command{as} + Sun @command{ld} should reasonably work,
+We recommend the use of GNU binutils 2.14 or later, or the vendor tools
+(Sun @command{as}, Sun @command{ld}). Note that your mileage may vary
+if you use a combination of the GNU tools and the Sun tools: while the
+combination GNU @command{as} + Sun @command{ld} should reasonably work,
the reverse combination Sun @command{as} + GNU @command{ld} is known to
cause memory corruption at runtime in some cases for C++ programs.
@uref{http://sourceware.org/ml/binutils-cvs/2004-09/msg00036.html} to the
release.
-We recommend using GNU binutils 2.16 or later in conjunction with GCC 4.x,
-or the vendor tools (Sun @command{as}, Sun @command{ld}). However, for
-Solaris 10 and above, an additional patch is required in order for the GNU
-linker to be able to cope with a new flavor of shared libraries. You
+We recommend the use of GNU binutils 2.16 or later in conjunction with GCC
+4.x, or the vendor tools (Sun @command{as}, Sun @command{ld}). However,
+for Solaris 10 and above, an additional patch is required in order for the
+GNU linker to be able to cope with a new flavor of shared libraries. You
can obtain a working version by checking out the binutils-2_16-branch from
the CVS repository or applying the patch
@uref{http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html} to the
release.
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
-newer: @command{g++} will complain that types are missing. These headers assume
-that omitting the type means @code{int}; this assumption worked for C89 but
-is wrong for C++, and is now wrong for C99 also.
+newer: @command{g++} will complain that types are missing. These headers
+assume that omitting the type means @code{int}; this assumption worked for
+C89 but is wrong for C++, and is now wrong for C99 also.
@command{g++} accepts such (invalid) constructs with the option
-@option{-fpermissive}; it
-will assume that any missing type is @code{int} (as defined by C89).
+@option{-fpermissive}; it will assume that any missing type is @code{int}
+(as defined by C89).
-There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
-106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
+There are patches for Solaris 7 (108376-21 or newer for SPARC,
108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
108653-22 for Intel) that fix this bug.
@end html
@heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
-When GCC is configured to use binutils 2.11.2 or later the binaries
+When GCC is configured to use binutils 2.14 or later the binaries
produced are smaller than the ones produced using Sun's native tools;
this difference is quite significant for binaries containing debugging
information.
-Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
-A typical error message might look similar to the following:
-
-@smallexample
-/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
- can't compute value of an expression involving an external symbol.
-@end smallexample
-
-This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris
-2.6 and has been fixed in later (5.x) versions of the assembler,
-starting with Solaris 7.
-
Starting with Solaris 7, the operating system is capable of executing
64-bit SPARC V9 binaries. GCC 3.1 and later properly supports
this; the @option{-m64} option enables 64-bit code generation.
@html
<hr />
@end html
-@heading @anchor{x-x-sysv}*-*-sysv*
-On System V release 3, you may get this error message
-while linking:
-
-@smallexample
-ld fatal: failed to write symbol name @var{something}
- in strings table for file @var{whatever}
-@end smallexample
-
-This probably indicates that the disk is full or your ulimit won't allow
-the file to be as large as it needs to be.
-
-This problem can also result because the kernel parameter @code{MAXUMEM}
-is too small. If so, you must regenerate the kernel and make the value
-much larger. The default value is reported to be 1024; a value of 32768
-is said to work. Smaller values may also work.
-
-On System V, if you get an error like this,
-
-@smallexample
-/usr/local/lib/bison.simple: In function `yyparse':
-/usr/local/lib/bison.simple:625: virtual memory exhausted
-@end smallexample
-
-@noindent
-that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
-
-On a System V release 4 system, make sure @file{/usr/bin} precedes
-@file{/usr/ucb} in @code{PATH}. The @command{cc} command in
-@file{/usr/ucb} uses libraries which have bugs.
-
-@html
-<hr />
-@end html
-@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
-Don't try compiling with VAX C (@command{vcc}). It produces incorrect code
-in some cases (for example, when @code{alloca} is used).
-
-@html
-<hr />
-@end html
@heading @anchor{x-x-vxworks}*-*-vxworks*
Support for VxWorks is in flux. At present GCC supports @emph{only} the
very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC@.
@html
<hr />
@end html
-@heading @anchor{xtensa-x-elf}xtensa-*-elf
+@heading @anchor{xtensa-x-elf}xtensa*-*-elf
This target is intended for embedded Xtensa systems using the
@samp{newlib} C library. It uses ELF but does not support shared
@html
<hr />
@end html
-@heading @anchor{xtensa-x-linux}xtensa-*-linux*
+@heading @anchor{xtensa-x-linux}xtensa*-*-linux*
This target is for Xtensa systems running GNU/Linux. It supports ELF
shared objects and the GNU C library (glibc). It also generates
position-independent code (PIC) regardless of whether the
@option{-fpic} or @option{-fPIC} options are used. In other
respects, this target is the same as the
-@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target.
+@uref{#xtensa*-*-elf,,@samp{xtensa*-*-elf}} target.
+
+@html
+<hr />
+@end html
+@heading @anchor{windows}Microsoft Windows
+
+@subheading Intel 16-bit versions
+The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
+supported.
+
+However, the 32-bit port has limited support for Microsoft
+Windows 3.11 in the Win32s environment, as a target only. See below.
+
+@subheading Intel 32-bit versions
+
+The 32-bit versions of Windows, including Windows 95, Windows NT, Windows
+XP, and Windows Vista, are supported by several different target
+platforms. These targets differ in which Windows subsystem they target
+and which C libraries are used.
+
+@itemize
+@item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space
+Linux API emulation layer in the Win32 subsystem.
+@item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem
+provides native support for POSIX.
+@item MinGW @uref{#x-x-mingw,,*-*-mingw}: MinGW is a native GCC port for
+the Win32 subsystem that provides a subset of POSIX.
+@item MKS i386-pc-mks: NuTCracker from MKS. See
+@uref{http://www.mkssoftware.com/} for more information.
+@end itemize
+
+@subheading Intel 64-bit versions
+
+GCC contains support for x86-64 using the mingw-w64
+runtime library, available from @uref{http://mingw-w64.sourceforge.net/}.
+This library should be used with the target triple x86_64-pc-mingw32.
+
+Presently Windows for Itanium is not supported.
+
+@subheading Windows CE
+
+Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi
+SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
+
+@subheading Other Windows Platforms
+
+GCC no longer supports Windows NT on the Alpha or PowerPC.
+
+GCC no longer supports the Windows POSIX subsystem. However, it does
+support the Interix subsystem. See above.
+
+Old target names including *-*-winnt and *-*-windowsnt are no longer used.
+
+PW32 (i386-pc-pw32) support was never completed, and the project seems to
+be inactive. See @uref{http://pw32.sourceforge.net/} for more information.
+
+UWIN support has been removed due to a lack of maintenance.
@html
<hr />
@end html
-@heading @anchor{windows}Microsoft Windows (32-bit)
+@heading @anchor{x-x-cygwin}*-*-cygwin
Ports of GCC are included with the
@uref{http://www.cygwin.com/,,Cygwin environment}.
GCC will build under Cygwin without modification; it does not build
with Microsoft's C++ compiler and there are no plans to make it do so.
-For MinGW, GCC will build with and support only MinGW runtime 3.12 and later.
+Cygwin can be compiled with i?86-pc-cygwin.
+
+@html
+<hr />
+@end html
+@heading @anchor{x-x-interix}*-*-interix
+
+The Interix target is used by OpenNT, Interix, Services For UNIX (SFU),
+and Subsystem for UNIX-based Applications (SUA). Applications compiled
+with this target run in the Interix subsystem, which is separate from
+the Win32 subsystem. This target was last known to work in GCC 3.3.
+
+For more information, see @uref{http://www.interix.com/}.
+
+@html
+<hr />
+@end html
+@heading @anchor{x-x-mingw32}*-*-mingw32
+
+GCC will build with and support only MinGW runtime 3.12 and later.
Earlier versions of headers are incompatible with the new default semantics
of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes.