@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 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+@c 2010, 2011 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
systems' @command{tar} programs will also work, only try GNU
@command{tar} if you have problems.
+@item Perl version 5.6.1 (or later)
+
+Necessary when targetting Darwin, building @samp{libstdc++},
+and not using @option{--disable-symvers}.
+Necessary when targetting Solaris 2 with Sun @command{ld} and not using
+@option{--disable-symvers}. The bundled @command{perl} in Solaris@tie{}8
+and up works.
+
+Necessary when regenerating @file{Makefile} dependencies in libiberty.
+Necessary when regenerating @file{libiberty/functions.texi}.
+Necessary when generating manpages from Texinfo manuals.
+Used by various scripts to generate some files included in SVN (mainly
+Unicode-related and rarely changing) from source tables.
+
+@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip})
+
+Necessary to build libgcj, the GCJ runtime.
+
+@end table
+
+Several support libraries are necessary to build GCC, some are required,
+others optional. While any sufficiently new version of required tools
+usually work, library requirements are generally stricter. Newer
+versions may work in some cases, but it's safer to use the exact
+versions documented. We appreciate bug reports about problems with
+newer versions, though.
+
+@table @asis
@item GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
Necessary to build GCC@. If you do not have it installed in your
distribution is found in a subdirectory of your GCC sources named
@file{mpc}, it will be built together with GCC@.
-@item Parma Polyhedra Library (PPL) version 0.10
+@item Parma Polyhedra Library (PPL) version 0.11
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
+@item CLooG-PPL version 0.15 or CLooG 0.16
-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}.
+Necessary to build GCC with the Graphite loop optimizations. There
+are two versions available. CLooG-PPL 0.15 as well as CLooG 0.16.
+The former is the default right now. It can be downloaded from
+@uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/} as
+@file{cloog-ppl-0.15.tar.gz}.
-The @option{--with-cloog} configure option should be used if CLooG is
-not installed in your default library search path.
+CLooG 0.16 support is still in testing stage, but will be the
+default in future GCC releases. It is also available at
+@uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/} as
+@file{cloog-0.16.1.tar.gz}. To use it add the additional configure
+option @option{--enable-cloog-backend=isl}. Even if CLooG 0.16
+does not use PPL, PPL is still required for Graphite.
-@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip})
-
-Necessary to build libgcj, the GCJ runtime.
-
-@item libelf version 0.8.12 (or later)
-
-Necessary to build link-time optimization (LTO) support. It can be
-downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
-though it is commonly available in several systems. The version in
-IRIX 6.5 doesn't work since it lacks @file{gelf.h}. The version in
-Solaris 2 does work.
-
-The @option{--with-libelf} configure option should be used if libelf is
-not installed in your default library search patch.
+In both cases @option{--with-cloog} configure option should be used
+if CLooG is not installed in your default library search path.
@end table
@item @TeX{} (any working version)
-Necessary for running @command{texi2dvi} and @command{texi2pdf}, which
+Necessary for running @command{texi2dvi} and @command{texi2pdf}, which
are used when running @command{make dvi} or @command{make pdf} to create
DVI or PDF files, respectively.
Necessary to access the SVN repository. Public releases and weekly
snapshots of the development sources are also available via FTP@.
-@item Perl version 5.6.1 (or later)
-
-Necessary when regenerating @file{Makefile} dependencies in libiberty.
-Necessary when regenerating @file{libiberty/functions.texi}.
-Necessary when generating manpages from Texinfo manuals.
-Necessary when targetting Darwin, building libstdc++,
-and not using @option{--disable-symvers}.
-Used by various scripts to generate some files included in SVN (mainly
-Unicode-related and rarely changing) from source tables.
-
@item GNU diffutils version 2.7 (or later)
Useful when submitting patches for the GCC source code.
To configure GCC:
@smallexample
- % mkdir @var{objdir}
- % cd @var{objdir}
- % @var{srcdir}/configure [@var{options}] [@var{target}]
+% mkdir @var{objdir}
+% cd @var{objdir}
+% @var{srcdir}/configure [@var{options}] [@var{target}]
@end smallexample
@heading Distributor options
on other configuration options, and differs between cross and native
configurations.
+@item --with-specs=@var{specs}
+Specify additional command line driver SPECS.
+This can be useful if you need to turn on a non-standard feature by
+default without modifying the compiler's source code, for instance
+@option{--with-specs=%@{!fcommon:%@{!fno-common:-fno-common@}@}}.
+@ifnothtml
+@xref{Spec Files,, Specifying subprocesses and the switches to pass to them,
+gcc, Using the GNU Compiler Collection (GCC)},
+@end ifnothtml
+@ifhtml
+See ``Spec Files'' in the main manual
+@end ifhtml
+
@end table
@item --program-prefix=@var{prefix}
will be built. Package names currently recognized in the GCC tree are
@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not
@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc},
-@samp{ada}, @samp{libada}, @samp{libjava} and @samp{libobjc}.
+@samp{ada}, @samp{libada}, @samp{libjava}, @samp{libgo}, and @samp{libobjc}.
Note @samp{libiberty} does not support shared libraries at all.
Use @option{--disable-shared} to build only static libraries. Note that
workable alternative. This requires gas and gdb, as the normal SVR4
tools can not generate or interpret stabs.
+@item --with-tls=@var{dialect}
+Specify the default TLS dialect, for systems were there is a choice.
+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 --disable-multilib
Specify that multiple target
libraries to support different target variants, calling
Some targets provide finer-grained control over which multilibs are built
(e.g., @option{--disable-softfloat}):
@table @code
-@item arc-*-elf*
-biendian.
-
@item arm-*-*
fpu, 26bit, underscore, interwork, biendian, nofmult.
Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with
only little endian SH4AL:
@smallexample
---with-cpu=sh4a --with-endian=little,big --with-multilib-list=sh4al,!mb/m4al
+--with-cpu=sh4a --with-endian=little,big \
+--with-multilib-list=sh4al,!mb/m4al
@end smallexample
@item --with-endian=@var{endians}
AIX thread support.
@item dce
DCE thread support.
-@item gnat
-Ada tasking support. For non-Ada programs, this setting is equivalent
-to @samp{single}. When used in conjunction with the Ada run time, it
-causes GCC to use the same thread primitives as Ada uses. This option
-is necessary when using both Ada and the back end exception handling,
-which is the default for most Ada targets.
-@item mach
-Generic MACH thread support, known to work on NeXTSTEP@. (Please note
-that the file needed to support this configuration, @file{gthr-mach.h}, is
-missing and thus this setting will cause a known bootstrap failure.)
+@item lynx
+LynxOS thread support.
+@item mipssde
+MIPS SDE thread support.
+@item nks
+Novell Kernel Services thread support.
@item no
This is an alias for @samp{single}.
@item posix
RTEMS thread support.
@item single
Disable thread support, should work for all platforms.
-@item solaris
-Sun Solaris 2/Unix International thread support. Only use this if you
-really need to use this legacy API instead of the default, @samp{posix}.
+@item tpf
+TPF thread support.
@item vxworks
VxWorks thread support.
@item win32
Microsoft Win32 API thread support.
-@item nks
-Novell Kernel Services thread support.
@end table
@item --enable-tls
Specify if the compiler should default to @option{-marm} or @option{-mthumb}.
This option is only supported on ARM targets.
-@item --with-fpmath=sse
-Specify if the compiler should default to @option{-msse2} and
-@option{-mfpmath=sse}. This option is only supported on i386 and
-x86-64 targets.
+@item --with-fpmath=@var{isa}
+This options sets @option{-mfpmath=sse} by default and specifies the default
+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-divide=@var{type}
Specify how the compiler should generate code for checking for
On MIPS targets, make @option{-msynci} the default when no
@option{-mno-synci} option is passed.
-@item --without-synci
+@item --without-synci
On MIPS targets, make @option{-mno-synci} the default when no
@option{-msynci} option is passed. This is the default.
only available on systems with GNU libc. When enabled, this will cause
@option{-fuse-cxa-atexit} to be passed by default.
+@item --enable-indirect-function
+Define if you want to enable the @code{ifunc} attribute. This option is
+currently only available on systems with GNU libc on certain targets.
+
@item --enable-target-optspace
Specify that target
libraries should be optimized for code space instead of code speed.
grep language= */config-lang.in
@end smallexample
Currently, you can use any of the following:
-@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, @code{java},
-@code{objc}, @code{obj-c++}.
+@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran},
+@code{go}, @code{java}, @code{objc}, @code{obj-c++}.
Building the Ada compiler has special requirements, see below.
If you do not pass this flag, or specify the option @code{all}, then all
default languages available in the @file{gcc} sub-tree will be configured.
-Ada and Objective-C++ are not default languages; the rest are.
-Re-defining @code{LANGUAGES} when calling @samp{make} @strong{does not}
-work anymore, as those language sub-directories might not have been
-configured!
+Ada, Go and Objective-C++ are not default languages; the rest are.
@item --enable-stage1-languages=@var{lang1},@var{lang2},@dots{}
Specify that a particular subset of compilers and their runtime
Specify that the run-time libraries for stack smashing protection
should not be built.
+@item --disable-libquadmath
+Specify that the GCC quad-precision math library should not be built.
+On some systems, the library is required to be linkable when building
+the Fortran front end, unless @option{--disable-libquadmath-support}
+is used.
+
+@item --disable-libquadmath-support
+Specify that the Fortran front end and @code{libgfortran} do not add
+support for @code{libquadmath} on systems supporting it.
+
@item --disable-libgomp
Specify that the run-time libraries used by GOMP should not be built.
library and/or the MPC library installed in a standard location and
you want to build GCC, you can explicitly specify the directory where
they are installed (@samp{--with-gmp=@var{gmpinstalldir}},
-@samp{--with-mpfr=@var{mpfrinstalldir}},
-@samp{--with-mpc=@var{mpcinstalldir}}). The
-@option{--with-gmp=@var{gmpinstalldir}} option is shorthand for
-@option{--with-gmp-lib=@var{gmpinstalldir}/lib} and
-@option{--with-gmp-include=@var{gmpinstalldir}/include}. Likewise the
-@option{--with-mpfr=@var{mpfrinstalldir}} option is shorthand for
-@option{--with-mpfr-lib=@var{mpfrinstalldir}/lib} and
-@option{--with-mpfr-include=@var{mpfrinstalldir}/include}, also the
-@option{--with-mpc=@var{mpcinstalldir}} option is shorthand for
-@option{--with-mpc-lib=@var{mpcinstalldir}/lib} and
-@option{--with-mpc-include=@var{mpcinstalldir}/include}. If these
+@samp{--with-mpfr=@/@var{mpfrinstalldir}},
+@samp{--with-mpc=@/@var{mpcinstalldir}}). The
+@option{--with-gmp=@/@var{gmpinstalldir}} option is shorthand for
+@option{--with-gmp-lib=@/@var{gmpinstalldir}/lib} and
+@option{--with-gmp-include=@/@var{gmpinstalldir}/include}. Likewise the
+@option{--with-mpfr=@/@var{mpfrinstalldir}} option is shorthand for
+@option{--with-mpfr-lib=@/@var{mpfrinstalldir}/lib} and
+@option{--with-mpfr-include=@/@var{mpfrinstalldir}/include}, also the
+@option{--with-mpc=@/@var{mpcinstalldir}} option is shorthand for
+@option{--with-mpc-lib=@/@var{mpcinstalldir}/lib} and
+@option{--with-mpc-include=@/@var{mpcinstalldir}/include}. If these
shorthand assumptions are not correct, you can use the explicit
-include and lib options directly.
+include and lib options directly. You might also need to ensure the
+shared libraries can be found by the dynamic linker when building and
+using GCC, for example by setting the runtime shared library path
+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}
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
+(@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.
+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-host-libstdcxx=@var{linker-args}
If you are linking with a static copy of PPL, you can use this option
to specify how the linker should find the standard C++ library used
@item --with-boot-ldflags=@var{flags}
This option may be used to set linker flags to be used when linking
-stage 2 and later when bootstrapping GCC. By default no special flags
-are used.
+stage 2 and later when bootstrapping GCC. If neither --with-boot-libs
+nor --with-host-libstdcxx is set to a value, then the default is
+@samp{-static-libstdc++ -static-libgcc}.
@item --with-boot-libs=@var{libs}
This option may be used to set libraries to be used when linking stage 2
support @option{--build-id} option, a warning is issued and the
@option{--enable-linker-build-id} option is ignored. The default is off.
+@item --with-linker-hash-style=@var{choice}
+Tells GCC to pass @option{--hash-style=@var{choice}} option to the
+linker for all final links. @var{choice} can be one of
+@samp{sysv}, @samp{gnu}, and @samp{both} where @samp{sysv} is the default.
+
@item --enable-gnu-unique-object
@itemx --disable-gnu-unique-object
Tells GCC to use the gnu_unique_object relocation for C++ template
GLIBC 2.11 or above, otherwise disabled.
@item --enable-lto
+@itemx --disable-lto
Enable support for link-time optimization (LTO). This is enabled by
-default if a working libelf implementation is found (see
-@option{--with-libelf}).
-
-@item --with-libelf=@var{pathname}
-@itemx --with-libelf-include=@var{pathname}
-@itemx --with-libelf-lib=@var{pathname}
-If you do not have libelf installed in a standard location and you
-want to enable support for link-time optimization (LTO), you can
-explicitly specify the directory where libelf is installed
-(@samp{--with-libelf=@var{libelfinstalldir}}). The
-@option{--with-libelf=@var{libelfinstalldir}} option is shorthand for
-@option{--with-libelf-include=@var{libelfinstalldir}/include}
-@option{--with-libelf-lib=@var{libelfinstalldir}/lib}.
-
-@item --enable-gold
-Enable support for using @command{gold} as the linker. If gold support is
-enabled together with @option{--enable-lto}, an additional directory
-@file{lto-plugin} will be built. The code in this directory is a
-plugin for gold that allows the link-time optimizer to extract object
-files with LTO information out of library archives. See
-@option{-flto} and @option{-fwhopr} for details.
+default, and may be disabled using @option{--disable-lto}.
+
+@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.
@end table
@subheading Cross-Compiler-Specific Options
@table @code
@item --with-sysroot
@itemx --with-sysroot=@var{dir}
-Tells GCC to consider @var{dir} as the root of a tree that contains a
-(subset of) the root filesystem of the target operating system.
+Tells GCC to consider @var{dir} as the root of a tree that contains
+(a subset of) the root filesystem of the target operating system.
Target system headers, libraries and run-time object files will be
searched in there. More specifically, this acts as if
@option{--sysroot=@var{dir}} was added to the default options of the built
only useful when you are already using @option{--with-sysroot}. You
can use @option{--with-build-sysroot} when you are configuring with
@option{--prefix} set to a directory that is different from the one in
-which you are installing GCC and your target libraries.
+which you are installing GCC and your target libraries.
This option affects the system root for the compiler used to build
target libraries (which runs on the build system); it does not affect
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
+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
java-1.5.0-gcj.
@item --with-arch-suffix=SUFFIX
-Specifies the suffix for the sdk directory. Defaults to the empty string.
+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
@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
+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.
@end table
+@subsubheading Overriding @command{configure} test results
+
+Sometimes, it might be necessary to override the result of some
+@command{configure} test, for example in order to ease porting to a new
+system or work around a bug in a test. The toplevel @command{configure}
+script provides three variables for this:
+
+@table @code
+
+@item build_configargs
+@cindex @code{build_configargs}
+The contents of this variable is passed to all build @command{configure}
+scripts.
+
+@item host_configargs
+@cindex @code{host_configargs}
+The contents of this variable is passed to all host @command{configure}
+scripts.
+
+@item target_configargs
+@cindex @code{target_configargs}
+The contents of this variable is passed to all target @command{configure}
+scripts.
+
+@end table
+
+In order to avoid shell and @command{make} quoting issues for complex
+overrides, you can pass a setting for @env{CONFIG_SITE} and set
+variables in the site file.
+
@html
<hr />
<p>
debugging information.)
@smallexample
- make BOOT_CFLAGS='-O' bootstrap
+make BOOT_CFLAGS='-O' bootstrap
@end smallexample
You can place non-default optimization flags into @code{BOOT_CFLAGS}; they
GNU Make 3.80 and above, which is necessary to build GCC, support
building in parallel. To activate this, you can use @samp{make -j 2}
-instead of @samp{make}. You can also specify a bigger number, and
+instead of @samp{make}. You can also specify a bigger number, and
in most cases using a value greater than the number of processors in
your machine will result in fewer and shorter I/O latency hits, thus
improving overall throughput; this is especially true for slow drives
assumes that DejaGnu has been installed under @file{/usr/local}):
@smallexample
- TCL_LIBRARY = /usr/local/share/tcl8.0
- DEJAGNULIBS = /usr/local/share/dejagnu
+TCL_LIBRARY = /usr/local/share/tcl8.0
+DEJAGNULIBS = /usr/local/share/dejagnu
@end smallexample
(On systems such as Cygwin, these paths are required to be actual
Finally, you can run the testsuite (which may take a long time):
@smallexample
- cd @var{objdir}; make -k check
+cd @var{objdir}; make -k check
@end smallexample
This will test various components of GCC, such as compiler
testsuite is to use
@smallexample
- make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
+make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
@end smallexample
Likewise, in order to run only the @command{g++} ``old-deja'' tests in
the testsuite with filenames matching @samp{9805*}, you would use
@smallexample
- make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
+make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
@end smallexample
The @file{*.exp} files are located in the testsuite directories of the GCC
work outside the makefiles. For example,
@smallexample
- make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
+make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
@end smallexample
will run the standard @command{g++} testsuites (``unix'' is the target name
with a syntax similar to the brace expansion of popular shells:
@smallexample
- @dots{}"--target_board=arm-sim\@{-mhard-float,-msoft-float\@}\@{-O1,-O2,-O3,\@}"
+@dots{}"--target_board=arm-sim\@{-mhard-float,-msoft-float\@}\@{-O1,-O2,-O3,\@}"
@end smallexample
(Note the empty option caused by the trailing comma in the final group.)
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
+--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
@end smallexample
They can be combined as many times as you wish, in arbitrary ways. This
list:
@smallexample
- @dots{}"--target_board=unix/-Wextra\@{-O3,-fno-strength\@}\@{-fomit-frame,\@}"
+@dots{}"--target_board=unix/-Wextra\@{-O3,-fno-strength\@}\@{-fomit-frame,\@}"
@end smallexample
will generate four combinations, all involving @samp{-Wextra}.
special makefile target:
@smallexample
- make -j@var{N} check-@var{testsuite}//@var{test-target}/@var{option1}/@var{option2}/@dots{}
+make -j@var{N} check-@var{testsuite}//@var{test-target}/@var{option1}/@var{option2}/@dots{}
@end smallexample
For example,
@smallexample
- make -j3 check-gcc//sh-hms-sim/@{-m1,-m2,-m3,-m3e,-m4@}/@{,-nofpu@}
+make -j3 check-gcc//sh-hms-sim/@{-m1,-m2,-m3,-m3e,-m4@}/@{,-nofpu@}
@end smallexample
will run three concurrent ``make-gcc'' testsuites, eventually testing all
@file{contrib/test_summary} shell script. Start it in the @var{objdir} with
@smallexample
- @var{srcdir}/contrib/test_summary -p your_commentary.txt \
- -m gcc-testresults@@gcc.gnu.org |sh
+@var{srcdir}/contrib/test_summary -p your_commentary.txt \
+ -m gcc-testresults@@gcc.gnu.org |sh
@end smallexample
This script uses the @command{Mail} program to send the results, so
Now that GCC has been built (and optionally tested), you can install it with
@smallexample
-cd @var{objdir}; make install
+cd @var{objdir} && make install
@end smallexample
We strongly recommend to install into a target directory where there is
make DESTDIR=@var{path-to-rootdir} install
@end smallexample
-@noindent where @var{path-to-rootdir} is the absolute path of
+@noindent
+where @var{path-to-rootdir} is the absolute path of
a directory relative to which all installation paths will be
interpreted. Note that the directory specified by @code{DESTDIR}
need not exist yet; it will be created if necessary.
not as a bug, because it gives slightly more control to the packagers
using the @code{DESTDIR} feature.
+You can install stripped programs and libraries with
+
+@smallexample
+make install-strip
+@end smallexample
+
If you are bootstrapping a released version of GCC then please
quickly review the build status page for your release, available from
@uref{http://gcc.gnu.org/buildstat.html}.
HP-UX:
@itemize
@item
-@uref{http://hpux.cs.utah.edu/,,HP-UX Porting Center};
+@uref{http://hpux.connect.org.uk/,,HP-UX Porting Center};
@item
@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
@end itemize
@item
-Motorola 68HC11/68HC12---@uref{http://www.gnu-m68hc11.org,,GNU
-Development Tools for the Motorola 68HC11/68HC12}.
-
-@item
@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
OpenServer/Unixware}.
@item
-Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}.
+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
-SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}.
+@uref{http://jupiterrise.com/tgcware/,,TGCware}
+@end itemize
+
+@item
+SGI IRIX:
+@itemize
+@item
+@uref{http://nekochan.net/,,Nekoware}
+
+@item
+@uref{http://jupiterrise.com/tgcware/,,TGCware}
+@end itemize
@item
Microsoft Windows:
@item
@uref{#alpha-dec-osf51,,alpha*-dec-osf5.1}
@item
-@uref{#arc-x-elf,,arc-*-elf}
-@item
@uref{#arm-x-elf,,arm-*-elf}
@item
@uref{#avr,,avr}
@item
@uref{#ix86-x-linux,,i?86-*-linux*}
@item
+@uref{#ix86-x-solaris289,,i?86-*-solaris2.[89]}
+@item
@uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
@item
@uref{#ia64-x-linux,,ia64-*-linux}
@item
@uref{#m32r-x-elf,,m32r-*-elf}
@item
-@uref{#m6811-elf,,m6811-elf}
-@item
-@uref{#m6812-elf,,m6812-elf}
-@item
@uref{#m68k-x-x,,m68k-*-*}
@item
@uref{#m68k-uclinux,,m68k-uclinux}
@item
@uref{#mep-x-elf,,mep-*-elf}
@item
+@uref{#microblaze-x-elf,,microblaze-*-elf}
+@item
@uref{#mips-x-x,,mips-*-*}
@item
@uref{#mips-sgi-irix5,,mips-sgi-irix5}
@item
@uref{#x-x-solaris2,,*-*-solaris2*}
@item
+@uref{#sparc-x-x,,sparc*-*-*}
+@item
@uref{#sparc-sun-solaris2,,sparc-sun-solaris2*}
@item
@uref{#sparc-sun-solaris210,,sparc-sun-solaris2.10}
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.
-As of GCC 3.2, versions before @code{alpha*-dec-osf4} are no longer
-supported. (These are the versions which identify themselves as DEC
-OSF/1.) As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been
-removed.
+Support for Tru64 UNIX V5.1 has been obsoleted in GCC 4.7, but can still
+be enabled by configuring with @option{--enable-obsolete}. Support will
+be removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and
+V5.0 has been removed. As of GCC 3.2, versions before
+@code{alpha*-dec-osf4} are no longer supported. (These are the versions
+which identify themselves as DEC OSF/1.)
On Tru64 UNIX, virtual memory exhausted bootstrap failures
may be fixed by reconfiguring Kernel Virtual Memory and Swap parameters
the OS version used, you need a data segment size between 512 MB and
1 GB, so simply use @command{ulimit -Sd unlimited}.
-As of GNU binutils 2.20.1, neither GNU @command{as} nor GNU @command{ld}
+As of GNU binutils 2.21, neither GNU @command{as} nor GNU @command{ld}
are supported on Tru64 UNIX, so you must not configure GCC with
@option{--with-gnu-as} or @option{--with-gnu-ld}.
+Cross-compilers for the Tru64 UNIX target currently do not work because
+the auxiliary programs @command{mips-tdump} and @command{mips-tfile} can't
+be compiled on anything but Tru64 UNIX.
+
GCC writes a @samp{.verstamp} directive to the assembler output file
unless it is built as a cross-compiler. It gets the version to use from
the system header file @file{/usr/include/stamp.h}. If you install a
@html
<hr />
@end html
-@heading @anchor{arc-x-elf}arc-*-elf
-Argonaut ARC processor.
-This configuration is intended for embedded systems.
-
-@html
-<hr />
-@end html
@heading @anchor{arm-x-elf}arm-*-elf
ARM-family processors. Subtargets that use the ELF object format
require GNU binutils 2.13 or newer. Such subtargets include:
The following error:
@smallexample
- Error: register required
+Error: register required
@end smallexample
indicates that you should upgrade to a newer version of the binutils.
or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer.
Pre-packaged tools can be obtained from
-@uref{ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/}. More
+@uref{ftp://ftp.axis.com/@/pub/@/axis/@/tools/@/cris/@/compiler-kit/}. More
information about this platform is available at
@uref{http://developer.axis.com/}.
@html
<hr />
@end html
-@heading @anchor{crx}CRX
-
-The CRX CompactRISC architecture is a low-power 32-bit architecture with
-fast context switching and architectural extensibility features.
-
-@ifnothtml
-@xref{CRX Options,, CRX Options, gcc, Using and Porting the GNU Compiler
-Collection (GCC)},
-@end ifnothtml
-
-@ifhtml
-See ``CRX Options'' in the main manual for a list of CRX-specific options.
-@end ifhtml
-
-Use @samp{configure --target=crx-elf --enable-languages=c,c++} to configure
-GCC@ for building a CRX cross-compiler. The option @samp{--target=crx-elf}
-is also used to build the @samp{newlib} C library for CRX.
-
-It is also possible to build libstdc++-v3 for the CRX architecture. This
-needs to be done in a separate step with the following configure settings:
-@samp{gcc/libstdc++-v3/configure --host=crx-elf --with-newlib
---enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti'}
-
-@html
-<hr />
-@end html
@heading @anchor{dos}DOS
Please have a look at the @uref{binaries.html,,binaries page}.
FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was
discontinued in GCC 4.0.
-In GCC 4.5, we enabled the use of @code{dl_iterate_phdr} inside boehm-gc on
-FreeBSD 7 or later. In order to better match the configuration of the
-FreeBSD system compiler: We also enabled the check to see if libc
-provides SSP support (which it does on FreeBSD 7), the use of
-@code{dl_iterate_phdr} inside @file{libgcc_s.so.1} (on FreeBSD 7 or later)
-and the use of @code{__cxa_atexit} by default (on FreeBSD 6 or later).
+In order to better utilize FreeBSD base system functionality and match
+the configuration of the system compiler, GCC 4.5 and above as well as
+GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is present
+on FreeBSD 7 or later) and the use of @code{__cxa_atexit} by default
+(on FreeBSD 6 or later). The use of @code{dl_iterate_phdr} inside
+@file{libgcc_s.so.1} and boehm-gc (on FreeBSD 7 or later) is enabled
+by GCC 4.5 and above.
We support FreeBSD using the ELF file format with DWARF 2 debugging
for all CPU architectures. You may use @option{-gstabs} instead of
@heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10
For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
-@code{PHCO_19798} from HP@. HP has two sites which provide patches free of
-charge:
-
-@itemize @bullet
-@item
-@html
-<a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and
-Latin-America</a>
-@end html
-@ifnothtml
-@uref{http://us.itrc.hp.com/service/home/home.do,,} US, Canada, Asia-Pacific,
-and Latin-America.
-@end ifnothtml
-@item
-@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
-@end itemize
+@code{PHCO_19798} from HP@.
The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are
used for one-only code and data. This resolves many of the previous
@html
<hr />
@end html
+@heading @anchor{ix86-x-solaris289}i?86-*-solaris2.[89]
+The Sun assembler in Solaris 8 and 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.21, 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. There is no
+corresponding patch for Solaris 8. To avoid this problem,
+@option{-march} defaults to @samp{pentiumpro} on Solaris 8 and 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
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. Unlike
@file{/usr/sfw/bin/gas}. The versions included in Solaris 10, from GNU
binutils 2.15, and Solaris 11, from GNU binutils 2.19, work fine,
although the current version, from GNU binutils
-2.20.1, is known to work, too. Recent versions of the Sun assembler in
+2.21, is known to work, too. Recent versions of the Sun assembler in
@file{/usr/ccs/bin/as} work almost as well, though.
@c FIXME: as patch requirements?
linker instead, which is available in @file{/usr/sfw/bin/gld}, note that
due to a packaging bug the version in Solaris 10, from GNU binutils
2.15, cannot be used, while the version in Solaris 11, from GNU binutils
-2.19, works, as does the latest version, from GNU binutils 2.20.1.
+2.19, works, as does the latest version, from GNU binutils 2.21.
To use GNU @command{as}, configure with the options
-@option{--with-gnu-as --with-as=/usr/sfw/bin/gas}. It may be necessary
-to configure with @option{--without-gnu-ld --with-ld=/usr/ccs/bin/ld} to
+@option{--with-gnu-as --with-as=@//usr/@/sfw/@/bin/@/gas}. It may be necessary
+to configure with @option{--without-gnu-ld --with-ld=@//usr/@/ccs/@/bin/@/ld} to
guarantee use of Sun @command{ld}.
@c FIXME: why --without-gnu-ld --with-ld?
@var{LDR_CNTRL} environment variable, e.g.,
@smallexample
- % LDR_CNTRL=MAXDATA=0x50000000
- % export LDR_CNTRL
+% LDR_CNTRL=MAXDATA=0x50000000
+% export LDR_CNTRL
@end smallexample
One can start with a pre-compiled version of GCC to build from
one may use GNU Bash instead of AIX @command{/bin/sh}, e.g.,
@smallexample
- % CONFIG_SHELL=/opt/freeware/bin/bash
- % export CONFIG_SHELL
+% CONFIG_SHELL=/opt/freeware/bin/bash
+% export CONFIG_SHELL
@end smallexample
and then proceed as described in @uref{build.html,,the build
Extract the shared objects from the currently installed
@file{libstdc++.a} archive:
@smallexample
- % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
+% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
@end smallexample
Enable the @samp{F_LOADONLY} flag so that the shared object will be
available for runtime dynamic loading, but not linking:
@smallexample
- % strip -e libstdc++.so.4 libstdc++.so.5
+% strip -e libstdc++.so.4 libstdc++.so.5
@end smallexample
Archive the runtime-only shared object in the GCC 3.4
@file{libstdc++.a} archive:
@smallexample
- % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
+% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
@end smallexample
Linking executables and shared libraries may produce warnings of
@html
<hr />
@end html
-@heading @anchor{m6811-elf}m6811-elf
-Motorola 68HC11 family micro controllers. These are used in embedded
-applications. There are no standard Unix configurations.
-
-@html
-<hr />
-@end html
-@heading @anchor{m6812-elf}m6812-elf
-Motorola 68HC12 family micro controllers. These are used in embedded
-applications. There are no standard Unix configurations.
-
-@html
-<hr />
-@end html
@heading @anchor{m68k-x-x}m68k-*-*
By default,
@samp{m68k-*-elf*}, @samp{m68k-*-rtems}, @samp{m68k-*-uclinux} and
@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030},
@samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}.
+GCC requires at least binutils version 2.17 on these targets.
+
@html
<hr />
@end html
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. However, you can still use the
-original ABI by configuring for @samp{m68k-uclinuxoldabi} or
-@samp{m68k-@var{vendor}-uclinuxoldabi}.
+both of which were ABI changes.
@html
@html
<hr />
@end html
+@heading @anchor{microblaze-x-elf}microblaze-*-elf
+Xilinx MicroBlaze processor.
+This configuration is intended for embedded systems.
+
+@html
+<hr />
+@end html
@heading @anchor{mips-x-x}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
@command{configure} option when configuring GCC@. The default is to
use traps on systems that support them.
-Cross-compilers for the MIPS as target using the MIPS assembler
-currently do not work, because the auxiliary programs
-@file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on
-anything but a MIPS@. It does work to cross compile for a MIPS
-if you use the GNU assembler and linker.
-
The assembler from GNU binutils 2.17 and earlier has a bug in the way
it sorts relocations for REL targets (o32, o64, EABI). This can cause
bad code to be generated for simple C++ programs. Also the linker
@end html
@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
-Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as
-well as support for
-the O32 ABI. It is @emph{strongly} recommended to upgrade to at least
-IRIX 6.5.18. This release introduced full ISO C99 support, though for
-the N32 and N64 ABIs only.
+Support for IRIX 6.5 has been obsoleted in GCC 4.7, but can still be
+enabled by configuring with @option{--enable-obsolete}. Support will be
+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. It is
+@emph{strongly} recommended to upgrade to at least IRIX 6.5.18. This
+release introduced full ISO C99 support, though for the N32 and N64 ABIs
+only.
To build and use GCC on IRIX 6.5, you need the IRIX Development Foundation
(IDF) and IRIX Development Libraries (IDL). They are included with the
have the 64-bit libraries installed.
GCC must be configured with GNU @command{as}. The latest version, from GNU
-binutils 2.20.1, is known to work. On the other hand, bootstrap fails
+binutils 2.21, is known to work. On the other hand, bootstrap fails
with GNU @command{ld} at least since GNU binutils 2.17.
The @option{--enable-libgcj}
Pre-installed versions of Mac OS X may not include any developer tools,
meaning that you will not be able to build GCC from source. Tool
binaries are available at
-@uref{http://developer.apple.com/darwin/projects/compiler/} (free
-registration required).
+@uref{http://opensource.apple.com/}.
This version of GCC requires at least cctools-590.36. The
cctools-590.36 package referenced from
@c alone is too unspecific and must be avoided.
@heading @anchor{x-x-solaris2}*-*-solaris2*
-Support for Solaris 7 has been removed in GCC 4.6.
+Support for Solaris 8 has been obsoleted in GCC 4.7, but can still be
+enabled by configuring with @option{--enable-obsolete}. Support will be
+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, though you can download
-the Sun Studio compilers for free from
-@uref{http://developers.sun.com/sunstudio/downloads/}. Alternatively,
+the Sun Studio compilers for free. Alternatively,
you can install a pre-built GCC to bootstrap and install GCC. See the
@uref{binaries.html,,binaries page} for details.
recommend using the following initial sequence of commands
@smallexample
- % CONFIG_SHELL=/bin/ksh
- % export CONFIG_SHELL
+% CONFIG_SHELL=/bin/ksh
+% export CONFIG_SHELL
@end smallexample
@noindent
conjunction with the Sun linker. The GNU @command{as}
versions included in Solaris 10, from GNU binutils 2.15, and Solaris 11,
from GNU binutils 2.19, are known to work. They can be found in
-@file{/usr/sfw/bin/gas}. Current versions of GNU binutils (2.20.1)
+@file{/usr/sfw/bin/gas}. Current versions of GNU binutils (2.21)
are known to work as well. 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,
@c FIXME: still?
GNU @command{ld} usually works as well, although the version included in
Solaris 10 cannot be used due to several bugs. Again, the current
-version (2.20.1) is known to work, but generally lacks platform specific
+version (2.21) is known to work, but generally lacks platform specific
features, so better stay with Sun @command{ld}.
+To enable symbol versioning in @samp{libstdc++} with Sun @command{ld},
+you need to have any version of GNU @command{c++filt}, which is part of
+GNU binutils. @samp{libstdc++} symbol versioning will be disabled if no
+appropriate version is found. Sun @command{c++filt} from the Sun Studio
+compilers does @emph{not} work.
+
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
117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
SPARC, 117172-11 or newer for Intel) that address this problem.
+Solaris@tie{}8 provides an alternate implementation of the thread libraries,
+@samp{libpthread} and @samp{libthread}. They are required for TLS
+support and have been made the default in Solaris@tie{}9, so they are always
+used on Solaris@tie{}8.
+
+Thread-local storage (TLS) is supported in Solaris@tie{}8 and 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{}8, you need 108993-26 or newer on
+SPARC, 108994-26 or newer on Intel. 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{}8, patch 109147-14 or newer on SPARC or
+109148-22 or newer on Intel are required for the Sun @command{ld} and
+runtime linker (@command{ld.so.1}) support. Again, Solaris@tie{}9/SPARC
+works since FCS, while 113986-02 is required on Intel. The linker
+patches must be installed even if GNU @command{ld} is used. Sun
+@command{as} in Solaris@tie{}8 and 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*-*-*
+
+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.
+
+Newer versions of the GNU Multiple Precision Library (GMP), the MPFR
+library and the MPC library are known to be miscompiled by earlier
+versions of GCC on these platforms. We therefore recommend the use
+of the exact versions of these libraries listed as minimal versions
+in @uref{prerequisites.html,,the prerequisites}.
+
@html
<hr />
@end html
To work around this problem, compile with @option{-gstabs+} instead of
plain @option{-g}.
-When configuring the GNU Multiple Precision Library (GMP) or the MPFR
-library on a Solaris 7 or later system, the canonical target triplet
-must be specified as the @command{build} parameter on the configure
-line. This triplet can be obtained by invoking @command{./config.guess} in
-the toplevel source directory of GCC (and not that of GMP or MPFR).
-For example on a Solaris 9 system:
+When configuring the GNU Multiple Precision Library (GMP), the MPFR
+library or the MPC library on a Solaris 7 or later system, the canonical
+target triplet must be specified as the @command{build} parameter on the
+configure line. This target triplet can be obtained by invoking @command{./config.guess} in the toplevel source directory of GCC (and
+not that of GMP or MPFR or MPC). For example on a Solaris 9 system:
@smallexample
- % ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
+% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
@end smallexample
@html
on a Solaris 9 system:
@smallexample
- % ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
+% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
@end smallexample
The following compiler flags must be specified in the configure
step in order to bootstrap this target with the Sun compiler:
@smallexample
- % CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}]
+% CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}]
@end smallexample
@noindent
@heading @anchor{windows}Microsoft Windows
@subheading Intel 16-bit versions
-The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
+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
+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
+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
+@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
+@item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem
provides native support for POSIX.
-@item MinGW @uref{#x-x-mingw32,,*-*-mingw32}: MinGW is a native GCC port for
+@item MinGW @uref{#x-x-mingw32,,*-*-mingw32}: 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
+@item MKS i386-pc-mks: NuTCracker from MKS. See
@uref{http://www.mkssoftware.com/} for more information.
@end itemize
@subheading Windows CE
-Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi
+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
+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
+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.
@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 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