@settitle Installing GCC: GNU Free Documentation License
@end ifset
-@c Copyright (C) 1988-2013 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
@c Part 2 Summary Description and Copyright
@copying
-Copyright @copyright{} 1988-2013 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
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
@option{--with-mpc} configure option should be used. See also
@option{--with-mpc-lib} and @option{--with-mpc-include}.
-@item ISL Library version 0.11.1
+@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/}
-as @file{isl-0.11.1.tar.bz2}.
-
-The @option{--with-isl} configure option should be used if ISL is not
-installed in your default library search path.
+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.
-@item CLooG 0.18.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.18.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.11.1. Use @option{--with-isl=system}
-to direct CLooG to pick up an already installed ISL, otherwise it will use
-ISL 0.11.1 as bundled with CLooG. 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
@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)
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
@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
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
@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.
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.
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
@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
@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.
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),
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}
@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
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.
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
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
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 />
@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}
@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}
@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*}
@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*}
<!-- -------- 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
@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.
@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-*}
@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
@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
@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
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.
@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
@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.
@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}.
@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
@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@.
@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.
@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.
@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.
@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
@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.
@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.
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.
@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}
@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
@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.
@html
<hr />
@end html
-@heading @anchor{moxie-x-elf}moxie-*-elf
+@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}}.
@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,
@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.
@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.
@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
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.
@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
@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
@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
@html
<hr />
@end html
-@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2*
-
+@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
@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.
@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
@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
@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
@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
@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
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
@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 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
@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}.
@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
@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.
@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
@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