X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2Fdoc%2Finstall.texi;h=12c574d399286fe366558c84d74d5464b6104571;hb=c1493544c1d89087a986c31b251e3040295d77af;hp=46213e4b25012072d7412897cb106eea74e1f545;hpb=311c6da40f1dd2f6f51d06e1bb81b009481812ca;p=gcc.git diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 46213e4b250..12c574d3992 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -7,6 +7,8 @@ @c %**end of header @c @end ifnothtml +@include gcc-common.texi + @c Specify title for specific html page @ifset indexhtml @settitle Installing GCC @@ -43,7 +45,7 @@ @end ifset @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 @@ -68,8 +70,9 @@ @c Part 2 Summary Description and Copyright @copying -Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, +1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008 Free Software Foundation, Inc. @sp 1 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or @@ -99,9 +102,8 @@ Free Documentation License}''. @c Part 3 Titlepage and Copyright @titlepage -@sp 10 -@comment The title is printed in a large font. -@center @titlefont{Installing GCC} +@title Installing GCC +@versionsubtitle @c The following two commands start the copyright page. @page @@ -109,7 +111,7 @@ Free Documentation License}''. @insertcopying @end titlepage -@c Part 4 Top node and Master Menu +@c Part 4 Top node, Master Menu, and/or Table of Contents @ifinfo @node Top, , , (dir) @comment node-name, next, Previous, up @@ -129,6 +131,10 @@ Free Documentation License}''. @end menu @end ifinfo +@iftex +@contents +@end iftex + @c Part 5 The Body of the Document @c ***Installing GCC********************************************************** @ifnothtml @@ -268,6 +274,12 @@ environment to your ``good'' shell prior to running @command{zsh} is not a fully compliant POSIX shell and will not work when configuring GCC@. +@item A POSIX or SVR4 awk + +Necessary for creating some of the generated source files for GCC@. +If in doubt, use a recent GNU awk version, as some of the older ones +are broken. GNU awk version 3.1.5 is known to work. + @item GNU binutils Necessary in some circumstances, optional in others. See the @@ -280,7 +292,7 @@ requirements. Necessary to uncompress GCC @command{tar} files when source code is obtained via FTP mirror sites. -@item GNU make version 3.79.1 (or later) +@item GNU make version 3.80 (or later) You must have GNU make installed to build GCC@. @@ -290,44 +302,71 @@ 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.1 (or later) +@item GNU Multiple Precision Library (GMP) version 4.2 (or later) -Necessary to build GCC. If you do not have it installed in your +Necessary to build GCC@. If you do not have it installed in your library search path, you will have to configure with the -@option{--with-gmp} configure option. See also -@option{--with-gmp-lib} and @option{--with-gmp-include}. +@option{--with-gmp} configure option. See also @option{--with-gmp-lib} +and @option{--with-gmp-include}. Alternatively, if a GMP source +distribution is found in a subdirectory of your GCC sources named +@file{gmp}, it will be built together with GCC@. -@item MPFR Library version 2.2.1 (or later) +@item MPFR Library version 2.3.2 (or later) -Necessary to build GCC. It can be downloaded from -@uref{http://www.mpfr.org/}. The version of MPFR that is bundled with -GMP 4.1.x contains numerous bugs. Although GCC may appear to function -with the buggy versions of MPFR, there are a few bugs that will not be -fixed when using this version. It is strongly recommended to upgrade -to the recommended version of MPFR. +Necessary to build GCC@. It can be downloaded from +@uref{http://www.mpfr.org/}. The @option{--with-mpfr} configure +option should be used if your MPFR Library is not installed in your +default library search path. See also @option{--with-mpfr-lib} and +@option{--with-mpfr-include}. Alternatively, if a MPFR source +distribution is found in a subdirectory of your GCC sources named +@file{mpfr}, it will be built together with GCC@. -The @option{--with-mpfr} configure option should be used if your MPFR -Library is not installed in your default library search path. See -also @option{--with-mpfr-lib} and @option{--with-mpfr-include}. +@item Parma Polyhedra Library (PPL) version 0.10 + +Necessary to build GCC with the Graphite loop optimizations. +It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}. + +The @option{--with-ppl} configure option should be used if PPL is not +installed in your default library search path. + +@item CLooG-PPL version 0.15 + +Necessary to build GCC with the Graphite loop optimizations. It can +be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}. +The code in @file{cloog-ppl-0.15.tar.gz} comes from a branch of CLooG +available from @uref{http://repo.or.cz/w/cloog-ppl.git}. CLooG-PPL +should be configured with @option{--with-ppl}. + +The @option{--with-cloog} configure option should be used if CLooG is +not installed in your default library search path. @item @command{jar}, or InfoZIP (@command{zip} and @command{unzip}) Necessary to build libgcj, the GCJ runtime. -@end table +@item MPC Library version 0.6.0 (or later) +Optional when building GCC@. Having this library will enable +additional optimizations on complex numbers. It can be downloaded +from @uref{http://www.multiprecision.org/mpc/}. The +@option{--with-mpc} configure option should be used if your MPC +Library is not installed in your default library search path. See +also @option{--with-mpc-lib} and @option{--with-mpc-include}. +Alternatively, if an MPC source distribution is found in a +subdirectory of your GCC sources named @file{mpc}, it will be built +together with GCC@. + +@end table @heading Tools/packages necessary for modifying GCC @table @asis -@item autoconf versions 2.13 and 2.59 -@itemx GNU m4 version 1.4 (or later) +@item autoconf version 2.64 +@itemx GNU m4 version 1.4.6 (or later) Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@: -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). +to regenerate @file{configure} and @file{config.in} files. -@item automake version 1.9.6 +@item automake version 1.11 Necessary when modifying a @file{Makefile.am} file to regenerate its associated @file{Makefile.in}. @@ -338,8 +377,8 @@ file. Specifically this applies to the @file{gcc}, @file{intl}, as any of their subdirectories. For directories that use automake, GCC requires the latest release in -the 1.9.x series, which is currently 1.9.6. When regenerating a directory -to a newer version, please update all the directories using an older 1.9.x +the 1.11 series, which is currently 1.11. When regenerating a directory +to a newer version, please update all the directories using an older 1.11 to the latest released version. @item gettext version 0.14.5 (or later) @@ -369,16 +408,6 @@ 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 GCJ. - -Necessary when modifying @file{*.y} files. - -Necessary to build GCC during development because the generated output -files are not included in the SVN repository. They are included in -releases. - @item Flex version 2.5.4 (or later) Necessary when modifying @file{*.l} files. @@ -387,7 +416,7 @@ Necessary to build GCC during development because the generated output files are not included in the SVN repository. They are included in releases. -@item Texinfo version 4.4 (or later) +@item Texinfo version 4.7 (or later) Necessary for running @command{makeinfo} when modifying @file{*.texi} files to test your changes. @@ -431,6 +460,28 @@ Useful when submitting patches for the GCC source code. Necessary when applying patches, created with @command{diff}, to one's own sources. +@item ecj1 +@itemx gjavah + +If you wish to modify @file{.java} files in libjava, you will need to +configure with @option{--enable-java-maintainer-mode}, and you will need +to have executables named @command{ecj1} and @command{gjavah} in your path. +The @command{ecj1} executable should run the Eclipse Java compiler via +the GCC-specific entry point. You can download a suitable jar from +@uref{ftp://sourceware.org/pub/java/}, or by running the script +@command{contrib/download_ecj}. + +@item antlr.jar version 2.7.1 (or later) +@itemx antlr binary + +If you wish to build the @command{gjdoc} binary in libjava, you will +need to have an @file{antlr.jar} library available. The library is +searched in system locations but can be configured with +@option{--with-antlr-jar=} instead. When configuring with +@option{--enable-java-maintainer-mode}, you will need to have one of +the executables named @command{cantlr}, @command{runantlr} or +@command{antlr} in your path. + @end table @html @@ -485,6 +536,12 @@ components of the binutils you intend to build alongside the compiler (@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld}, @file{opcodes}, @dots{}) to the directory containing the GCC sources. +Likewise the GMP, MPFR and MPC libraries can be automatically built +together with GCC. Unpack the GMP, MPFR and/or MPC source +distributions in the directory containing the GCC sources and rename +their directories to @file{gmp}, @file{mpfr} and @file{mpc}, +respectively (or use symbolic links with the same name). + @html
@@ -567,6 +624,29 @@ To configure GCC: % @var{srcdir}/configure [@var{options}] [@var{target}] @end smallexample +@heading Distributor options + +If you will be distributing binary versions of GCC, with modifications +to the source code, you should use the options described in this +section to make clear that your version contains modifications. + +@table @code +@item --with-pkgversion=@var{version} +Specify a string that identifies your package. You may wish +to include a build number or build date. This version string will be +included in the output of @command{gcc --version}. This suffix does +not replace the default version string, only the @samp{GCC} part. + +The default value is @samp{GCC}. + +@item --with-bugurl=@var{url} +Specify the URL that users should visit if they wish to report a bug. +You are of course welcome to forward bugs reported to you to the FSF, +if you determine that they are not bugs in your modifications. + +The default value refers to the FSF's GCC bug tracker. + +@end table @heading Target specification @itemize @bullet @@ -578,7 +658,7 @@ provide a configure target when configuring a native compiler. @item @var{target} must be specified as @option{--target=@var{target}} when configuring a cross compiler; examples of valid targets would be -m68k-coff, sh-elf, etc. +m68k-elf, sh-elf, etc. @item Specifying just @var{target} instead of @option{--target=@var{target}} @@ -628,31 +708,48 @@ internal data files of GCC@. The default is @file{@var{exec-prefix}/lib}. @item --libexecdir=@var{dirname} Specify the installation directory for internal executables of GCC@. - The default is @file{@var{exec-prefix}/libexec}. +The default is @file{@var{exec-prefix}/libexec}. @item --with-slibdir=@var{dirname} Specify the installation directory for the shared libgcc library. The default is @file{@var{libdir}}. +@item --datarootdir=@var{dirname} +Specify the root of the directory tree for read-only architecture-independent +data files referenced by GCC@. The default is @file{@var{prefix}/share}. + @item --infodir=@var{dirname} Specify the installation directory for documentation in info format. -The default is @file{@var{prefix}/info}. +The default is @file{@var{datarootdir}/info}. @item --datadir=@var{dirname} Specify the installation directory for some architecture-independent -data files referenced by GCC@. The default is @file{@var{prefix}/share}. +data files referenced by GCC@. The default is @file{@var{datarootdir}}. + +@item --docdir=@var{dirname} +Specify the installation directory for documentation files (other +than Info) for GCC@. The default is @file{@var{datarootdir}/doc}. + +@item --htmldir=@var{dirname} +Specify the installation directory for HTML documentation files. +The default is @file{@var{docdir}}. + +@item --pdfdir=@var{dirname} +Specify the installation directory for PDF documentation files. +The default is @file{@var{docdir}}. @item --mandir=@var{dirname} Specify the installation directory for manual pages. The default is -@file{@var{prefix}/man}. (Note that the manual pages are only extracts from -the full GCC manuals, which are provided in Texinfo format. The manpages +@file{@var{datarootdir}/man}. (Note that the manual pages are only extracts +from the full GCC manuals, which are provided in Texinfo format. The manpages are derived by an automatic conversion process from parts of the full manual.) @item --with-gxx-include-dir=@var{dirname} Specify -the installation directory for G++ header files. The default is -@file{@var{prefix}/include/c++/@var{version}}. +the installation directory for G++ header files. The default depends +on other configuration options, and differs between cross and native +configurations. @end table @@ -808,19 +905,10 @@ whether you use the GNU assembler. On any other system, @itemize @bullet @item @samp{hppa1.0-@var{any}-@var{any}} @item @samp{hppa1.1-@var{any}-@var{any}} -@item @samp{i386-@var{any}-sysv} -@item @samp{m68k-bull-sysv} -@item @samp{m68k-hp-hpux} -@item @samp{m68000-hp-hpux} -@item @samp{m68000-att-sysv} @item @samp{sparc-sun-solaris2.@var{any}} @item @samp{sparc64-@var{any}-solaris2.@var{any}} @end itemize -On the systems listed above (except for the HP-PA, the SPARC, for ISC on -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 @@ -898,7 +986,7 @@ tools can not generate or interpret stabs. @item --disable-multilib Specify that multiple target libraries to support different target variants, calling -conventions, etc should not be built. The default is to build a +conventions, etc.@: should not be built. The default is to build a predefined set of them. Some targets provide finer-grained control over which multilibs are built @@ -922,6 +1010,57 @@ sysv, aix. @end table +@item --with-multilib-list=@var{list} +@itemx --without-multilib-list +Specify what multilibs to build. +Currently only implemented for sh*-*-*. + +@var{list} is a comma separated list of CPU names. These must be of the +form @code{sh*} or @code{m*} (in which case they match the compiler option +for that processor). The list should not contain any endian options - +these are handled by @option{--with-endian}. + +If @var{list} is empty, then there will be no multilibs for extra +processors. The multilib for the secondary endian remains enabled. + +As a special case, if an entry in the list starts with a @code{!} +(exclamation point), then it is added to the list of excluded multilibs. +Entries of this sort should be compatible with @samp{MULTILIB_EXCLUDES} +(once the leading @code{!} has been stripped). + +If @option{--with-multilib-list} is not given, then a default set of +multilibs is selected based on the value of @option{--target}. This is +usually the complete set of libraries, but some targets imply a more +specialized subset. + +Example 1: to configure a compiler for SH4A only, but supporting both +endians, with little endian being the default: +@smallexample +--with-cpu=sh4a --with-endian=little,big --with-multilib-list= +@end smallexample + +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 +@end smallexample + +@item --with-endian=@var{endians} +Specify what endians to use. +Currently only implemented for sh*-*-*. + +@var{endians} may be one of the following: +@table @code +@item big +Use big endian exclusively. +@item little +Use little endian exclusively. +@item big,little +Use big endian by default. Provide a multilib for little endian. +@item little,big +Use little endian by default. Provide a multilib for big endian. +@end table + @item --enable-threads Specify that the target supports threads. This affects the Objective-C compiler and runtime @@ -992,14 +1131,23 @@ Specify that the target does not support TLS. This is an alias for @option{--enable-tls=no}. @item --with-cpu=@var{cpu} +@itemx --with-cpu-32=@var{cpu} +@itemx --with-cpu-64=@var{cpu} Specify which cpu variant the compiler should generate code for by default. @var{cpu} will be used as the default value of the @option{-mcpu=} switch. -This option is only supported on some targets, including ARM, i386, PowerPC, -and SPARC@. +This option is only supported on some targets, including ARM, i386, M68k, +PowerPC, and SPARC@. The @option{--with-cpu-32} and +@option{--with-cpu-64} options specify separate default CPUs for +32-bit and 64-bit modes; these options are only supported for i386, +x86-64 and PowerPC. @item --with-schedule=@var{cpu} @itemx --with-arch=@var{cpu} +@itemx --with-arch-32=@var{cpu} +@itemx --with-arch-64=@var{cpu} @itemx --with-tune=@var{cpu} +@itemx --with-tune-32=@var{cpu} +@itemx --with-tune-64=@var{cpu} @itemx --with-abi=@var{abi} @itemx --with-fpu=@var{type} @itemx --with-float=@var{type} @@ -1025,13 +1173,40 @@ systems that support conditional traps). Division by zero checks use the break instruction. @end table +@c If you make --with-llsc the default for additional targets, +@c update the --with-llsc description in the MIPS section below. + +@item --with-llsc +On MIPS targets, make @option{-mllsc} the default when no +@option{-mno-lsc} option is passed. This is the default for +Linux-based targets, as the kernel will emulate them if the ISA does +not provide them. + +@item --without-llsc +On MIPS targets, make @option{-mno-llsc} the default when no +@option{-mllsc} option is passed. + +@item --with-synci +On MIPS targets, make @option{-msynci} the default when no +@option{-mno-synci} option is passed. + +@item --without-synci +On MIPS targets, make @option{-mno-synci} the default when no +@option{-msynci} option is passed. This is the default. + +@item --with-mips-plt +On MIPS targets, make use of copy relocations and PLTs. +These features are extensions to the traditional +SVR4-based MIPS ABIs and require support from GNU binutils +and the runtime C library. + @item --enable-__cxa_atexit Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. 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 -@option{-fuse-cxa-exit} to be passed by default. +@option{-fuse-cxa-atexit} to be passed by default. @item --enable-target-optspace Specify that target @@ -1053,6 +1228,10 @@ opposite effect. If neither option is specified, the configure script will try to guess whether the @code{.init_array} and @code{.fini_array} sections are supported and, if they are, use them. +@item --enable-build-with-cxx +Build GCC using a C++ compiler rather than a C compiler. This is an +experimental option which may become the default in a later release. + @item --enable-maintainer-mode The build rules that regenerate the GCC master message catalog @file{gcc.pot} are normally @@ -1101,14 +1280,6 @@ particularly useful if you intend to use several versions of GCC in parallel. This is currently supported by @samp{libgfortran}, @samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}. -@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 their runtime libraries should be built. For a list of valid values for @@ -1119,15 +1290,30 @@ 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{treelang}. +@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, Objective-C++, and treelang are not default languages; the rest are. +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! +@item --enable-stage1-languages=@var{lang1},@var{lang2},@dots{} +Specify that a particular subset of compilers and their runtime +libraries should be built with the system C compiler during stage 1 of +the bootstrap process, rather than only in later stages with the +bootstrapped C compiler. The list of valid values is the same as for +@option{--enable-languages}, and the option @code{all} will select all +of the languages enabled by @option{--enable-languages}. This option is +primarily useful for GCC development; for instance, when a development +version of the compiler cannot bootstrap due to compiler bugs, or when +one is debugging front ends other than the C front end. When this +option is used, one can then build the target libraries for the +specified languages with the stage-1 compiler by using @command{make +stage1-bubble all-target}, or run the testsuite on the stage-1 compiler +for the specified languages using @command{make stage1-start check-gcc}. + @item --disable-libada Specify that the run-time libraries and tools used by GNAT should not be built. This can be useful for debugging, or for compatibility with @@ -1154,7 +1340,8 @@ 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 and x86-linux. +Currently, this option only affects sparc-linux, powerpc-linux and +x86-linux. @item --enable-secureplt This option enables @option{-msecure-plt} by default for powerpc-linux. @@ -1166,6 +1353,16 @@ Using the GNU Compiler Collection (GCC)}, See ``RS/6000 and PowerPC Options'' in the main manual @end ifhtml +@item --enable-cld +This option enables @option{-mcld} by default for 32-bit x86 targets. +@ifnothtml +@xref{i386 and x86-64 Options,, i386 and x86-64 Options, gcc, +Using the GNU Compiler Collection (GCC)}, +@end ifnothtml +@ifhtml +See ``i386 and x86-64 Options'' in the main manual +@end ifhtml + @item --enable-win32-registry @itemx --enable-win32-registry=@var{key} @itemx --disable-win32-registry @@ -1207,25 +1404,39 @@ 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 +from SVN or snapshots, but @samp{release} for releases. The default +for building the stage1 compiler is @samp{yes}. 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{df}, @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. +@samp{df}, @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 --disable-stage1-checking +@item --enable-stage1-checking +@itemx --enable-stage1-checking=@var{list} +If no @option{--enable-checking} option is specified the stage1 +compiler will be built with @samp{yes} checking enabled, otherwise +the stage1 checking flags are the same as specified by +@option{--enable-checking}. To build the stage1 compiler with +different checking options use @option{--enable-stage1-checking}. +The list of checking options is the same as for @option{--enable-checking}. +If your system is too slow or too small to bootstrap a released compiler +with checking for stage1 enabled, you can use @samp{--disable-stage1-checking} +to disable checking for the stage1 compiler. + @item --enable-coverage @itemx --enable-coverage=@var{level} With this option, the compiler is built to collect self coverage @@ -1281,11 +1492,26 @@ is removed entirely in the next major release, unless someone steps forward to maintain the port. @item --enable-decimal-float +@itemx --enable-decimal-float=yes +@itemx --enable-decimal-float=no +@itemx --enable-decimal-float=bid +@itemx --enable-decimal-float=dpd @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. +Enable (or disable) support for the C decimal floating point extension +that is in the IEEE 754-2008 standard. This is enabled by default only +on PowerPC, i386, and x86_64 GNU/Linux systems. Other systems may also +support it, but require the user to specifically enable it. You can +optionally control which decimal floating point format is used (either +@samp{bid} or @samp{dpd}). The @samp{bid} (binary integer decimal) +format is default on i386 and x86_64 systems, and the @samp{dpd} +(densely packed decimal) format is default on PowerPC systems. + +@item --enable-fixed-point +@itemx --disable-fixed-point +Enable (or disable) support for C fixed-point arithmetic. +This option is enabled by default for some targets (such as MIPS) which +have hardware-support for fixed-point operations. On other targets, you +may enable this option manually. @item --with-long-double-128 Specify if @code{long double} type should be 128-bit by default on selected @@ -1301,20 +1527,97 @@ When neither of these configure options are used, the default will be @itemx --with-mpfr=@var{pathname} @itemx --with-mpfr-include=@var{pathname} @itemx --with-mpfr-lib=@var{pathname} -If you do not have GMP (the GNU Multiple Precision library) and the -MPFR Libraries 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}}). The +@itemx --with-mpc=@var{pathname} +@itemx --with-mpc-include=@var{pathname} +@itemx --with-mpc-lib=@var{pathname} +If you do not have GMP (the GNU Multiple Precision library), the MPFR +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}. If these +@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. +@item --with-ppl=@var{pathname} +@itemx --with-ppl-include=@var{pathname} +@itemx --with-ppl-lib=@var{pathname} +@itemx --with-cloog=@var{pathname} +@itemx --with-cloog-include=@var{pathname} +@itemx --with-cloog-lib=@var{pathname} +If you do not have PPL (the Parma Polyhedra Library) and the CLooG +libraries installed in a standard location and you want to build GCC, +you can explicitly specify the directory where they are installed +(@samp{--with-ppl=@var{pplinstalldir}}, +@samp{--with-cloog=@var{clooginstalldir}}). The +@option{--with-ppl=@var{pplinstalldir}} option is shorthand for +@option{--with-ppl-lib=@var{pplinstalldir}/lib} and +@option{--with-ppl-include=@var{pplinstalldir}/include}. Likewise the +@option{--with-cloog=@var{clooginstalldir}} option is shorthand for +@option{--with-cloog-lib=@var{clooginstalldir}/lib} and +@option{--with-cloog-include=@var{clooginstalldir}/include}. If these +shorthand assumptions are not correct, you can use the explicit +include and lib options directly. + +@item --with-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 +internally by PPL. Typical values of @var{linker-args} might be +@samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. If you are +linking with a shared copy of PPL, you probably do not need this +option; shared library dependencies will cause the linker to search +for the standard C++ library automatically. + +@item --with-stage1-ldflags=@var{flags} +This option may be used to set linker flags to be used when linking +stage 1 of GCC. These are also used when linking GCC if configured with +@option{--disable-bootstrap}. By default no special flags are used. + +@item --with-stage1-libs=@var{libs} +This option may be used to set libraries to be used when linking stage 1 +of GCC. These are also used when linking GCC if configured with +@option{--disable-bootstrap}. The default is the argument to +@option{--with-host-libstdcxx}, if specified. + +@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. + +@item --with-boot-libs=@var{libs} +This option may be used to set libraries to be used when linking stage 2 +and later when bootstrapping GCC. The default is the argument to +@option{--with-host-libstdcxx}, if specified. + +@item --with-debug-prefix-map=@var{map} +Convert source directory names using @option{-fdebug-prefix-map} when +building runtime libraries. @samp{@var{map}} is a space-separated +list of maps of the form @samp{@var{old}=@var{new}}. + +@item --enable-linker-build-id +Tells GCC to pass @option{--build-id} option to the linker for all final +links (links performed without the @option{-r} or @option{--relocatable} +option), if the linker supports it. If you specify +@option{--enable-linker-build-id}, but your linker does not +support @option{--build-id} option, a warning is issued and the +@option{--enable-linker-build-id} option is ignored. The default is off. + +@item --enable-gnu-unique-object +@itemx --disable-gnu-unique-object +Tells GCC to use the gnu_unique_object relocation for C++ template +static data members and inline function local statics. Enabled by +default for a native toolchain with an assembler that accepts it and +GLIBC 2.11 or above, otherwise disabled. + @end table @subheading Cross-Compiler-Specific Options @@ -1384,7 +1687,7 @@ 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 +For example, on an @samp{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}. @@ -1420,6 +1723,40 @@ The following options apply to building @samp{libgcj}. @subsubheading General Options @table @code +@item --enable-java-maintainer-mode +By default the @samp{libjava} build will not attempt to compile the +@file{.java} source files to @file{.class}. Instead, it will use the +@file{.class} files from the source tree. If you use this option you +must have executables named @command{ecj1} and @command{gjavah} in your path +for use by the build. You must use this option if you intend to +modify any @file{.java} files in @file{libjava}. + +@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 --with-ecj-jar=@var{filename} +This option can be used to specify the location of an external jar +file containing the Eclipse Java compiler. A specially modified +version of this compiler is used by @command{gcj} to parse +@file{.java} source files. If this option is given, the +@samp{libjava} build will create and install an @file{ecj1} executable +which uses this jar file at runtime. + +If this option is not given, but an @file{ecj.jar} file is found in +the topmost source tree at configure time, then the @samp{libgcj} +build will create and install @file{ecj1}, and will also install the +discovered @file{ecj.jar} into a suitable place in the install tree. + +If @file{ecj1} is not installed, then the user will have to supply one +on his path in order for @command{gcj} to properly parse @file{.java} +source files. A suitable jar is available from +@uref{ftp://sourceware.org/pub/java/}. + @item --disable-getenv-properties Don't set system properties from @env{GCJ_PROPERTIES}. @@ -1442,6 +1779,24 @@ using non-functional stubs for native method implementations. @item --disable-jvmpi Disable JVMPI support. +@item --disable-libgcj-bc +Disable BC ABI compilation of certain parts of libgcj. By default, +some portions of libgcj are compiled with @option{-findirect-dispatch} +and @option{-fno-indirect-classes}, allowing them to be overridden at +run-time. + +If @option{--disable-libgcj-bc} is specified, libgcj is built without +these options. This allows the compile-time linker to resolve +dependencies when statically linking to libgcj. However it makes it +impossible to override the affected portions of libgcj at run-time. + +@item --enable-reduced-reflection +Build most of libgcj with @option{-freduced-reflection}. This reduces +the size of libgcj at the expense of not being able to do accurate +reflection on the classes it contains. This option is safe if you +know that code using libgcj will never use reflection on the standard +runtime classes in libgcj (including using serialization, RMI or CORBA). + @item --with-ecos Enable runtime eCos target support. @@ -1474,6 +1829,45 @@ 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@. + +@item --enable-java-home +If enabled, this creates a JPackage compatible SDK environment during install. +Note that if --enable-java-home is used, --with-arch-directory=ARCH must also +be specified. + +@item --with-arch-directory=ARCH +Specifies the name to use for the @file{jre/lib/ARCH} directory in the SDK +environment created when --enable-java-home is passed. Typical names for this +directory include i386, amd64, ia64, etc. + +@item --with-os-directory=DIR +Specifies the OS directory for the SDK include directory. This is set to auto +detect, and is typically 'linux'. + +@item --with-origin-name=NAME +Specifies the JPackage origin name. This defaults to the 'gcj' in +java-1.5.0-gcj. + +@item --with-arch-suffix=SUFFIX +Specifies the suffix for the sdk directory. Defaults to the empty string. +Examples include '.x86_64' in 'java-1.5.0-gcj-1.5.0.0.x86_64'. + +@item --with-jvm-root-dir=DIR +Specifies where to install the SDK. Default is $(prefix)/lib/jvm. + +@item --with-jvm-jar-dir=DIR +Specifies where to install jars. Default is $(prefix)/lib/jvm-exports. + +@item --with-python-dir=DIR +Specifies where to install the Python modules used for aot-compile. DIR should +not include the prefix used in installation. For example, if the Python modules +are to be installed in /usr/lib/python2.5/site-packages, then +--with-python-dir=/lib/python2.5/site-packages should be passed. If this is +not specified, then the Python modules are installed in $(prefix)/share/python. + +@item --enable-aot-compile-rpm +Adds aot-compile-rpm to the list of installed scripts. + @table @code @item ansi Use the single-byte @code{char} and the Win32 A functions natively, @@ -1584,13 +1978,16 @@ that type mismatches occur, this could be the cause. The solution is not to use such a directory for building GCC@. -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. +Similarly, when building from SVN or snapshots, or if you modify +@file{*.l} files, you need the Flex lexical analyzer generator +installed. If you do not modify @file{*.l} files, releases contain +the Flex-generated files and you do not need Flex installed to build +them. There is still one Flex-based lexical analyzer (part of the +build machinery, not of GCC itself) that is used even if you only +build the C front end. When building from SVN or snapshots, or if you modify Texinfo -documentation, you need version 4.4 or later of Texinfo installed if you +documentation, you need version 4.7 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. @@ -1631,33 +2028,35 @@ 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. -If you want to save additional space during the bootstrap and in -the final installation as well, you can build the compiler binaries -without debugging information as in the following example. This will save -roughly 40% of disk space both for the bootstrap and the final installation. -(Libraries will still contain debugging information.) +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}. For example, if you want to save additional space +during the bootstrap and in the final installation as well, you can +build the compiler binaries without debugging information as in the +following example. This will save roughly 40% of disk space both for +the bootstrap and the final installation. (Libraries will still contain +debugging information.) @smallexample - make CFLAGS='-O' LIBCFLAGS='-g -O2' \ - LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap + make BOOT_CFLAGS='-O' bootstrap @end smallexample -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}. 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 -native compiler miscompiles the stage1 compiler, you may need to work -around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the -stage1 compiler that were miscompiled, or by using @samp{make +You can place non-default optimization flags into @code{BOOT_CFLAGS}; they +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 native compiler miscompiles the stage1 compiler, you may need +to work 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 -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. - +@code{BOOT_CFLAGS} does not apply to bootstrapped target libraries. +Since these are always compiled with the compiler currently being +bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their +compilation flags, as for non-bootstrapped target libraries. +Again, if the native compiler miscompiles the stage1 compiler, you may +need to work around this by avoiding non-working parts of the stage1 +compiler. Use @code{STAGE1_TFLAGS} to this end. If you used the flag @option{--enable-languages=@dots{}} to restrict the compilers to be built, only those you've actually enabled will be @@ -1681,6 +2080,76 @@ the one you are building on: for example, you could build a @code{powerpc64-unknown-linux-gnu} host. In this case, pass @option{--enable-bootstrap} to the configure script. +@code{BUILD_CONFIG} can be used to bring in additional customization +to the build. It can be set to a whitespace-separated list of names. +For each such @code{NAME}, top-level @file{config/@code{NAME}.mk} will +be included by the top-level @file{Makefile}, bringing in any settings +it contains. The default @code{BUILD_CONFIG} can be set using the +configure option @option{--with-build-config=@code{NAME}...}. Some +examples of supported build configurations are: + +@table @asis +@item @samp{bootstrap-O1} +Removes any @option{-O}-started option from @code{BOOT_CFLAGS}, and adds +@option{-O1} to it. @samp{BUILD_CONFIG=bootstrap-O1} is equivalent to +@samp{BOOT_CFLAGS='-g -O1'}. + +@item @samp{bootstrap-O3} +Analogous to @code{bootstrap-O1}. + +@item @samp{bootstrap-debug} +Verifies that the compiler generates the same executable code, whether +or not it is asked to emit debug information. To this end, this +option builds stage2 host programs without debug information, and uses +@file{contrib/compare-debug} to compare them with the stripped stage3 +object files. If @code{BOOT_CFLAGS} is overridden so as to not enable +debug information, stage2 will have it, and stage3 won't. This option +is enabled by default when GCC bootstrapping is enabled, if +@code{strip} can turn object files compiled with and without debug +info into identical object files. In addition to better test +coverage, this option makes default bootstraps faster and leaner. + +@item @samp{bootstrap-debug-big} +Rather than comparing stripped object files, as in +@code{bootstrap-debug}, this option saves internal compiler dumps +during stage2 and stage3 and compares them as well, which helps catch +additional potential problems, but at a great cost in terms of disk +space. It can be specified in addition to @samp{bootstrap-debug}. + +@item @samp{bootstrap-debug-lean} +This option saves disk space compared with @code{bootstrap-debug-big}, +but at the expense of some recompilation. Instead of saving the dumps +of stage2 and stage3 until the final compare, it uses +@option{-fcompare-debug} to generate, compare and remove the dumps +during stage3, repeating the compilation that already took place in +stage2, whose dumps were not saved. + +@item @samp{bootstrap-debug-lib} +This option tests executable code invariance over debug information +generation on target libraries, just like @code{bootstrap-debug-lean} +tests it on host programs. It builds stage3 libraries with +@option{-fcompare-debug}, and it can be used along with any of the +@code{bootstrap-debug} options above. + +There aren't @code{-lean} or @code{-big} counterparts to this option +because most libraries are only build in stage3, so bootstrap compares +would not get significant coverage. Moreover, the few libraries built +in stage2 are used in stage3 host programs, so we wouldn't want to +compile stage2 libraries with different options for comparison purposes. + +@item @samp{bootstrap-debug-ckovw} +Arranges for error messages to be issued if the compiler built on any +stage is run without the option @option{-fcompare-debug}. This is +useful to verify the full @option{-fcompare-debug} testing coverage. It +must be used along with @code{bootstrap-debug-lean} and +@code{bootstrap-debug-lib}. + +@item @samp{bootstrap-time} +Arranges for the run time of each program started by the GCC driver, +built in any stage, to be logged to @file{time.log}, in the top level of +the build tree. + +@end table @section Building a cross compiler @@ -1693,6 +2162,13 @@ native compiler. You can then use the native GCC compiler to build the cross compiler. The installed native compiler needs to be GCC version 2.95 or later. +If the cross compiler is to be built with support for the Java +programming language and the ability to compile .java source files is +desired, the installed native compiler used to build the cross +compiler needs to be the same GCC version as the cross compiler. In +addition the cross compiler needs to be configured with +@option{--with-ecj-jar=@dots{}}. + Assuming you have already installed a native copy of GCC and configured your cross compiler, issue the command @command{make}, which performs the following steps: @@ -1772,7 +2248,7 @@ 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). +compiler (GCC version 3.4 or later). This includes GNAT tools such as @command{gnatmake} and @command{gnatlink}, since the Ada front end is written in Ada and uses some GNAT-specific extensions. @@ -1786,6 +2262,12 @@ and has a sufficiently recent version; if too old a GNAT version is installed, the build will fail unless @option{--enable-languages} is used to disable building the Ada front end. +@env{ADA_INCLUDE_PATH} and @env{ADA_OBJECT_PATH} environment variables +must not be set when building the Ada compiler, the Ada tools, or the +Ada runtime libraries. You can check that your build environment is clean +by verifying that @samp{gnatls -v} lists only one explicit path in each +section. + @section Building with profile feedback It is possible to use profile feedback to optimize the compiler itself. This @@ -1872,6 +2354,9 @@ might emit some harmless messages resembling @samp{WARNING: Couldn't find the global config file.} or @samp{WARNING: Couldn't find tool init file} that can be ignored. +If you are testing a cross-compiler, you may want to run the testsuite +on a simulator as described at @uref{http://gcc.gnu.org/simtest-howto.html}. + @section How can you run the testsuite on selected tests? In order to run sets of tests selectively, there are targets @@ -1921,7 +2406,7 @@ You can run the testsuites multiple times using combinations of options 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.) @@ -1943,7 +2428,7 @@ They can be combined as many times as you wish, in arbitrary ways. This list: @smallexample - @dots{}"--target_board=unix/-Wextra@{-O3,-fno-strength-reduce@}@{-fomit-frame-pointer,@}" + @dots{}"--target_board=unix/-Wextra\@{-O3,-fno-strength\@}\@{-fomit-frame,\@}" @end smallexample will generate four combinations, all involving @samp{-Wextra}. @@ -1977,18 +2462,13 @@ The Java runtime tests can be executed via @samp{make check} in the @file{@var{target}/libjava/testsuite} directory in the build tree. -The @uref{http://sources.redhat.com/mauve/,,Mauve Project} provides +The @uref{http://sourceware.org/mauve/,,Mauve Project} provides a suite of tests for the Java Class Libraries. This suite can be run as part of libgcj testing by placing the Mauve tree within the libjava 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://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}. - @section How to interpret test results The result of running the testsuite are various @file{*.sum} and @file{*.log} @@ -2062,7 +2542,10 @@ cd @var{objdir}; make install @end smallexample We strongly recommend to install into a target directory where there is -no previous version of GCC present. +no previous version of GCC present. Also, the GNAT runtime should not +be stripped, as this would break certain features of the debugger that +depend on this debugging information (catching Ada exceptions for +instance). That step completes the installation of GCC; user level binaries can be found in @file{@var{prefix}/bin} where @var{prefix} is the value @@ -2171,14 +2654,14 @@ 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.4) +dvi}. You will need to have @command{texi2dvi} (version at least 4.7) and @TeX{} installed. This creates a number of @file{.dvi} files in subdirectories of @file{@var{objdir}}; these may be converted for printing with programs such as @command{dvips}. Alternately, by using @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 +@uref{http://shop.fsf.org/,,buy printed manuals from the Free Software Foundation}, though such manuals may not be for the most recent version of GCC@. @@ -2224,7 +2707,10 @@ AIX: @uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX}; @item -@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. +@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Software for IBM System p}; + +@item +@uref{http://www.perzl.org/aix/,,AIX 5L and 6 Open Source Packages}. @end itemize @item @@ -2262,7 +2748,7 @@ SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}. Microsoft Windows: @itemize @item -The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project; +The @uref{http://sourceware.org/cygwin/,,Cygwin} project; @item The @uref{http://www.mingw.org/,,MinGW} project. @end itemize @@ -2270,12 +2756,12 @@ The @uref{http://www.mingw.org/,,MinGW} project. @item @uref{ftp://ftp.thewrittenword.com/packages/by-name/,,The Written Word} offers binaries for -AIX 4.3.2. +AIX 4.3.3, 5.1 and 5.2, IRIX 6.5, -Digital UNIX 4.0D and 5.1, +Tru64 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, 7, 8, and 9. +Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10. @item @uref{http://www.openpkg.org/,,OpenPKG} offers binaries for quite a @@ -2334,22 +2820,14 @@ information are. @item @uref{#alpha-dec-osf,,alpha*-dec-osf*} @item -@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*} -@item @uref{#arc-x-elf,,arc-*-elf} @item @uref{#arm-x-elf,,arm-*-elf} -@uref{#arm-x-coff,,arm-*-coff} -@uref{#arm-x-aout,,arm-*-aout} -@item -@uref{#xscale-x-x,,xscale-*-*} @item @uref{#avr,,avr} @item @uref{#bfin,,Blackfin} @item -@uref{#c4x,,c4x} -@item @uref{#dos,,DOS} @item @uref{#x-x-freebsd,,*-*-freebsd*} @@ -2364,16 +2842,10 @@ information are. @item @uref{#x-x-linux-gnu,,*-*-linux-gnu} @item -@uref{#ix86-x-linuxaout,,i?86-*-linux*aout} -@item @uref{#ix86-x-linux,,i?86-*-linux*} @item -@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*} -@item @uref{#ix86-x-solaris210,,i?86-*-solaris2.10} @item -@uref{#ix86-x-udk,,i?86-*-udk} -@item @uref{#ia64-x-linux,,ia64-*-linux} @item @uref{#ia64-x-hpux,,ia64-*-hpux*} @@ -2390,7 +2862,11 @@ information are. @item @uref{#m6812-elf,,m6812-elf} @item -@uref{#m68k-hp-hpux,,m68k-hp-hpux} +@uref{#m68k-x-x,,m68k-*-*} +@item +@uref{#m68k-uclinux,,m68k-uclinux} +@item +@uref{#mep-x-elf,,mep-*-elf} @item @uref{#mips-x-x,,mips-*-*} @item @@ -2398,11 +2874,11 @@ information are. @item @uref{#mips-sgi-irix6,,mips-sgi-irix6} @item -@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4} +@uref{#powerpc-x-x,,powerpc*-*-*} @item @uref{#powerpc-x-darwin,,powerpc-*-darwin*} @item -@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4} +@uref{#powerpc-x-elf,,powerpc-*-elf} @item @uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*} @item @@ -2412,7 +2888,7 @@ information are. @item @uref{#powerpc-x-eabi,,powerpc-*-eabi} @item -@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4} +@uref{#powerpcle-x-elf,,powerpcle-*-elf} @item @uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim} @item @@ -2436,20 +2912,22 @@ information are. @item @uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*} @item -@uref{#x-x-sysv,,*-*-sysv*} -@item -@uref{#vax-dec-ultrix,,vax-dec-ultrix} -@item @uref{#x-x-vxworks,,*-*-vxworks*} @item @uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*} @item -@uref{#xtensa-x-elf,,xtensa-*-elf} +@uref{#xtensa-x-elf,,xtensa*-*-elf} @item -@uref{#xtensa-x-linux,,xtensa-*-linux*} +@uref{#xtensa-x-linux,,xtensa*-*-linux*} @item @uref{#windows,,Microsoft Windows} @item +@uref{#x-x-cygwin,,*-*-cygwin} +@item +@uref{#x-x-interix,,*-*-interix} +@item +@uref{#x-x-mingw32,,*-*-mingw32} +@item @uref{#os2,,OS/2} @item @uref{#older,,Older systems} @@ -2523,17 +3001,9 @@ the system header file @file{/usr/include/stamp.h}. If you install a new version of DEC Unix, you should rebuild GCC to pick up the new version stamp. -Note that since the Alpha is a 64-bit architecture, cross-compilers from -32-bit machines will not generate code as efficient as that generated -when the compiler is running on a 64-bit machine because many -optimizations that depend on being able to represent a word on the -target in an integral value on the host cannot be performed. Building -cross-compilers on the Alpha for 32-bit machines has only been tested in -a few cases and may not work properly. - @samp{make compare} may fail on old versions of DEC Unix unless you add -@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the -assembler input file is stored in the object file, and that makes +@option{-save-temps} to @code{BOOT_CFLAGS}. On these systems, the name +of the assembler input file is stored in the object file, and that makes comparison fail if it differs between the @code{stage1} and @code{stage2} compilations. The option @option{-save-temps} forces a fixed name to be used for the assembler input file, instead of a @@ -2559,32 +3029,6 @@ To avoid this behavior, specify @option{-gstabs+} and use GDB instead of DBX@. DEC is now aware of this problem with the assembler and hopes to provide a fix shortly. -@html -