]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/doc/install.texi
Daily bump.
[thirdparty/gcc.git] / gcc / doc / install.texi
index dfdd6247e5d1a5327ccc700c3e2061f258bcee7c..b1e9eb95d71ca19919e868a15b170066702ef65e 100644 (file)
@@ -44,9 +44,7 @@
 @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, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-@c 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1988-2014 Free Software Foundation, Inc.
 @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
 
 @c IMPORTANT: whenever you modify this file, run `install.texi2html' to
@@ -71,9 +69,7 @@
 
 @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, 2009,
-2010 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2014 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.3 or
@@ -243,15 +239,38 @@ described below.
 
 @heading Tools/packages necessary for building GCC
 @table @asis
-@item ISO C90 compiler
+@item ISO C++98 compiler
 Necessary to bootstrap GCC, although versions of GCC prior
-to 3.4 also allow bootstrapping with a traditional (K&R) C compiler.
+to 4.8 also allow bootstrapping with a ISO C89 compiler and versions
+of GCC prior to 3.4 also allow bootstrapping with a traditional
+(K&R) C compiler.
 
 To build all languages in a cross-compiler or other configuration where
 3-stage bootstrap is not performed, you need to start with an existing
-GCC binary (version 2.95 or later) because source code for language
+GCC binary (version 3.4 or later) because source code for language
 frontends other than C might use GCC extensions.
 
+Note that to bootstrap GCC with versions of GCC earlier than 3.4, you
+may need to use @option{--disable-stage1-checking}, though
+bootstrapping the compiler with such earlier compilers is strongly
+discouraged.
+
+@item C standard library and headers
+
+In order to build GCC, the C standard library and headers must be present
+for all target variants for which target libraries will be built (and not
+only the variant of the host C++ compiler).
+
+This affects the popular @samp{x86_64-unknown-linux-gnu} platform (among
+other multilib targets), for which 64-bit (@samp{x86_64}) and 32-bit
+(@samp{i386}) libc headers are usually packaged separately. If you do a
+build of a native compiler on @samp{x86_64-unknown-linux-gnu}, make sure you
+either have the 32-bit libc developer package properly installed (the exact
+name of the package depends on your distro) or you must build GCC as a
+64-bit only compiler by configuring with the option
+@option{--disable-multilib}.  Otherwise, you may encounter an error such as
+@samp{fatal error: gnu/stubs-32.h: No such file}
+
 @item GNAT
 
 In order to build the Ada compiler (GNAT) you must already have GNAT
@@ -364,24 +383,30 @@ installed but it is not in your default library search path, the
 @option{--with-mpc} configure option should be used.  See also
 @option{--with-mpc-lib} and @option{--with-mpc-include}.
 
-@item ISL Library version 0.10
+@item ISL Library version 0.12.2
 
 Necessary to build GCC with the Graphite loop optimizations.
-It can be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}.
+It can be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}
+as @file{isl-0.12.2.tar.bz2}.  If an ISL source distribution is found
+in a subdirectory of your GCC sources named @file{isl}, it will be
+built together with GCC.  Alternatively, the @option{--with-isl} configure
+option should be used if ISL is not installed in your default library
+search path.
 
-The @option{--with-isl} configure option should be used if ISL is not
-installed in your default library search path.
-
-@item CLooG 0.17.0
+@item CLooG 0.18.1
 
 Necessary to build GCC with the Graphite loop optimizations.  It can be
 downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/} as
-@file{cloog-0.17.0.tar.gz}.  The @option{--with-cloog} configure option should
-be used if CLooG is not installed in your default library search path.
-CLooG needs to be built against ISL 0.10, not its included copy of ISL
-which is too old.  Use @option{--with-isl=system} to direct CLooG to pick
-up an already installed ISL.  CLooG needs to be configured to use GMP
-internally, use @option{--with-bits=gmp} to direct it to do that.
+@file{cloog-0.18.1.tar.gz}.  If a CLooG source distribution is found
+in a subdirectory of your GCC sources named @file{cloog}, it will be
+built together with GCC.  Alternatively, the @option{--with-cloog} configure
+option should be used if CLooG is not installed in your default library search
+path.
+
+If you want to install CLooG separately it needs to be built against
+ISL 0.12.2 by using the @option{--with-isl=system} to direct CLooG to pick
+up an already installed ISL.  Using the ISL library as bundled with CLooG
+is not supported.
 
 @end table
 
@@ -422,7 +447,11 @@ Necessary when modifying @command{gperf} input files, e.g.@:
 @itemx Expect
 @itemx Tcl
 
-Necessary to run the GCC testsuite; see the section on testing for details.
+Necessary to run the GCC testsuite; see the section on testing for
+details.  Tcl 8.6 has a known regression in RE pattern handling that
+make parts of the testsuite fail.  See
+@uref{http://core.tcl.tk/tcl/tktview/267b7e2334ee2e9de34c4b00d6e72e2f1997085f}
+for more information.  This bug has been fixed in 8.6.1.
 
 @item autogen version 5.5.4 (or later) and
 @itemx guile version 1.4.1 (or later)
@@ -524,26 +553,18 @@ the executables named @command{cantlr}, @command{runantlr} or
 
 GCC is distributed via @uref{http://gcc.gnu.org/svn.html,,SVN} and FTP
 tarballs compressed with @command{gzip} or
-@command{bzip2}.  It is possible to download a full distribution or specific
-components.
+@command{bzip2}.
 
 Please refer to the @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 Ada (in the case of GCC 3.1 and later) compilers.  The full
-distribution also includes runtime libraries for C++, Objective-C,
-Fortran, and Java.  In GCC 3.0 and later versions, the 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.
+The source distribution includes the C, C++, Objective-C, Fortran, Java,
+and Ada (in the case of GCC 3.1 and later) compilers, as well as
+runtime libraries for C++, Objective-C, Fortran, and Java.
+For previous versions these were downloadable as separate components such
+as the core GCC distribution, which included the C language front end and
+shared components, and language-specific distributions including the
+language front end and the language runtime (where appropriate).
 
 If you also intend to build binutils (either to upgrade an existing
 installation or for use in place of the corresponding tools of your
@@ -925,6 +946,19 @@ 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.
 
+Contrast with @option{--enable-host-shared}, which affects @emph{host}
+code.
+
+@item --enable-host-shared
+Specify that the @emph{host} code should be built into position-independent
+machine code (with -fPIC), allowing it to be used within shared libraries,
+but yielding a slightly slower compiler.
+
+Currently this option is only of use to people developing GCC itself.
+
+Contrast with @option{--enable-shared}, which affects @emph{target}
+libraries.
+
 @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
@@ -1027,6 +1061,27 @@ For ARM targets, possible values for @var{dialect} are @code{gnu} or
 @code{gnu2}, which select between the original GNU dialect and the GNU TLS
 descriptor-based dialect.
 
+@item --enable-multiarch
+Specify whether to enable or disable multiarch support.  The default is
+to check for glibc start files in a multiarch location, and enable it
+if the files are found.  The auto detection is enabled for native builds,
+and for cross builds configured with @option{--with-sysroot}, and without
+@option{--with-native-system-header-dir}.
+More documentation about multiarch can be found at
+@uref{http://wiki.debian.org/Multiarch}.
+
+@item --enable-vtable-verify
+Specify whether to enable or disable the vtable verification feature.
+Enabling this feature causes libstdc++ to be built with its virtual calls
+in verifiable mode.  This means that, when linked with libvtv, every
+virtual call in libstdc++ will verify the vtable pointer through which the
+call will be made before actually making the call.  If not linked with libvtv,
+the verifier will call stub functions (in libstdc++ itself) and do nothing.
+If vtable verification is disabled, then libstdc++ is not built with its
+virtual calls in verifiable mode at all.  However the libvtv library will
+still be built (see @option{--disable-libvtv} to turn off building libvtv).
+@option{--disable-vtable-verify} is the default.
+
 @item --disable-multilib
 Specify that multiple target
 libraries to support different target variants, calling
@@ -1179,8 +1234,8 @@ This is an alias for @option{--enable-tls=no}.
 @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@.  The @option{--with-cpu-32} and
+This option is only supported on some targets, including ARC, ARM, i386, M68k,
+PowerPC, and SPARC@.  It is mandatory for ARC@.  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,
 x86-64 and PowerPC.
@@ -1216,6 +1271,24 @@ ISA for floating-point arithmetics.  You can select either @samp{sse} which
 enables @option{-msse2} or @samp{avx} which enables @option{-mavx} by default.
 This option is only supported on i386 and x86-64 targets.
 
+@item --with-nan=@var{encoding}
+On MIPS targets, set the default encoding convention to use for the
+special not-a-number (NaN) IEEE 754 floating-point data.  The
+possibilities for @var{encoding} are:
+@table @code
+@item legacy
+Use the legacy encoding, as with the @option{-mnan=legacy} command-line
+option.
+@item 2008
+Use the 754-2008 encoding, as with the @option{-mnan=2008} command-line
+option.
+@end table
+To use this configuration option you must have an assembler version
+installed that supports the @option{-mnan=} command-line option too.
+In the absence of this configuration option the default convention is
+the legacy encoding, as when neither of the @option{-mnan=2008} and
+@option{-mnan=legacy} command-line options has been used.
+
 @item --with-divide=@var{type}
 Specify how the compiler should generate code for checking for
 division by zero.  This option is only supported on the MIPS target.
@@ -1288,6 +1361,11 @@ opposite effect.  If neither option is specified, the configure script
 will try to guess whether the @code{.init_array} and
 @code{.fini_array} sections are supported and, if they are, use them.
 
+@item --enable-link-mutex
+When building GCC, use a mutex to avoid linking the compilers for
+multiple languages at the same time, to avoid thrashing on build
+systems with limited free memory.  The default is not to use such a mutex.
+
 @item --enable-maintainer-mode
 The build rules that regenerate the Autoconf and Automake output files as
 well as the GCC master message catalog @file{gcc.pot} are normally
@@ -1334,7 +1412,7 @@ addition, @samp{libstdc++}'s include files will be installed into
 @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{libgfortran},
-@samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}.
+@samp{libjava}, @samp{libstdc++}, and @samp{libobjc}.
 
 @item --enable-languages=@var{lang1},@var{lang2},@dots{}
 Specify that only a particular subset of compilers and
@@ -1390,6 +1468,10 @@ support for @code{libquadmath} on systems supporting it.
 @item --disable-libgomp
 Specify that the run-time libraries used by GOMP should not be built.
 
+@item --disable-libvtv
+Specify that the run-time libraries used by vtable verification
+should not be built.
+
 @item --with-dwarf2
 Specify that the compiler should
 use DWARF 2 debugging information as the default.
@@ -1518,12 +1600,6 @@ When this option is specified more detailed information on memory
 allocation is gathered.  This information is printed when using
 @option{-fmem-report}.
 
-@item --with-gc
-@itemx --with-gc=@var{choice}
-With this option you can specify the garbage collector implementation
-used during the compilation process.  @var{choice} can be one of
-@samp{page} and @samp{zone}, where @samp{page} is the default.
-
 @item --enable-nls
 @itemx --disable-nls
 The @option{--enable-nls} option enables Native Language Support (NLS),
@@ -1620,9 +1696,9 @@ variable (@env{LD_LIBRARY_PATH} on GNU/Linux and Solaris systems).
 These flags are applicable to the host platform only.  When building
 a cross compiler, they will not be used to configure target libraries.
 
-@item --with-ppl=@var{pathname}
-@itemx --with-ppl-include=@var{pathname}
-@itemx --with-ppl-lib=@var{pathname}
+@item --with-isl=@var{pathname}
+@itemx --with-isl-include=@var{pathname}
+@itemx --with-isl-lib=@var{pathname}
 @itemx --with-cloog=@var{pathname}
 @itemx --with-cloog-include=@var{pathname}
 @itemx --with-cloog-lib=@var{pathname}
@@ -1696,7 +1772,7 @@ linker for all final links. @var{choice} can be one of
 @itemx --disable-gnu-unique-object
 Tells GCC to use the gnu_unique_object relocation for C++ template
 static data members and inline function local statics.  Enabled by
-default for a native toolchain with an assembler that accepts it and
+default for a toolchain with an assembler that accepts it and
 GLIBC 2.11 or above, otherwise disabled.
 
 @item --enable-lto
@@ -1704,12 +1780,51 @@ GLIBC 2.11 or above, otherwise disabled.
 Enable support for link-time optimization (LTO).  This is enabled by
 default, and may be disabled using @option{--disable-lto}.
 
+@item --enable-linker-plugin-configure-flags=FLAGS
+@itemx --enable-linker-plugin-flags=FLAGS
+By default, linker plugins (such as the LTO plugin) are built for the
+host system architecture.  For the case that the linker has a
+different (but run-time compatible) architecture, these flags can be
+specified to build plugins that are compatible to the linker.  For
+example, if you are building GCC for a 64-bit x86_64
+(@samp{x86_64-unknown-linux-gnu}) host system, but have a 32-bit x86
+GNU/Linux (@samp{i686-pc-linux-gnu}) linker executable (which is
+executable on the former system), you can configure GCC as follows for
+getting compatible linker plugins:
+
+@smallexample
+% @var{srcdir}/configure \
+    --host=x86_64-unknown-linux-gnu \
+    --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
+    --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
+@end smallexample
+
 @item --with-plugin-ld=@var{pathname}
 Enable an alternate linker to be used at link-time optimization (LTO)
 link time when @option{-fuse-linker-plugin} is enabled.
 This linker should have plugin support such as gold starting with
 version 2.20 or GNU ld starting with version 2.21.
 See @option{-fuse-linker-plugin} for details.
+
+@item --enable-canonical-system-headers
+@itemx --disable-canonical-system-headers
+Enable system header path canonicalization for @file{libcpp}.  This can
+produce shorter header file paths in diagnostics and dependency output
+files, but these changed header paths may conflict with some compilation
+environments.  Enabled by default, and may be disabled using
+@option{--disable-canonical-system-headers}.
+
+@item --with-glibc-version=@var{major}.@var{minor}
+Tell GCC that when the GNU C Library (glibc) is used on the target it
+will be version @var{major}.@var{minor} or later.  Normally this can
+be detected from the C library's header files, but this option may be
+needed when bootstrapping a cross toolchain without the header files
+available for building the initial bootstrap compiler.
+
+If GCC is configured with some multilibs that use glibc and some that
+do not, this option applies only to the multilibs that use glibc.
+However, such configurations may not work well as not all the relevant
+configuration in GCC is on a per-multilib basis.
 @end table
 
 @subheading Cross-Compiler-Specific Options
@@ -1789,6 +1904,21 @@ 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}.
 
+@item --with-avrlibc
+Specifies that @samp{AVR-Libc} is
+being used as the target C library.  This causes float support
+functions like @code{__addsf3} to be omitted from @file{libgcc.a} on
+the assumption that it will be provided by @file{libm.a}.  For more
+technical details, cf. @uref{http://gcc.gnu.org/PR54461,,PR54461}.
+This option is only supported for the AVR target.  It is not supported for
+RTEMS configurations, which currently use newlib.  The option is
+supported since version 4.7.2 and is the default in 4.8.0 and newer.
+
+@item --with-nds32-lib=@var{library}
+Specifies that @var{library} setting is used for building @file{libgcc.a}.
+Currently, the valid @var{library} is @samp{newlib} or @samp{mculib}.
+This option is only supported for the NDS32 target.
+
 @item --with-build-time-tools=@var{dir}
 Specifies where to find the set of target tools (assembler, linker, etc.)
 that will be used while building GCC itself.  This option can be useful
@@ -2433,8 +2563,7 @@ Finally a @code{stagefeedback} compiler is built using the information collected
 
 Unlike standard bootstrap, several additional restrictions apply.  The
 compiler used to build @code{stage1} needs to support a 64-bit integral type.
-It is recommended to only use GCC for this.  Also parallel make is currently
-not supported since collisions in profile collecting may occur.
+It is recommended to only use GCC for this.
 
 @html
 <hr />
@@ -2567,14 +2696,14 @@ The following will run each testsuite eight times using the @samp{arm-sim}
 target, as if you had specified all possible combinations yourself:
 
 @smallexample
---target_board=arm-sim/-mhard-float/-O1
---target_board=arm-sim/-mhard-float/-O2
---target_board=arm-sim/-mhard-float/-O3
---target_board=arm-sim/-mhard-float
---target_board=arm-sim/-msoft-float/-O1
---target_board=arm-sim/-msoft-float/-O2
---target_board=arm-sim/-msoft-float/-O3
---target_board=arm-sim/-msoft-float
+--target_board='arm-sim/-mhard-float/-O1 \
+                arm-sim/-mhard-float/-O2 \
+                arm-sim/-mhard-float/-O3 \
+                arm-sim/-mhard-float \
+                arm-sim/-msoft-float/-O1 \
+                arm-sim/-msoft-float/-O2 \
+                arm-sim/-msoft-float/-O3 \
+                arm-sim/-msoft-float'
 @end smallexample
 
 They can be combined as many times as you wish, in arbitrary ways.  This
@@ -2897,12 +3026,6 @@ OpenServer/Unixware}.
 @item
 Solaris 2 (SPARC, Intel):
 @itemize
-@item
-@uref{http://www.sunfreeware.com/,,Sunfreeware}
-
-@item
-@uref{http://www.blastwave.org/,,Blastwave}
-
 @item
 @uref{http://www.opencsw.org/,,OpenCSW}
 
@@ -2966,7 +3089,7 @@ GNU Compiler Collection on your machine.
 Note that this list of install notes is @emph{not} a list of supported
 hosts or targets.  Not all supported hosts and targets are listed
 here, only the ones that require host-specific or target-specific
-information are.
+information have to. 
 
 @ifhtml
 @itemize
@@ -2999,8 +3122,6 @@ information are.
 @item
 @uref{#ix86-x-linux,,i?86-*-linux*}
 @item
-@uref{#ix86-x-solaris289,,i?86-*-solaris2.9}
-@item
 @uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
 @item
 @uref{#ia64-x-linux,,ia64-*-linux}
@@ -3033,6 +3154,10 @@ information are.
 @item
 @uref{#mips-sgi-irix6,,mips-sgi-irix6}
 @item
+@uref{#nds32le-x-elf,,nds32le-*-elf}
+@item
+@uref{#nds32be-x-elf,,nds32be-*-elf}
+@item
 @uref{#powerpc-x-x,,powerpc*-*-*}
 @item
 @uref{#powerpc-x-darwin,,powerpc-*-darwin*}
@@ -3077,6 +3202,8 @@ information are.
 @item
 @uref{#tilegx-x-linux,,tilegx-*-linux*}
 @item
+@uref{#tilegxbe-x-linux,,tilegxbe-*-linux*}
+@item
 @uref{#tilepro-x-linux,,tilepro-*-linux*}
 @item
 @uref{#x-x-vxworks,,*-*-vxworks*}
@@ -3113,8 +3240,8 @@ information are.
 <!-- -------- host/target specific issues start here ---------------- -->
 <hr />
 @end html
-@heading @anchor{alpha-x-x}alpha*-*-*
-
+@anchor{alpha-x-x}
+@heading 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
@@ -3128,7 +3255,8 @@ shared libraries.
 @html
 <hr />
 @end html
-@heading @anchor{alpha-dec-osf51}alpha*-dec-osf5.1
+@anchor{alpha-dec-osf51}
+@heading alpha*-dec-osf5.1
 Systems using processors that implement the DEC Alpha architecture and
 are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP
 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
@@ -3141,24 +3269,43 @@ are the versions which identify themselves as DEC OSF/1.)
 @html
 <hr />
 @end html
-@heading @anchor{amd64-x-solaris210}amd64-*-solaris2.1[0-9]*
-
+@anchor{amd64-x-solaris210}
+@heading amd64-*-solaris2.1[0-9]*
 This is a synonym for @samp{x86_64-*-solaris2.1[0-9]*}.
 
 @html
 <hr />
 @end html
-@heading @anchor{arm-x-eabi}arm-*-eabi
+@anchor{arc-x-elf32}
+@heading arc-*-elf32
+
+Use @samp{configure --target=arc-elf32 --with-cpu=@var{cpu} --enable-languages="c,c++"}
+to configure GCC, with @var{cpu} being one of @samp{arc600}, @samp{arc601},
+or @samp{arc700}@.
+
+@html
+<hr />
+@end html
+@anchor{arc-linux-uclibc}
+@heading arc-linux-uclibc
+
+Use @samp{configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"} to configure GCC@.
+
+@html
+<hr />
+@end html
+@anchor{arm-x-eabi}
+@heading arm-*-eabi
 ARM-family processors.  Subtargets that use the ELF object format
 require GNU binutils 2.13 or newer.  Such subtargets include:
-@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi}
+@code{arm-*-netbsdelf}, @code{arm-*-*linux-*}
 and @code{arm-*-rtemseabi}.
 
 @html
 <hr />
 @end html
-@heading @anchor{avr}avr
-
+@anchor{avr}
+@heading avr
 ATMEL AVR-family micro controllers.  These are used in embedded
 applications.  There are no standard Unix configurations.
 @ifnothtml
@@ -3194,8 +3341,8 @@ indicates that you should upgrade to a newer version of the binutils.
 @html
 <hr />
 @end html
-@heading @anchor{bfin}Blackfin
-
+@anchor{bfin}
+@heading Blackfin
 The Blackfin processor, an Analog Devices DSP.
 @ifnothtml
 @xref{Blackfin Options,, Blackfin Options, gcc, Using the GNU Compiler
@@ -3211,10 +3358,10 @@ is available at @uref{http://blackfin.uclinux.org}
 @html
 <hr />
 @end html
-@heading @anchor{cr16}CR16
-
-The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is 
-used in embedded applications.
+@anchor{cr16}
+@heading CR16
+The CR16 CompactRISC architecture is a 16-bit architecture. This
+architecture is used in embedded applications.
 
 @ifnothtml
 @xref{CR16 Options,, CR16 Options, gcc, Using and Porting the GNU Compiler
@@ -3228,14 +3375,14 @@ See ``CR16 Options'' in the main manual for a list of CR16-specific options.
 Use @samp{configure --target=cr16-elf --enable-languages=c,c++} to configure
 GCC@ for building a CR16 elf cross-compiler.
 
-Use @samp{configure --target=cr16-uclinux --enable-languages=c,c++} to configure
-GCC@ for building a CR16 uclinux cross-compiler.
+Use @samp{configure --target=cr16-uclinux --enable-languages=c,c++} to
+configure GCC@ for building a CR16 uclinux cross-compiler.
 
 @html
 <hr />
 @end html
-@heading @anchor{cris}CRIS
-
+@anchor{cris}
+@heading CRIS
 CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip
 series.  These are used in embedded applications.
 
@@ -3269,8 +3416,8 @@ information about this platform is available at
 @html
 <hr />
 @end html
-@heading @anchor{dos}DOS
-
+@anchor{dos}
+@heading DOS
 Please have a look at the @uref{binaries.html,,binaries page}.
 
 You cannot install GCC by itself on MSDOS; it will not compile under
@@ -3281,15 +3428,16 @@ and includes all the necessary compilation tools and libraries.
 @html
 <hr />
 @end html
-@heading @anchor{epiphany-x-elf}epiphany-*-elf
+@anchor{epiphany-x-elf}
+@heading epiphany-*-elf
 Adapteva Epiphany.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{x-x-freebsd}*-*-freebsd*
-
+@anchor{x-x-freebsd}
+@heading *-*-freebsd*
 Support for FreeBSD 1 was discontinued in GCC 3.2.  Support for
 FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was
 discontinued in GCC 4.0.
@@ -3326,7 +3474,8 @@ the FreeBSD 7.0 release with GNU binutils after 2.16.1.
 @html
 <hr />
 @end html
-@heading @anchor{h8300-hms}h8300-hms
+@anchor{h8300-hms}
+@heading h8300-hms
 Renesas H8/300 series of processors.
 
 Please have a look at the @uref{binaries.html,,binaries page}.
@@ -3339,7 +3488,8 @@ longer a multiple of 2 bytes.
 @html
 <hr />
 @end html
-@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux*
+@anchor{hppa-hp-hpux}
+@heading hppa*-hp-hpux*
 Support for HP-UX version 9 and older was discontinued in GCC 3.4.
 
 We require using gas/binutils on all hppa platforms.  Version 2.19 or
@@ -3391,8 +3541,8 @@ More specific information to @samp{hppa*-hp-hpux*} targets follows.
 @html
 <hr />
 @end html
-@heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10
-
+@anchor{hppa-hp-hpux10}
+@heading hppa*-hp-hpux10
 For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
 @code{PHCO_19798} from HP@.
 
@@ -3404,8 +3554,8 @@ with the one implemented under HP-UX 11 using secondary definitions.
 @html
 <hr />
 @end html
-@heading @anchor{hppa-hp-hpux11}hppa*-hp-hpux11
-
+@anchor{hppa-hp-hpux11}
+@heading hppa*-hp-hpux11
 GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
 be used to compile GCC 3.0 and up.
 
@@ -3515,8 +3665,8 @@ supported, so @option{--enable-threads=dce} does not work.
 @html
 <hr />
 @end html
-@heading @anchor{x-x-linux-gnu}*-*-linux-gnu
-
+@anchor{x-x-linux-gnu}
+@heading *-*-linux-gnu
 Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
 in glibc 2.2.5 and later.  More information is available in the
 libstdc++-v3 documentation.
@@ -3524,8 +3674,8 @@ libstdc++-v3 documentation.
 @html
 <hr />
 @end html
-@heading @anchor{ix86-x-linux}i?86-*-linux*
-
+@anchor{ix86-x-linux}
+@heading i?86-*-linux*
 As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
 See @uref{http://gcc.gnu.org/PR10877,,bug 10877} for more information.
 
@@ -3536,27 +3686,8 @@ found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
 @html
 <hr />
 @end html
-@heading @anchor{ix86-x-solaris29}i?86-*-solaris2.9
-The Sun assembler in Solaris 9 has several bugs and limitations.
-While GCC works around them, several features are missing, so it is
-@c FIXME: which ones?
-recommended to use the GNU assembler instead.  There is no bundled
-version, but the current version, from GNU binutils 2.22, is known to
-work.
-
-Solaris@tie{}2/x86 doesn't support the execution of SSE/SSE2 instructions
-before Solaris@tie{}9 4/04, even if the CPU supports them.  Programs will
-receive @code{SIGILL} if they try.  The fix is available both in
-Solaris@tie{}9 Update@tie{}6 and kernel patch 112234-12 or newer.  To
-avoid this problem,
-@option{-march} defaults to @samp{pentiumpro} on Solaris 9.  If
-you have the patch installed, you can configure GCC with an appropriate
-@option{--with-arch} option, but need GNU @command{as} for SSE2 support.
-
-@html
-<hr />
-@end html
-@heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10
+@anchor{ix86-x-solaris210}
+@heading i?86-*-solaris2.10
 Use this for Solaris 10 or later on x86 and x86-64 systems.  Starting
 with GCC 4.7, there is also a 64-bit @samp{amd64-*-solaris2.1[0-9]*} or
 @samp{x86_64-*-solaris2.1[0-9]*} configuration that corresponds to
@@ -3585,7 +3716,8 @@ guarantee use of Sun @command{ld}.
 @html
 <hr />
 @end html
-@heading @anchor{ia64-x-linux}ia64-*-linux
+@anchor{ia64-x-linux}
+@heading ia64-*-linux
 IA-64 processor (also known as IPF, or Itanium Processor Family)
 running GNU/Linux.
 
@@ -3605,7 +3737,8 @@ more major ABI changes are expected.
 @html
 <hr />
 @end html
-@heading @anchor{ia64-x-hpux}ia64-*-hpux*
+@anchor{ia64-x-hpux}
+@heading ia64-*-hpux*
 Building GCC on this target requires the GNU Assembler.  The bundled HP
 assembler will not work.  To prevent GCC from using the wrong assembler,
 the option @option{--with-gnu-as} may be necessary.
@@ -3616,11 +3749,21 @@ is required to build GCC@.  For GCC 3.3 and later, this is the default.
 For gcc 3.4.3 and later, @option{--enable-libunwind-exceptions} is
 removed and the system libunwind library will always be used.
 
+@html
+<hr />
+@end html
+@anchor{aarch64-x-x}
+@heading aarch64*-*-*
+Binutils pre 2.24 does not have support for selecting @option{-mabi} and
+does not support ILP32.  If it is used to build GCC 4.9 or later, GCC will
+not support option @option{-mabi=ilp32}.
+
 @html
 <hr />
 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
 @end html
-@heading @anchor{x-ibm-aix}*-ibm-aix*
+@anchor{x-ibm-aix}
+@heading *-ibm-aix*
 Support for AIX version 3 and older was discontinued in GCC 3.4.
 Support for AIX version 4.2 and older was discontinued in GCC 4.5.
 
@@ -3771,42 +3914,48 @@ switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
 @html
 <hr />
 @end html
-@heading @anchor{iq2000-x-elf}iq2000-*-elf
+@anchor{iq2000-x-elf}
+@heading iq2000-*-elf
 Vitesse IQ2000 processors.  These are used in embedded
 applications.  There are no standard Unix configurations.
 
 @html
 <hr />
 @end html
-@heading @anchor{lm32-x-elf}lm32-*-elf
+@anchor{lm32-x-elf}
+@heading lm32-*-elf
 Lattice Mico32 processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{lm32-x-uclinux}lm32-*-uclinux
+@anchor{lm32-x-uclinux}
+@heading lm32-*-uclinux
 Lattice Mico32 processor.
 This configuration is intended for embedded systems running uClinux.
 
 @html
 <hr />
 @end html
-@heading @anchor{m32c-x-elf}m32c-*-elf
+@anchor{m32c-x-elf}
+@heading m32c-*-elf
 Renesas M32C processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{m32r-x-elf}m32r-*-elf
+@anchor{m32r-x-elf}
+@heading m32r-*-elf
 Renesas M32R processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{m68k-x-x}m68k-*-*
+@anchor{m68k-x-x}
+@heading m68k-*-*
 By default,
 @samp{m68k-*-elf*}, @samp{m68k-*-rtems},  @samp{m68k-*-uclinux} and
 @samp{m68k-*-linux}
@@ -3834,31 +3983,34 @@ GCC requires at least binutils version 2.17 on these targets.
 @html
 <hr />
 @end html
-@heading @anchor{m68k-x-uclinux}m68k-*-uclinux
+@anchor{m68k-x-uclinux}
+@heading m68k-*-uclinux
 GCC 4.3 changed the uClinux configuration so that it uses the
 @samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI.
 It also added improved support for C++ and flat shared libraries,
 both of which were ABI changes.
 
-
 @html
 <hr />
 @end html
-@heading @anchor{mep-x-elf}mep-*-elf
+@anchor{mep-x-elf}
+@heading mep-*-elf
 Toshiba Media embedded Processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{microblaze-x-elf}microblaze-*-elf
+@anchor{microblaze-x-elf}
+@heading microblaze-*-elf
 Xilinx MicroBlaze processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{mips-x-x}mips-*-*
+@anchor{mips-x-x}
+@heading mips-*-*
 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
@@ -3910,15 +4062,15 @@ made after Nov. 9, 2006) should be free from both of these problems.
 @html
 <hr />
 @end html
-@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
-
+@anchor{mips-sgi-irix5}
+@heading mips-sgi-irix5
 Support for IRIX 5 has been removed in GCC 4.6.
 
 @html
 <hr />
 @end html
-@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
-
+@anchor{mips-sgi-irix6}
+@heading mips-sgi-irix6
 Support for IRIX 6.5 has been removed in GCC 4.8.  Support for IRIX 6
 releases before 6.5 has been removed in GCC 4.6, as well as support for
 the O32 ABI.
@@ -3926,15 +4078,37 @@ the O32 ABI.
 @html
 <hr />
 @end html
-@heading @anchor{moxie-x-elf}moxie-*-elf
-The moxie processor.  See @uref{http://moxielogic.org/} for more
-information about this processor.
+@anchor{moxie-x-elf}
+@heading moxie-*-elf
+The moxie processor.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-x}powerpc-*-*
+@anchor{msp430-x-elf}
+@heading msp430-*-elf
+TI MSP430 processor.
+This configuration is intended for embedded systems.
 
+@html
+<hr />
+@end html
+@anchor{nds32le-x-elf}
+@heading nds32le-*-elf
+Andes NDS32 target in little endian mode.
+
+@html
+<hr />
+@end html
+@anchor{nds32be-x-elf}
+@heading nds32be-*-elf
+Andes NDS32 target in big endian mode.
+
+@html
+<hr />
+@end html
+@anchor{powerpc-x-x}
+@heading 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}}.
 
@@ -3945,7 +4119,8 @@ or newer for a working GCC@.
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-darwin}powerpc-*-darwin*
+@anchor{powerpc-x-darwin}
+@heading powerpc-*-darwin*
 PowerPC running Darwin (Mac OS X kernel).
 
 Pre-installed versions of Mac OS X may not include any developer tools,
@@ -3961,65 +4136,74 @@ on systems older than 10.3.9 (aka darwin7.9.0).
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-elf}powerpc-*-elf
+@anchor{powerpc-x-elf}
+@heading powerpc-*-elf
 PowerPC system in big endian mode, running System V.4.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu*
-
+@anchor{powerpc-x-linux-gnu}
+@heading powerpc*-*-linux-gnu*
 PowerPC system in big endian mode running Linux.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-netbsd}powerpc-*-netbsd*
+@anchor{powerpc-x-netbsd}
+@heading powerpc-*-netbsd*
 PowerPC system in big endian mode running NetBSD@.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-eabisim}powerpc-*-eabisim
+@anchor{powerpc-x-eabisim}
+@heading powerpc-*-eabisim
 Embedded PowerPC system in big endian mode for use in running under the
 PSIM simulator.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpc-x-eabi}powerpc-*-eabi
+@anchor{powerpc-x-eabi}
+@heading powerpc-*-eabi
 Embedded PowerPC system in big endian mode.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-x-elf}powerpcle-*-elf
+@anchor{powerpcle-x-elf}
+@heading powerpcle-*-elf
 PowerPC system in little endian mode, running System V.4.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-x-eabisim}powerpcle-*-eabisim
+@anchor{powerpcle-x-eabisim}
+@heading powerpcle-*-eabisim
 Embedded PowerPC system in little endian mode for use in running under
 the PSIM simulator.
 
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi
+@anchor{powerpcle-x-eabi}
+@heading powerpcle-*-eabi
 Embedded PowerPC system in little endian mode.
 
 @html
 <hr />
 @end html
-@heading @anchor{rl78-x-elf}rl78-*-elf
+@anchor{rl78-x-elf}
+@heading rl78-*-elf
 The Renesas RL78 processor.
 This configuration is intended for embedded systems.
 
 @html
 <hr />
 @end html
-@heading @anchor{rx-x-elf}rx-*-elf
+@anchor{rx-x-elf}
+@heading rx-*-elf
 The Renesas RX processor.  See
 @uref{http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series}
 for more information about this processor.
@@ -4027,19 +4211,22 @@ for more information about this processor.
 @html
 <hr />
 @end html
-@heading @anchor{s390-x-linux}s390-*-linux*
+@anchor{s390-x-linux}
+@heading s390-*-linux*
 S/390 system running GNU/Linux for S/390@.
 
 @html
 <hr />
 @end html
-@heading @anchor{s390x-x-linux}s390x-*-linux*
+@anchor{s390x-x-linux}
+@heading s390x-*-linux*
 zSeries system (64-bit) running GNU/Linux for zSeries@.
 
 @html
 <hr />
 @end html
-@heading @anchor{s390x-ibm-tpf}s390x-ibm-tpf*
+@anchor{s390x-ibm-tpf}
+@heading s390x-ibm-tpf*
 zSeries system (64-bit) running TPF@.  This platform is
 supported as cross-compilation target only.
 
@@ -4050,10 +4237,11 @@ supported as cross-compilation target only.
 @c with 2.0 until 2.6, 7, 8, etc.  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{x-x-solaris2}*-*-solaris2*
-
-Support for Solaris 8 has removed in GCC 4.8.  Support for Solaris 7 has
-been removed in GCC 4.6.
+@anchor{x-x-solaris2}
+@heading *-*-solaris2*
+Support for Solaris 9 has been removed in GCC 4.10.  Support for Solaris
+8 has been removed in GCC 4.8.  Support for Solaris 7 has been removed
+in GCC 4.6.
 
 Sun does not ship a C compiler with Solaris 2 before Solaris 10, though
 you can download the Sun Studio compilers for free.  In Solaris 10 and
@@ -4133,30 +4321,11 @@ program which is used only by the GCC testsuite driver.  When the bug
 causes the @command{expect} program to miss anticipated output, extra
 testsuite failures appear.
 
-There are patches for Solaris 9 (117171-11 or newer for
-SPARC, 117172-11 or newer for Intel) that address this problem.
-
-Thread-local storage (TLS) is supported in Solaris@tie{}9, but requires
-some patches.  The @samp{libthread} patches provide the
-@code{__tls_get_addr} (SPARC, 64-bit x86) resp.@ @code{___tls_get_addr}
-(32-bit x86) functions.  On Solaris@tie{}9, the necessary support
-on SPARC is present since FCS, while 114432-05 or newer is required on
-Intel.  Additionally, on Solaris@tie{}9/x86, patch 113986-02 or newer is
-required for the Sun @command{ld} and runtime linker (@command{ld.so.1})
-support, while Solaris@tie{}9/SPARC works since FCS.  The linker
-patches must be installed even if GNU @command{ld} is used. Sun
-@command{as} in Solaris@tie{}9 doesn't support the necessary
-relocations, so GNU @command{as} must be used.  The @command{configure}
-script checks for those prerequisites and automatically enables TLS
-support if they are met.  Although those minimal patch versions should
-work, it is recommended to use the latest patch versions which include
-additional bug fixes.
-
 @html
 <hr />
 @end html
-@heading @anchor{sparc-x-x}sparc*-*-*
-
+@anchor{sparc-x-x}
+@heading sparc*-*-*
 This section contains general configuration information for all
 SPARC-based platforms.  In addition to reading this section, please
 read all other sections that match your target.
@@ -4170,8 +4339,8 @@ in @uref{prerequisites.html,,the prerequisites}.
 @html
 <hr />
 @end html
-@heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
-
+@anchor{sparc-sun-solaris2}
+@heading sparc-sun-solaris2*
 When GCC is configured to use GNU 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
@@ -4232,8 +4401,8 @@ not that of GMP or MPFR or MPC).  For example on a Solaris 9 system:
 @html
 <hr />
 @end html
-@heading @anchor{sparc-sun-solaris210}sparc-sun-solaris2.10
-
+@anchor{sparc-sun-solaris210}
+@heading sparc-sun-solaris2.10
 There is a bug in older versions of the Sun assembler which breaks
 thread-local storage (TLS).  A typical error message is
 
@@ -4248,7 +4417,8 @@ This bug is fixed in Sun patch 118683-03 or later.
 @html
 <hr />
 @end html
-@heading @anchor{sparc-x-linux}sparc-*-linux*
+@anchor{sparc-x-linux}
+@heading 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
@@ -4258,11 +4428,11 @@ releases mishandled unaligned relocations on @code{sparc-*-*} targets.
 @html
 <hr />
 @end html
-@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2*
-
-When configuring the GNU Multiple Precision Library (GMP) or the
-MPFR library, the canonical target triplet must be specified as
-the @command{build} parameter on the configure line.  For example
+@anchor{sparc64-x-solaris2}
+@heading sparc64-*-solaris2*
+When configuring the GNU Multiple Precision Library (GMP), the MPFR
+library or the MPC library, the canonical target triplet must be specified
+as the @command{build} parameter on the configure line.  For example
 on a Solaris 9 system:
 
 @smallexample
@@ -4283,37 +4453,46 @@ and @option{-xildoff} turns off the incremental linker.
 @html
 <hr />
 @end html
-@heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2*
-
+@anchor{sparcv9-x-solaris2}
+@heading sparcv9-*-solaris2*
 This is a synonym for @samp{sparc64-*-solaris2*}.
 
 @html
 <hr />
 @end html
-@heading @anchor{c6x-x-x}c6x-*-*
-
+@anchor{c6x-x-x}
+@heading c6x-*-*
 The C6X family of processors. This port requires binutils-2.22 or newer.
 
 @html
 <hr />
 @end html
-@heading @anchor{tilegx-*-linux}tilegx-*-linux*
-
-The TILE-Gx processor running GNU/Linux.  This port requires
-binutils-2.22 or newer.
+@anchor{tilegx-*-linux}
+@heading tilegx-*-linux*
+The TILE-Gx processor in little endian mode, running GNU/Linux.  This
+port requires binutils-2.22 or newer.
 
 @html
 <hr />
 @end html
-@heading @anchor{tilepro-*-linux}tilepro-*-linux*
+@anchor{tilegxbe-*-linux}
+@heading tilegxbe-*-linux*
+The TILE-Gx processor in big endian mode, running GNU/Linux.  This
+port requires binutils-2.23 or newer.
 
+@html
+<hr />
+@end html
+@anchor{tilepro-*-linux}
+@heading tilepro-*-linux*
 The TILEPro processor running GNU/Linux.  This port requires
 binutils-2.22 or newer.
 
 @html
 <hr />
 @end html
-@heading @anchor{x-x-vxworks}*-*-vxworks*
+@anchor{x-x-vxworks}
+@heading *-*-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@.
 We welcome patches for other architectures supported by VxWorks 5.5.
@@ -4348,8 +4527,8 @@ VxWorks will incorporate this module.)
 @html
 <hr />
 @end html
-@heading @anchor{x86-64-x-x}x86_64-*-*, amd64-*-*
-
+@anchor{x86-64-x-x}
+@heading x86_64-*-*, amd64-*-*
 GCC supports the x86-64 architecture implemented by the AMD64 processor
 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD@.
 On GNU/Linux the default is a bi-arch compiler which is able to generate
@@ -4358,8 +4537,8 @@ both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch).
 @html
 <hr />
 @end html
-@heading @anchor{x86-64-x-solaris210}x86_64-*-solaris2.1[0-9]*
-
+@anchor{x86-64-x-solaris210}
+@heading x86_64-*-solaris2.1[0-9]*
 GCC also supports the x86-64 architecture implemented by the AMD64
 processor (@samp{amd64-*-*} is an alias for @samp{x86_64-*-*}) on
 Solaris 10 or later.  Unlike other systems, without special options a
@@ -4374,8 +4553,8 @@ and @samp{CC=gcc -m64}.
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-x-elf}xtensa*-*-elf
-
+@anchor{xtensa-x-elf}
+@heading 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
@@ -4392,8 +4571,8 @@ which you can use to replace the default header file.
 @html
 <hr />
 @end html
-@heading @anchor{xtensa-x-linux}xtensa*-*-linux*
-
+@anchor{xtensa-x-linux}
+@heading 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
@@ -4404,7 +4583,8 @@ respects, this target is the same as the
 @html
 <hr />
 @end html
-@heading @anchor{windows}Microsoft Windows
+@anchor{windows}
+@heading Microsoft Windows
 
 @subheading Intel 16-bit versions
 The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
@@ -4414,7 +4594,6 @@ 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
@@ -4432,7 +4611,6 @@ the Win32 subsystem that provides a subset of POSIX.
 @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.
@@ -4440,12 +4618,10 @@ 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 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
@@ -4461,8 +4637,8 @@ UWIN support has been removed due to a lack of maintenance.
 @html
 <hr />
 @end html
-@heading @anchor{x-x-cygwin}*-*-cygwin
-
+@anchor{x-x-cygwin}
+@heading *-*-cygwin
 Ports of GCC are included with the
 @uref{http://www.cygwin.com/,,Cygwin environment}.
 
@@ -4478,8 +4654,8 @@ or version 2.20 or above if building your own.
 @html
 <hr />
 @end html
-@heading @anchor{x-x-interix}*-*-interix
-
+@anchor{x-x-interix}
+@heading *-*-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
@@ -4488,8 +4664,8 @@ the Win32 subsystem.  This target was last known to work in GCC 3.3.
 @html
 <hr />
 @end html
-@heading @anchor{x-x-mingw32}*-*-mingw32
-
+@anchor{x-x-mingw32}
+@heading *-*-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.
@@ -4497,8 +4673,8 @@ of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes.
 @html
 <hr />
 @end html
-@heading @anchor{older}Older systems
-
+@anchor{older}
+@heading 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
@@ -4543,8 +4719,8 @@ current GCC) is to be found in the GCC texinfo manual.
 @html
 <hr />
 @end html
-@heading @anchor{elf}all ELF targets (SVR4, Solaris 2, etc.)
-
+@anchor{elf}
+@heading 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