X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fdoc%2Finstall.texi;h=072436a62046d76c69ad5463c9fd3471f0cce293;hb=0d0147a561d690b096cfb61a8312e6aeadccf9f7;hp=93e009002e48afd9dab482d78d07838c3c642cba;hpb=8ab3293372b2ce4fd81e88056a39bb9e4042bac6;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 93e009002e4..072436a6204 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -43,9 +43,14 @@ @end ifset @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -@c 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 test the generation of HTML documents for the gcc.gnu.org web pages. +@c +@c Do not use @footnote{} in this file as it breaks install.texi2html! + @c Include everything if we're not making html @ifnothtml @set indexhtml @@ -64,7 +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 Free Software Foundation, Inc. +1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @sp 1 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or @@ -87,7 +92,7 @@ Free Documentation License}''. @ifinfo @insertcopying @end ifinfo -@dircategory Programming +@dircategory Software development @direntry * gccinstall: (gccinstall). Installing the GNU Compiler Collection. @end direntry @@ -230,10 +235,10 @@ described below. @heading Tools/packages necessary for building GCC @table @asis @item ISO C90 compiler -Necessary to bootstrap the GCC package, although versions of GCC prior +Necessary to bootstrap GCC, although versions of GCC prior to 3.4 also allow bootstrapping with a traditional (K&R) C compiler. -To make all languages in a cross-compiler or other configuration where +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 frontends other than C might use GCC extensions. @@ -249,8 +254,8 @@ specific information. Necessary when running @command{configure} because some @command{/bin/sh} shells have bugs and may crash when configuring the -target libraries. In other cases, @command{/bin/sh} or even some -@command{ksh} have disastrous corner-case performance problems. This +target libraries. In other cases, @command{/bin/sh} or @command{ksh} +have disastrous corner-case performance problems. This can cause target @command{configure} runs to literally take days to complete in some cases. @@ -261,7 +266,7 @@ environment to your ``good'' shell prior to running @command{configure}/@command{make}. @command{zsh} is not a fully compliant POSIX shell and will not -work when configuring GCC. +work when configuring GCC@. @item GNU binutils @@ -277,29 +282,36 @@ obtained via FTP mirror sites. @item GNU make version 3.79.1 (or later) -You must have GNU make installed to build GCC. +You must have GNU make installed to build GCC@. -@item GNU tar version 1.12 (or later) +@item GNU tar version 1.14 (or later) Necessary (only on some platforms) to untar the source code. Many systems' @command{tar} programs will also work, only try GNU @command{tar} if you have problems. -@item GNU Multiple Precision Library (GMP) version 4.0 (or later) +@item GNU Multiple Precision Library (GMP) version 4.1 (or later) -Necessary to build the Fortran frontend. If you don't have it +Necessary to build the Fortran frontend. If you do not have it installed in your library search path, you will have to configure with the @option{--with-gmp} or @option{--with-gmp-dir} configure option. -@item MPFR Library +@item MPFR Library version 2.2 (or later) Necessary to build the Fortran frontend. It can be downloaded from -@uref{http://http://www.mpfr.org/}. It is also included in the current GMP -release (4.1.3) when configured with @option{--enable-mpfr}. +@uref{http://www.mpfr.org/}. The version of MPFR that is bundled with +GMP 4.1.x contains numerous bugs. Although GNU Fortran will appear +to function with the buggy versions of MPFR, there are a few GNU Fortran +bugs that will not be fixed when using this version. It is strongly +recommended to upgrade to at least MPFR version 2.2. The @option{--with-mpfr} or @option{--with-mpfr-dir} configure option should be used if your MPFR Library is not installed in your library search path. +@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip}) + +Necessary to build libgcj, the GCJ runtime. + @end table @@ -313,7 +325,7 @@ to regenerate @file{configure} and @file{config.in} files. Most directories require autoconf 2.59 (exactly), but the toplevel still requires autoconf 2.13 (exactly). -@item automake versions 1.8.5 and 1.9.1 +@item automake versions 1.9.3 Necessary when modifying a @file{Makefile.am} file to regenerate its associated @file{Makefile.in}. @@ -323,11 +335,12 @@ file. Specifically this applies to the @file{gcc}, @file{intl}, @file{libcpp}, @file{libiberty}, @file{libobjc} directories as well as any of their subdirectories. -The Java directory @file{libjava} requires automake 1.9.1. Every other -directory should work with either automake 1.8.5 and automake 1.9.1, but -most of them have been tested only with automake 1.8.5 so far. +For directories that use automake, GCC requires the latest release in +the 1.9.x series, which is currently 1.9.3. When regenerating a directory +to a newer version, please update all the directories using an older 1.9.x +to the latest released version. -@item gettext version 0.12 (or later) +@item gettext version 0.14.5 (or later) Needed to regenerate @file{gcc.pot}. @@ -337,11 +350,11 @@ Necessary when modifying @command{gperf} input files, e.g.@: @file{gcc/cp/cfns.gperf} to regenerate its associated header file, e.g.@: @file{gcc/cp/cfns.h}. -@item expect version ??? -@itemx tcl version ??? -@itemx dejagnu version 1.4.4 (or later) +@item DejaGnu 1.4.4 +@itemx Expect +@itemx Tcl -Necessary to run the GCC testsuite. +Necessary to run the GCC testsuite; see the section on testing for details. @item autogen version 5.5.4 (or later) and @itemx guile version 1.4.1 (or later) @@ -349,19 +362,19 @@ Necessary to run the GCC testsuite. Necessary to regenerate @file{fixinc/fixincl.x} from @file{fixinc/inclhack.def} and @file{fixinc/*.tpl}. -Necessary to run the @file{fixinc} @command{make check}. +Necessary to run @samp{make check} for @file{fixinc}. Necessary to regenerate the top level @file{Makefile.in} file from @file{Makefile.tpl} and @file{Makefile.def}. @item GNU Bison version 1.28 (or later) Berkeley @command{yacc} (@command{byacc}) is also reported to work other -than for java. +than for GCJ. Necessary when modifying @file{*.y} files. Necessary to build GCC during development because the generated output -files are not included in the CVS repository. They are included in +files are not included in the SVN repository. They are included in releases. @item Flex version 2.5.4 (or later) @@ -369,40 +382,47 @@ releases. Necessary when modifying @file{*.l} files. Necessary to build GCC during development because the generated output -files are not included in the CVS repository. They are included in +files are not included in the SVN repository. They are included in releases. -@item Texinfo version 4.2 (or later) +@item Texinfo version 4.4 (or later) Necessary for running @command{makeinfo} when modifying @file{*.texi} files to test your changes. +Necessary for running @command{make dvi} or @command{make pdf} to +create printable documentation in DVI or PDF format. Texinfo version +4.8 or later is required for @command{make pdf}. + Necessary to build GCC documentation during development because the -generated output files are not included in the CVS repository. They are +generated output files are not included in the SVN repository. They are included in releases. @item @TeX{} (any working version) -Necessary for running @command{texi2dvi}, used when running -@command{make dvi} to create DVI files. +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. -@item cvs version 1.10 (or later) -@itemx ssh (any version) +@item SVN (any version) +@itemx SSH (any version) -Necessary to access the CVS repository. Public releases and weekly -snapshots of the development sources are also available via FTP. +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) +@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. -Used by various scripts to generate some files included in CVS (mainly +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) -Necessary when creating changes to GCC source code to submit for review. +Useful when submitting patches for the GCC source code. @item patch version 2.5.4 (or later) @@ -432,7 +452,7 @@ own sources. @cindex Downloading GCC @cindex Downloading the Source -GCC is distributed via @uref{http://gcc.gnu.org/cvs.html,,CVS} and FTP +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. @@ -441,7 +461,7 @@ 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 77, Fortran -(in case of GCC 3.5 and later), Java, and Ada (in case of GCC 3.1 and later) +(in case of GCC 4.0 and later), Java, and Ada (in case of GCC 3.1 and later) compilers. The full distribution also includes runtime libraries for C++, Objective-C, Fortran 77, Fortran, and Java. In GCC 3.0 and later versions, GNU compiler testsuites are also included in the full distribution. @@ -491,7 +511,7 @@ for both native and cross targets. We use @var{srcdir} to refer to the toplevel source directory for GCC; we use @var{objdir} to refer to the toplevel build/object directory. -If you obtained the sources via CVS, @var{srcdir} must refer to the top +If you obtained the sources via SVN, @var{srcdir} must refer to the top @file{gcc} directory, the one where the @file{MAINTAINERS} can be found, and not its @file{gcc} subdirectory, otherwise the build will fail. @@ -524,6 +544,7 @@ Second, when configuring a native system, either @command{cc} or your environment before running configure. Otherwise the configuration scripts may fail. +@ignore Note that the bootstrap compiler and the resulting GCC must be link compatible, else the bootstrap will fail with linker errors about incompatible object file formats. Several multilibed targets are @@ -534,6 +555,7 @@ affected by this requirement, see @ifhtml @uref{specific.html,,host/target specific installation notes}. @end ifhtml +@end ignore To configure GCC: @@ -634,22 +656,22 @@ the installation directory for G++ header files. The default is @item --program-prefix=@var{prefix} GCC supports some transformations of the names of its programs when -installing them. This option prepends @var{prefix} to the names of -programs to install in @var{bindir} (see above). For example, specifying +installing them. This option prepends @var{prefix} to the names of +programs to install in @var{bindir} (see above). For example, specifying @option{--program-prefix=foo-} would result in @samp{gcc} being installed as @file{/usr/local/bin/foo-gcc}. @item --program-suffix=@var{suffix} Appends @var{suffix} to the names of programs to install in @var{bindir} -(see above). For example, specifying @option{--program-suffix=-3.1} +(see above). For example, specifying @option{--program-suffix=-3.1} would result in @samp{gcc} being installed as @file{/usr/local/bin/gcc-3.1}. @item --program-transform-name=@var{pattern} Applies the @samp{sed} script @var{pattern} to be applied to the names -of programs to install in @var{bindir} (see above). @var{pattern} has to +of programs to install in @var{bindir} (see above). @var{pattern} has to consist of one or more basic @samp{sed} editing commands, separated by -semicolons. For example, if you want the @samp{gcc} program name to be +semicolons. For example, if you want the @samp{gcc} program name to be transformed to the installed program @file{/usr/local/bin/myowngcc} and the @samp{g++} program name to be transformed to @file{/usr/local/bin/gspecial++} without changing other program names, @@ -658,7 +680,7 @@ you could use the pattern to achieve this effect. All three options can be combined and used together, resulting in more -complex conversion patterns. As a basic rule, @var{prefix} (and +complex conversion patterns. As a basic rule, @var{prefix} (and @var{suffix}) are prepended (appended) before further transformations can happen with a special transformation script @var{pattern}. @@ -668,8 +690,8 @@ transformation is explicitly asked for by one of these options. For native builds, some of the installed programs are also installed with the target alias in front of their name, as in -@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen -before the target alias is prepended to the name - so, specifying +@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen +before the target alias is prepended to the name---so, specifying @option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the resulting binary would be installed as @file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}. @@ -701,7 +723,7 @@ programs---perhaps many others. (GCC installs its own header files in another directory which is based on the @option{--prefix} value.) Both the local-prefix include directory and the GCC-prefix include -directory are part of GCC's "system include" directories. Although these +directory are part of GCC's ``system include'' directories. Although these two directories are not fixed, they need to be searched in the proper order for the correct processing of the include_next directive. The local-prefix include directory is searched before the GCC-prefix @@ -774,7 +796,8 @@ assembler found is not actually the GNU assembler. (Confusion may also result if the compiler finds the GNU assembler but has not been configured with @option{--with-gnu-as}.) If you have more than one assembler installed on your system, you may want to use this option in -connection with @option{--with-as=@var{pathname}}. +connection with @option{--with-as=@var{pathname}} or +@option{--with-build-time-tools=@var{pathname}}. The following systems are the only ones where it makes a difference whether you use the GNU assembler. On any other system, @@ -797,28 +820,40 @@ the 386, if you use the GNU assembler, you should also use the GNU linker (and specify @option{--with-gnu-ld}). @item @anchor{with-as}--with-as=@var{pathname} -Specify that the -compiler should use the assembler pointed to by @var{pathname}, rather -than the one found by the standard rules to find an assembler, which -are: +Specify that the compiler should use the assembler pointed to by +@var{pathname}, rather than the one found by the standard rules to find +an assembler, which are: @itemize @bullet @item -Check the @file{@var{libexec}/gcc/@var{target}/@var{version}} -directory, where @var{libexec} defaults to -@file{@var{exec-prefix}/libexec} and @var{exec-prefix} defaults to -@var{prefix} which defaults to @file{/usr/local} unless overridden by -the @option{--prefix=@var{pathname}} switch described -above. @var{target} is the target system triple, such as -@samp{sparc-sun-solaris2.7}, and @var{version} denotes the GCC -version, such as 3.0. +Unless GCC is being built with a cross compiler, check the +@file{@var{libexec}/gcc/@var{target}/@var{version}} directory. +@var{libexec} defaults to @file{@var{exec-prefix}/libexec}; +@var{exec-prefix} defaults to @var{prefix}, which +defaults to @file{/usr/local} unless overridden by the +@option{--prefix=@var{pathname}} switch described above. @var{target} +is the target system triple, such as @samp{sparc-sun-solaris2.7}, and +@var{version} denotes the GCC version, such as 3.0. + @item -Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on +If the target system is the same that you are building on, check +operating system specific directories (e.g.@: @file{/usr/ccs/bin} on Sun Solaris 2). + +@item +Check in the @env{PATH} for a tool whose name is prefixed by the +target system triple. + +@item +Check in the @env{PATH} for a tool whose name is not prefixed by the +target system triple, if the host and target system triple are +the same (in other words, we use a host tool if it can be used for +the target as well). @end itemize -Note that these rules do not check for the value of @env{PATH}. You may -want to use @option{--with-as} if no assembler is installed in the -directories listed above, or if you have multiple assemblers installed -and want to choose one that is not found by the above rules. + +You may want to use @option{--with-as} if no assembler +is installed in the directories listed above, or if you have multiple +assemblers installed and want to choose one that is not found by the +above rules. @item @anchor{with-gnu-ld}--with-gnu-ld Same as @uref{#with-gnu-as,,@option{--with-gnu-as}} @@ -914,7 +949,7 @@ AIX thread support. 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 +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. @@ -925,7 +960,9 @@ missing and thus this setting will cause a known bootstrap failure.) @item no This is an alias for @samp{single}. @item posix -Generic POSIX thread support. +Generic POSIX/Unix98 thread support. +@item posix95 +Generic POSIX/Unix95 thread support. @item rtems RTEMS thread support. @item single @@ -936,8 +973,22 @@ Sun Solaris 2 thread support. VxWorks thread support. @item win32 Microsoft Win32 API thread support. +@item nks +Novell Kernel Services thread support. @end table +@item --enable-tls +Specify that the target supports TLS (Thread Local Storage). Usually +configure can correctly determine if TLS is supported. In cases where +it guesses incorrectly, TLS can be explicitly enabled or disabled with +@option{--enable-tls} or @option{--disable-tls}. This can happen if +the assembler supports TLS but the C library does not, or if the +assumptions made by the configure test are incorrect. + +@item --disable-tls +Specify that the target does not support TLS. +This is an alias for @option{--enable-tls=no}. + @item --with-cpu=@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. @@ -956,18 +1007,28 @@ options and for @option{-mhard-float} or @option{-msoft-float}. As with @option{--with-cpu}, which switches will be accepted and acceptable values of the arguments depend on the target. -@item --enable-altivec -Specify that the target supports AltiVec vector enhancements. This -option will adjust the ABI for AltiVec enhancements, as well as generate -AltiVec code when appropriate. This option is only available for -PowerPC systems. +@item --with-mode=@var{mode} +Specify if the compiler should default to @option{-marm} or @option{-mthumb}. +This option is only supported on ARM targets. + +@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. +The possibilities for @var{type} are: +@table @code +@item traps +Division by zero checks use conditional traps (this is the default on +systems that support conditional traps). +@item breaks +Division by zero checks use the break instruction. +@end table @item --enable-__cxa_atexit Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of -destructors, but requires __cxa_atexit in libc. This option is currently -only available on systems with GNU libc. When enabled, this will cause +destructors, but requires __cxa_atexit in libc. This option is currently +only available on systems with GNU libc. When enabled, this will cause @option{-fuse-cxa-exit} to be passed by default. @item --enable-target-optspace @@ -999,19 +1060,33 @@ catalog, configuring with @option{--enable-maintainer-mode} will enable this. Note that you need a recent version of the @code{gettext} tools to do so. +@item --disable-bootstrap +For a native build, the default configuration is to perform +a 3-stage bootstrap of the compiler when @samp{make} is invoked, +testing that GCC can compile itself correctly. If you want to disable +this process, you can configure with @option{--disable-bootstrap}. + +@item --enable-bootstrap +In special cases, you may want to perform a 3-stage build +even if the target and host triplets are different. +This could happen when the host can run code compiled for +the target (e.g.@: host is i686-linux, target is i486-linux). +Starting from GCC 4.2, to do this you have to configure explicitly +with @option{--enable-bootstrap}. + @item --enable-generated-files-in-srcdir -Neither the .c and .h files that are generated from bison and flex nor the +Neither the .c and .h files that are generated from Bison and flex nor the info manuals and man pages that are built from the .texi files are present -in the CVS development tree. When building GCC from that development tree, -or from a snapshot which are created from CVS, then those generated files -are placed in your build directory, which allows for the source to be in a -readonly directory. +in the SVN development tree. When building GCC from that development tree, +or from one of our snapshots, those generated files are placed in your +build directory, which allows for the source to be in a readonly +directory. If you configure with @option{--enable-generated-files-in-srcdir} then those generated files will go into the source directory. This is mainly intended for generating release or prerelease tarballs of the GCC sources, since it -is not a requirement that the users of source releases to have flex, bison, or -makeinfo. +is not a requirement that the users of source releases to have flex, Bison, +or makeinfo. @item --enable-version-specific-runtime-libs Specify @@ -1021,9 +1096,16 @@ addition, @samp{libstdc++}'s include files will be installed into @file{@var{libdir}} unless you overruled it by using @option{--with-gxx-include-dir=@var{dirname}}. Using this option is particularly useful if you intend to use several versions of GCC in -parallel. This is currently supported by @samp{libgfortran}, +parallel. This is currently supported by @samp{libgfortran}, @samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}. +@item --with-java-home=@var{dirname} +This @samp{libjava} option overrides the default value of the +@samp{java.home} system property. It is also used to set +@samp{sun.boot.class.path} to @file{@var{dirname}/lib/rt.jar}. By +default @samp{java.home} is set to @file{@var{prefix}} and +@samp{sun.boot.class.path} to +@file{@var{datadir}/java/libgcj-@var{version}.jar}. @item --enable-languages=@var{lang1},@var{lang2},@dots{} Specify that only a particular subset of compilers and @@ -1034,13 +1116,15 @@ their runtime libraries should be built. For a list of valid values for grep language= */config-lang.in @end smallexample Currently, you can use any of the following: -@code{ada}, @code{c}, @code{c++}, @code{f77}, @code{f95}, @code{java}, -@code{objc}, @code{obj-c++}. -Building the Ada compiler has special requirements, see below.@* -If you do not pass this flag, all languages available in the @file{gcc} -sub-tree will be configured. Re-defining @code{LANGUAGES} when calling -@samp{make bootstrap} @strong{does not} work anymore, as those -language sub-directories might not have been configured! +@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, @code{java}, +@code{objc}, @code{obj-c++}, @code{treelang}. +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, Objective-C++, and treelang 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! @item --disable-libada Specify that the run-time libraries and tools used by GNAT should not @@ -1048,10 +1132,38 @@ be built. This can be useful for debugging, or for compatibility with previous Ada build procedures, when it was required to explicitly do a @samp{make -C gcc gnatlib_and_tools}. +@item --disable-libssp +Specify that the run-time libraries for stack smashing protection +should not be built. + +@item --disable-libgomp +Specify that the run-time libraries used by GOMP should not be built. + @item --with-dwarf2 Specify that the compiler should use DWARF 2 debugging information as the default. +@item --enable-targets=all +@itemx --enable-targets=@var{target_list} +Some GCC targets, e.g.@: powerpc64-linux, build bi-arch compilers. +These are compilers that are able to generate either 64-bit or 32-bit +code. Typically, the corresponding 32-bit target, e.g.@: +powerpc-linux for powerpc64-linux, only generates 32-bit code. This +option enables the 32-bit target to be a bi-arch compiler, which is +useful when you want a bi-arch compiler that defaults to 32-bit, and +you are building a bi-arch or multi-arch binutils in a combined tree. +Currently, this option only affects powerpc-linux. + +@item --enable-secureplt +This option enables @option{-msecure-plt} by default for powerpc-linux. +@ifnothtml +@xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc, +Using the GNU Compiler Collection (GCC)}, +@end ifnothtml +@ifhtml +See ``RS/6000 and PowerPC Options'' in the main manual +@end ifhtml + @item --enable-win32-registry @itemx --enable-win32-registry=@var{key} @itemx --disable-win32-registry @@ -1063,7 +1175,7 @@ to look up installations paths in the registry using the following key: @end smallexample @var{key} defaults to GCC version number, and can be overridden by the -@option{--enable-win32-registry=@var{key}} option. Vendors and distributors +@option{--enable-win32-registry=@var{key}} option. Vendors and distributors who use custom installers are encouraged to provide a different key, perhaps one comprised of vendor name and GCC version number, to avoid conflict with existing installations. This feature is enabled @@ -1088,30 +1200,39 @@ controlled by the Makefiles. @item --enable-checking @itemx --enable-checking=@var{list} -When you specify this option, the compiler is built to perform checking -of tree node types when referencing fields of that node, and some other -internal consistency checks. This does not change the generated code, -but adds error checking within the compiler. This will slow down the -compiler and may only work properly if you are building the compiler -with GCC@. This is on by default when building from CVS or snapshots, -but off for releases. More control over the checks may be had by -specifying @var{list}; the categories of checks available are -@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl}, @samp{rtlflag}, -@samp{fold}, @samp{gcac} and @samp{valgrind}. The check @samp{valgrind} -requires the external @command{valgrind} simulator, available from -@uref{http://valgrind.kde.org/}. The default when @var{list} is -not specified is @samp{misc,tree,gc,rtlflag}; the checks @samp{rtl}, -@samp{gcac} and @samp{valgrind} are very expensive. +When you specify this option, the compiler is built to perform internal +consistency checks of the requested complexity. This does not change the +generated code, but adds error checking within the compiler. This will +slow down the compiler and may only work properly if you are building +the compiler with GCC@. This is @samp{yes} by default when building +from SVN or snapshots, but @samp{release} for releases. More control +over the checks may be had by specifying @var{list}. The categories of +checks available are @samp{yes} (most common checks +@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at +all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest +checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). +Individual checks can be enabled with these flags @samp{assert}, +@samp{fold}, @samp{gc}, @samp{gcac} @samp{misc}, @samp{rtl}, +@samp{rtlflag}, @samp{runtime}, @samp{tree}, and @samp{valgrind}. + +The @samp{valgrind} check requires the external @command{valgrind} +simulator, available from @uref{http://valgrind.org/}. The +@samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very expensive. +To disable all checking, @samp{--disable-checking} or +@samp{--enable-checking=none} must be explicitly requested. Disabling +assertions will make the compiler and runtime slightly faster but +increase the risk of undetected internal errors causing wrong code to be +generated. @item --enable-coverage @itemx --enable-coverage=@var{level} With this option, the compiler is built to collect self coverage -information, every time it is run. This is for internal development -purposes, and only works when the compiler is being built with gcc. The +information, every time it is run. This is for internal development +purposes, and only works when the compiler is being built with gcc. The @var{level} argument controls whether the compiler is built optimized or -not, values are @samp{opt} and @samp{noopt}. For coverage analysis you +not, values are @samp{opt} and @samp{noopt}. For coverage analysis you want to disable optimization, for performance analysis you want to -enable optimization. When coverage is enabled, the default level is +enable optimization. When coverage is enabled, the default level is without optimization. @item --enable-gather-detailed-mem-stats @@ -1119,6 +1240,12 @@ 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), @@ -1150,6 +1277,22 @@ error message. All support for systems which have been obsoleted in one release of GCC is removed entirely in the next major release, unless someone steps forward to maintain the port. + +@item --enable-decimal-float +@itemx --disable-decimal-float +Enable (or disable) support for the C decimal floating point +extension. This is enabled by default only on PowerPC GNU/Linux +systems. Other systems may also support it, but require the user to +specifically enable it. + +@item --with-long-double-128 +Specify if @code{long double} type should be 128-bit by default on selected +GNU/Linux architectures. If using @code{--without-long-double-128}, +@code{long double} will be by default 64-bit, the same as @code{double} type. +When neither of these configure options are used, the default will be +128-bit @code{long double} when built against GNU C Library 2.4 and later, +64-bit @code{long double} otherwise. + @end table @subheading Cross-Compiler-Specific Options @@ -1168,6 +1311,20 @@ in case @option{--with-sysroot} is not given an argument, is subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to the GCC binaries if the installation tree is moved. +@item --with-build-sysroot +@itemx --with-build-sysroot=@var{dir} +Tells GCC to consider @var{dir} as the system root (see +@option{--with-sysroot}) while building target libraries, instead of +the directory specified with @option{--with-sysroot}. This option is +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. + +This option affects the system root for the compiler used to build +target libraries (which runs on the build system); it does not affect +the compiler which is used to build GCC itself. + @item --with-headers @itemx --with-headers=@var{dir} Deprecated in favor of @option{--with-sysroot}. @@ -1178,14 +1335,12 @@ directory. @emph{This option with the @var{dir} argument is required} when building a cross compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist. If @file{@var{prefix}/@var{target}/sys-include} does pre-exist, the @var{dir} argument may be omitted. @command{fixincludes} -will be run on these files to make them compatible with GCC. +will be run on these files to make them compatible with GCC@. @item --without-headers Tells GCC not use any target headers from a libc when building a cross compiler. When crossing to GNU/Linux, you need the headers so GCC can build the exception handling for libgcc. -See @uref{http://www.objsw.com/CrossGCC/,,CrossGCC} for more information -on this option. @item --with-libs @itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' @@ -1194,14 +1349,32 @@ Specifies a list of directories which contain the target runtime libraries. These libraries will be copied into the @file{gcc} install directory. If the directory list is omitted, this option has no effect. + @item --with-newlib Specifies that @samp{newlib} is being used as the target C library. This causes @code{__eprintf} to be omitted from @file{libgcc.a} on the assumption that it will be provided by @samp{newlib}. + +@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 +if the directory layouts are different between the system you are building +GCC on, and the system where you will deploy it. + +For example, on a @option{ia64-hp-hpux} system, you may have the GNU +assembler and linker in @file{/usr/bin}, and the native tools in a +different path, and build a toolchain that expects to find the +native tools in @file{/usr/bin}. + +When you use this option, you should ensure that @var{dir} includes +@command{ar}, @command{as}, @command{ld}, @command{nm}, +@command{ranlib} and @command{strip} if necessary, and possibly +@command{objdump}. Otherwise, GCC may use an inconsistent set of +tools. @end table -@subheading Fortran-specific Option +@subheading Fortran-Specific Options The following options apply to the build of the Fortran front end. @@ -1211,7 +1384,7 @@ The following options apply to the build of the Fortran front end. @itemx --with-mpfr=@var{pathname} @itemx --with-gmp-dir=@var{pathname} @itemx --with-mpfr-dir=@var{pathname} -If you don't have GMP (the GNU Multiple Precision library) and the MPFR +If you don't have GMP (the GNU Multiple Precision library) and the MPFR Libraries installed in a standard location and you want to build the Fortran front-end, you can explicitly specify the directory where they are installed (@samp{--with-gmp=gmpinstalldir}, @samp{--with-mpfr=mpfrinstalldir}) or where @@ -1248,19 +1421,19 @@ The following options apply to building @samp{libgcj}. Don't set system properties from @env{GCJ_PROPERTIES}. @item --enable-hash-synchronization -Use a global hash table for monitor locks. Ordinarily, +Use a global hash table for monitor locks. Ordinarily, @samp{libgcj}'s @samp{configure} script automatically makes -the correct choice for this option for your platform. Only use +the correct choice for this option for your platform. Only use this if you know you need the library to be configured differently. @item --enable-interpreter -Enable the Java interpreter. The interpreter is automatically -enabled by default on all platforms that support it. This option +Enable the Java interpreter. The interpreter is automatically +enabled by default on all platforms that support it. This option is really only useful if you want to disable the interpreter (using @option{--disable-interpreter}). @item --disable-java-net -Disable java.net. This disables the native part of java.net only, +Disable java.net. This disables the native part of java.net only, using non-functional stubs for native method implementations. @item --disable-jvmpi @@ -1270,7 +1443,7 @@ Disable JVMPI support. Enable runtime eCos target support. @item --without-libffi -Don't use @samp{libffi}. This will disable the interpreter and JNI +Don't use @samp{libffi}. This will disable the interpreter and JNI support as well, as these require @samp{libffi} to work. @item --enable-libgcj-debug @@ -1279,8 +1452,8 @@ Enable runtime debugging code. @item --enable-libgcj-multifile If specified, causes all @file{.java} source files to be compiled into @file{.class} files in one invocation of -@samp{gcj}. This can speed up build time, but is more -resource-intensive. If this option is unspecified or +@samp{gcj}. This can speed up build time, but is more +resource-intensive. If this option is unspecified or disabled, @samp{gcj} is invoked once for each @file{.java} file to compile into a @file{.class} file. @@ -1288,34 +1461,34 @@ file to compile into a @file{.class} file. Search for libiconv in @file{DIR/include} and @file{DIR/lib}. @item --enable-sjlj-exceptions -Force use of @code{builtin_setjmp} for exceptions. @samp{configure} -ordinarily picks the correct value based on the platform. Only use -this option if you are sure you need a different setting. +Force use of the @code{setjmp}/@code{longjmp}-based scheme for exceptions. +@samp{configure} ordinarily picks the correct value based on the platform. +Only use this option if you are sure you need a different setting. @item --with-system-zlib Use installed @samp{zlib} rather than that included with GCC@. @item --with-win32-nlsapi=ansi, unicows or unicode Indicates how MinGW @samp{libgcj} translates between UNICODE -characters and the Win32 API. +characters and the Win32 API@. @table @code @item ansi Use the single-byte @code{char} and the Win32 A functions natively, -translating to and from UNICODE when using these functions. If +translating to and from UNICODE when using these functions. If unspecified, this is the default. @item unicows -Use the @code{WCHAR} and Win32 W functions natively. Adds +Use the @code{WCHAR} and Win32 W functions natively. Adds @code{-lunicows} to @file{libgcj.spec} to link with @samp{libunicows}. @file{unicows.dll} needs to be deployed on Microsoft Windows 9X machines -running built executables. @file{libunicows.a}, an open-source +running built executables. @file{libunicows.a}, an open-source import library around Microsoft's @code{unicows.dll}, is obtained from @uref{http://libunicows.sourceforge.net/}, which also gives details on getting @file{unicows.dll} from Microsoft. @item unicode -Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not} -add @code{-lunicows} to @file{libgcj.spec}. The built executables will +Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not} +add @code{-lunicows} to @file{libgcj.spec}. The built executables will only run on Microsoft Windows NT and above. @end table @end table @@ -1328,16 +1501,16 @@ Use the X Window System. @item --enable-java-awt=PEER(S) Specifies the AWT peer library or libraries to build alongside -@samp{libgcj}. If this option is unspecified or disabled, AWT -will be non-functional. Current valid values are @option{gtk} and -@option{xlib}. Multiple libraries should be separated by a -comma (i.e. @option{--enable-java-awt=gtk,xlib}). +@samp{libgcj}. If this option is unspecified or disabled, AWT +will be non-functional. Current valid values are @option{gtk} and +@option{xlib}. Multiple libraries should be separated by a +comma (i.e.@: @option{--enable-java-awt=gtk,xlib}). @item --enable-gtk-cairo -Build the cairo Graphics2D implementation on GTK. +Build the cairo Graphics2D implementation on GTK@. @item --enable-java-gc=TYPE -Choose garbage collector. Defaults to @option{boehm} if unspecified. +Choose garbage collector. Defaults to @option{boehm} if unspecified. @item --disable-gtktest Do not try to compile and run a test GTK+ program. @@ -1408,35 +1581,38 @@ that type mismatches occur, this could be the cause. The solution is not to use such a directory for building GCC@. -When building from CVS or snapshots, or if you modify parser sources, -you need the Bison parser generator installed. Any version 1.25 or -later should work; older versions may also work. If you do not modify +When building from SVN or snapshots, or if you modify parser sources, +you need the Bison parser generator installed. If you do not modify parser sources, releases contain the Bison-generated files and you do not need Bison installed to build them. -When building from CVS or snapshots, or if you modify Texinfo -documentation, you need version 4.2 or later of Texinfo installed if you +When building from SVN or snapshots, or if you modify Texinfo +documentation, you need version 4.4 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. @section Building a native compiler -For a native build issue the command @samp{make bootstrap}. This -will build the entire GCC system, which includes the following steps: +For a native build, the default configuration is to perform +a 3-stage bootstrap of the compiler when @samp{make} is invoked. +This will build the entire GCC system and ensure that it compiles +itself correctly. It can be disabled with the @option{--disable-bootstrap} +parameter to @samp{configure}, but bootstrapping is suggested because +the compiler will be tested more completely and could also have +better performance. -@itemize @bullet -@item -Build host tools necessary to build the compiler such as texinfo, bison, -gperf. +The bootstrapping process will complete the following steps: +@itemize @bullet @item -Build target tools for use by the compiler such as binutils (bfd, -binutils, gas, gprof, ld, and opcodes) -if they have been individually linked -or moved into the top level GCC source tree before configuring. +Build tools necessary to build the compiler. @item -Perform a 3-stage bootstrap of the compiler. +Perform a 3-stage bootstrap of the compiler. This includes building +three times the target tools for use by the compiler such as binutils +(bfd, binutils, gas, gprof, ld, and opcodes) if they have been +individually linked or moved into the top level GCC source tree before +configuring. @item Perform a comparison test of the stage2 and stage3 compilers. @@ -1447,8 +1623,8 @@ Build runtime libraries using the stage3 compiler from the previous step. @end itemize If you are short on disk space you might consider @samp{make -bootstrap-lean} instead. This is identical to @samp{make -bootstrap} except that object files from the stage1 and +bootstrap-lean} instead. The sequence of compilation is the +same described above, but object files from the stage1 and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as they are no longer needed. @@ -1465,7 +1641,7 @@ roughly 40% of disk space both for the bootstrap and the final installation. If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing -@samp{make bootstrap}. Non-default optimization flags are less well +@samp{make}. Non-default optimization flags are less well tested here than the default of @samp{-g -O2}, but should still work. In a few cases, you may find that you need to specify special flags such as @option{-msoft-float} here to complete the bootstrap; or, if the @@ -1474,17 +1650,17 @@ around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the stage1 compiler that were miscompiled, or by using @samp{make bootstrap4} to increase the number of stages of bootstrap. -Note that using non-standard @code{CFLAGS} can cause bootstrap to fail in -@file{libiberty}, if these trigger a warning with the new compiler. For -example using @samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will -cause bootstrap failure as @code{-mcpu=} is deprecated in 3.4.0 and above. +Note that using non-standard @code{CFLAGS} can cause bootstrap to fail +if these trigger a warning with the new compiler. For example using +@samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will cause bootstrap +failure as @option{-mcpu=} is deprecated in 3.4.0 and above. If you used the flag @option{--enable-languages=@dots{}} to restrict the compilers to be built, only those you've actually enabled will be built. This will of course only build those runtime libraries, for which the particular compiler has been built. Please note, -that re-defining @env{LANGUAGES} when calling @samp{make bootstrap} +that re-defining @env{LANGUAGES} when calling @samp{make} @strong{does not} work anymore! If the comparison of stage2 and stage3 fails, this normally indicates @@ -1494,11 +1670,16 @@ a few systems, meaningful comparison of object files is impossible; they always appear ``different''. If you encounter this problem, you will need to disable comparison in the @file{Makefile}.) -@section Building a cross compiler +If you do not want to bootstrap your compiler, you can configure with +@option{--disable-bootstrap}. In particular cases, you may want to +bootstrap your compiler even if the target system is not the same as +the one you are building on: for example, you could build a +@code{powerpc-unknown-linux-gnu} toolchain on a +@code{powerpc64-unknown-linux-gnu} host. In this case, pass +@option{--enable-bootstrap} to the configure script. -We recommend reading the -@uref{http://www.objsw.com/CrossGCC/,,crossgcc FAQ} -for information about building cross compilers. + +@section Building a cross compiler When building a cross compiler, it is not generally possible to do a 3-stage bootstrap of the compiler. This makes for an interesting problem @@ -1515,8 +1696,7 @@ following steps: @itemize @bullet @item -Build host tools necessary to build the compiler such as texinfo, bison, -gperf. +Build host tools necessary to build the compiler. @item Build target tools for use by the compiler such as binutils (bfd, @@ -1578,21 +1758,25 @@ compilation options. Check your target's definition of @section Building in parallel -You can use @samp{make bootstrap MAKE="make -j 2" -j 2}, or just -@samp{make -j 2 bootstrap} for GNU Make 3.79 and above, instead of -@samp{make bootstrap} to build GCC in parallel. -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 and network filesystems. +GNU Make 3.79 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 +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 +and network filesystems. @section Building the Ada compiler In order to build GNAT, the Ada compiler, you need a working GNAT -compiler (GNAT version 3.14 or later, or GCC version 3.1 or later), -including GNAT tools such as @command{gnatmake} and @command{gnatlink}, -since the Ada front end is written in Ada (with some -GNAT-specific extensions), and GNU make. +compiler (GNAT version 3.14 or later, or GCC version 3.1 or later). +This includes GNAT tools such as @command{gnatmake} and +@command{gnatlink}, since the Ada front end is written in Ada and +uses some GNAT-specific extensions. + +In order to build a cross compiler, it is suggested to install +the new compiler as native first, and then use it to build the cross +compiler. @command{configure} does not test whether the GNAT installation works and has a sufficiently recent version; if too old a GNAT version is @@ -1604,7 +1788,7 @@ used to disable building the Ada front end. It is possible to use profile feedback to optimize the compiler itself. This should result in a faster compiler binary. Experiments done on x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C programs. To -bootstrap compiler with profile feedback, use @code{make profiledbootstrap}. +bootstrap the compiler with profile feedback, use @code{make profiledbootstrap}. When @samp{make profiledbootstrap} is run, it will first build a @code{stage1} compiler. This compiler is used to build a @code{stageprofile} compiler @@ -1612,7 +1796,7 @@ instrumented to collect execution counts of instruction and branch probabilities. Then runtime libraries are compiled with profile collected. Finally a @code{stagefeedback} compiler is built using the information collected. -Unlike @samp{make bootstrap} several additional restrictions apply. The +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. @@ -1648,7 +1832,7 @@ at @uref{http://gcc.gnu.org/buildstat.html}, although not everyone who reports a successful build runs the testsuites and submits the results. This step is optional and may require you to download additional software, but it can give you confidence in your new GCC installation or point out -problems before you install and start using your new GCC. +problems before you install and start using your new GCC@. First, you must have @uref{download.html,,downloaded the testsuites}. These are part of the full distribution, but if you downloaded the @@ -1656,8 +1840,8 @@ These are part of the full distribution, but if you downloaded the separately. Second, you must have the testing tools installed. This includes -@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu} 1.4.4 and later, -Tcl, and Expect; the DejaGnu site has links to these. +@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu}, Tcl, and Expect; +the DejaGnu site has links to these. If the directories where @command{runtest} and @command{expect} were installed are not in the @env{PATH}, you may need to set the following @@ -1797,7 +1981,7 @@ testsuite at @file{libjava/testsuite/libjava.mauve/mauve}, or by specifying the location of that tree when invoking @samp{make}, as in @samp{make MAUVEDIR=~/mauve check}. -@uref{http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html,,Jacks} +@uref{http://sources.redhat.com/mauve/jacks.html,,Jacks} is a free testsuite that tests Java compiler front ends. This suite can be run as part of libgcj testing by placing the Jacks tree within the libjava testsuite at @file{libjava/testsuite/libjava.jacks/jacks}. @@ -1918,13 +2102,13 @@ it will not be created otherwise. This is regarded as a feature, not as a bug, because it gives slightly more control to the packagers using the @code{DESTDIR} feature. -If you built a released version of GCC using @samp{make bootstrap} then please +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}. If your system is not listed for the version of GCC that you built, send a note to @email{gcc@@gcc.gnu.org} indicating -that you successfully built and installed GCC. +that you successfully built and installed GCC@. Include the following information: @itemize @bullet @@ -1984,14 +2168,21 @@ If you find a bug, please report it following the @uref{../bugs.html,,bug reporting guidelines}. If you want to print the GCC manuals, do @samp{cd @var{objdir}; make -dvi}. You will need to have @command{texi2dvi} (version at least 4.2) +dvi}. You will need to have @command{texi2dvi} (version at least 4.4) and @TeX{} installed. This creates a number of @file{.dvi} files in subdirectories of @file{@var{objdir}}; these may be converted for -printing with programs such as @command{dvips}. You can also +printing with programs such as @command{dvips}. Alternately, by using +@samp{make pdf} in place of @samp{make dvi}, you can create documentation +in the form of @file{.pdf} files; this requires @command{texi2pdf}, which +is included with Texinfo version 4.8 and later. You can also @uref{http://www.gnu.org/order/order.html,,buy printed manuals from the Free Software Foundation}, though such manuals may not be for the most recent version of GCC@. +If you would like to generate online HTML documentation, do @samp{cd +@var{objdir}; make html} and HTML will be generated for the gcc manuals in +@file{@var{objdir}/gcc/HTML}. + @html
@@ -2044,7 +2235,7 @@ Development Tools for the Renesas H8/300[HS] Series}. HP-UX: @itemize @item -@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center}; +@uref{http://hpux.cs.utah.edu/,,HP-UX Porting Center}; @item @uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}. @@ -2059,9 +2250,6 @@ Development Tools for the Motorola 68HC11/68HC12}. OpenServer/Unixware}. @item -Sinix/Reliant Unix---@uref{ftp://ftp.fujitsu-siemens.com/pub/pd/gnu/gcc/,,Siemens}. - -@item Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}. @item @@ -2084,16 +2272,20 @@ IRIX 6.5, Digital UNIX 4.0D and 5.1, GNU/Linux (i386), HP-UX 10.20, 11.00, and 11.11, and -Solaris/SPARC 2.5.1, 2.6, 2.7, 8, and 9, +Solaris/SPARC 2.5.1, 2.6, 7, 8, and 9. @item @uref{http://www.openpkg.org/,,OpenPKG} offers binaries for quite a number of platforms. + +@item +The @uref{http://gcc.gnu.org/wiki/GFortranBinaries,,GFortran Wiki} has +links to GNU Fortran binaries for several platforms. @end itemize In addition to those specific offerings, you can get a binary distribution CD-ROM from the -@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}. +@uref{http://www.gnu.org/order/order.html,,Free Software Foundation}. It contains binaries for a number of platforms, and includes not only GCC, but other stuff as well. The current CD does not contain the latest version of GCC, but it should allow @@ -2127,62 +2319,69 @@ works. Please read this document carefully @emph{before} installing the 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. + @ifhtml @itemize @item -@uref{#alpha*-*-*,,alpha*-*-*} +@uref{#alpha-x-x,,alpha*-*-*} @item -@uref{#alpha*-dec-osf*,,alpha*-dec-osf*} +@uref{#alpha-dec-osf,,alpha*-dec-osf*} @item -@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*} +@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*} @item -@uref{#arc-*-elf,,arc-*-elf} +@uref{#arc-x-elf,,arc-*-elf} @item -@uref{#arm-*-elf,,arm-*-elf} -@uref{#arm-*-coff,,arm-*-coff} -@uref{#arm-*-aout,,arm-*-aout} +@uref{#arm-x-elf,,arm-*-elf} +@uref{#arm-x-coff,,arm-*-coff} +@uref{#arm-x-aout,,arm-*-aout} @item -@uref{#xscale-*-*,,xscale-*-*} +@uref{#xscale-x-x,,xscale-*-*} @item @uref{#avr,,avr} @item +@uref{#bfin,,Blackfin} +@item @uref{#c4x,,c4x} @item @uref{#dos,,DOS} @item -@uref{#*-*-freebsd*,,*-*-freebsd*} +@uref{#x-x-freebsd,,*-*-freebsd*} @item @uref{#h8300-hms,,h8300-hms} @item -@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*} +@uref{#hppa-hp-hpux,,hppa*-hp-hpux*} @item -@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10} +@uref{#hppa-hp-hpux10,,hppa*-hp-hpux10} @item -@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11} +@uref{#hppa-hp-hpux11,,hppa*-hp-hpux11} @item -@uref{#*-*-linux-gnu,,*-*-linux-gnu} +@uref{#x-x-linux-gnu,,*-*-linux-gnu} @item -@uref{#ix86-*-linux*aout,,i?86-*-linux*aout} +@uref{#ix86-x-linuxaout,,i?86-*-linux*aout} @item -@uref{#ix86-*-linux*,,i?86-*-linux*} +@uref{#ix86-x-linux,,i?86-*-linux*} @item -@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*} +@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*} @item -@uref{#ix86-*-udk,,i?86-*-udk} +@uref{#ix86-x-solaris210,,i?86-*-solaris2.10} @item -@uref{#ix86-*-esix,,i?86-*-esix} +@uref{#ix86-x-udk,,i?86-*-udk} @item -@uref{#ia64-*-linux,,ia64-*-linux} +@uref{#ia64-x-linux,,ia64-*-linux} @item -@uref{#ia64-*-hpux*,,ia64-*-hpux*} +@uref{#ia64-x-hpux,,ia64-*-hpux*} @item -@uref{#*-ibm-aix*,,*-ibm-aix*} +@uref{#x-ibm-aix,,*-ibm-aix*} @item -@uref{#ip2k-*-elf,,ip2k-*-elf} +@uref{#iq2000-x-elf,,iq2000-*-elf} @item -@uref{#iq2000-*-elf,,iq2000-*-elf} +@uref{#m32c-x-elf,,m32c-*-elf} @item -@uref{#m32r-*-elf,,m32r-*-elf} +@uref{#m32r-x-elf,,m32r-*-elf} @item @uref{#m6811-elf,,m6811-elf} @item @@ -2190,63 +2389,61 @@ GNU Compiler Collection on your machine. @item @uref{#m68k-hp-hpux,,m68k-hp-hpux} @item -@uref{#mips-*-*,,mips-*-*} +@uref{#mips-x-x,,mips-*-*} @item @uref{#mips-sgi-irix5,,mips-sgi-irix5} @item @uref{#mips-sgi-irix6,,mips-sgi-irix6} @item -@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4} -@item -@uref{#powerpc-*-darwin*,,powerpc-*-darwin*} +@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4} @item -@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4} +@uref{#powerpc-x-darwin,,powerpc-*-darwin*} @item -@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*} +@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4} @item -@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*} +@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*} @item -@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix} +@uref{#powerpc-x-netbsd,,powerpc-*-netbsd*} @item -@uref{#powerpc-*-eabisim,,powerpc-*-eabisim} +@uref{#powerpc-x-eabisim,,powerpc-*-eabisim} @item -@uref{#powerpc-*-eabi,,powerpc-*-eabi} +@uref{#powerpc-x-eabi,,powerpc-*-eabi} @item -@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4} +@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4} @item -@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim} +@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim} @item -@uref{#powerpcle-*-eabi,,powerpcle-*-eabi} +@uref{#powerpcle-x-eabi,,powerpcle-*-eabi} @item -@uref{#s390-*-linux*,,s390-*-linux*} +@uref{#s390-x-linux,,s390-*-linux*} @item -@uref{#s390x-*-linux*,,s390x-*-linux*} +@uref{#s390x-x-linux,,s390x-*-linux*} @item -@uref{#s390x-ibm-tpf*,,s390x-ibm-tpf*} +@uref{#s390x-ibm-tpf,,s390x-ibm-tpf*} @item -@uref{#*-*-solaris2*,,*-*-solaris2*} +@uref{#x-x-solaris2,,*-*-solaris2*} @item -@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*} +@uref{#sparc-sun-solaris2,,sparc-sun-solaris2*} @item -@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7} +@uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7} @item -@uref{#sparc-*-linux*,,sparc-*-linux*} +@uref{#sparc-x-linux,,sparc-*-linux*} @item -@uref{#sparc64-*-solaris2*,,sparc64-*-solaris2*} +@uref{#sparc64-x-solaris2,,sparc64-*-solaris2*} @item -@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*} +@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*} @item -@uref{#*-*-sysv*,,*-*-sysv*} +@uref{#x-x-sysv,,*-*-sysv*} @item @uref{#vax-dec-ultrix,,vax-dec-ultrix} @item -@uref{#*-*-vxworks*,,*-*-vxworks*} +@uref{#x-x-vxworks,,*-*-vxworks*} @item -@uref{#x86_64-*-*,,x86_64-*-*, amd64-*-*} +@uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*} @item -@uref{#xtensa-*-elf,,xtensa-*-elf} +@uref{#xtensa-x-elf,,xtensa-*-elf} @item -@uref{#xtensa-*-linux*,,xtensa-*-linux*} +@uref{#xtensa-x-linux,,xtensa-*-linux*} @item @uref{#windows,,Microsoft Windows} @item @@ -2257,7 +2454,7 @@ GNU Compiler Collection on your machine. @itemize @item -@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.) +@uref{#elf,,all ELF targets} (SVR4, Solaris 2, etc.) @end itemize @end ifhtml @@ -2266,7 +2463,7 @@ GNU Compiler Collection on your machine.