X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2Fdoc%2Finstall.texi;h=12c574d399286fe366558c84d74d5464b6104571;hb=c1493544c1d89087a986c31b251e3040295d77af;hp=3ce62cb07f921e32441ec02f76412bc0637a81a9;hpb=7292b8e4bac5eaf830e81b38be439719ecee8cf3;p=gcc.git diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 3ce62cb07f9..12c574d3992 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -45,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, 2007, 2008 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 @@ -70,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, 2007, 2008 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 @@ -301,42 +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 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.3.0 (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. +@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 version 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. -@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}. @@ -347,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) @@ -386,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. @@ -441,6 +471,17 @@ 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 @@ -495,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
@@ -611,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}} @@ -667,25 +714,42 @@ The default is @file{@var{exec-prefix}/libexec}. 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 @@ -845,10 +909,6 @@ whether you use the GNU assembler. On any other system, @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 @@ -950,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 @@ -1027,8 +1138,8 @@ Specify which cpu variant the compiler should generate code for by default. 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 and -x86-64. +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} @@ -1075,6 +1186,20 @@ not provide them. 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. @@ -1103,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 @@ -1275,7 +1404,8 @@ 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 @@ -1294,6 +1424,19 @@ 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 @@ -1384,25 +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 @@ -1472,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}. @@ -1575,6 +1790,13 @@ 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. @@ -1607,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, @@ -1726,7 +1987,7 @@ 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. @@ -1795,7 +2056,7 @@ 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_LIBCFLAGS} to this end. +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 @@ -1819,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 @@ -2323,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@. @@ -2376,10 +2707,10 @@ AIX: @uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX}; @item -@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Softeware for IBM System p}; +@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}. +@uref{http://www.perzl.org/aix/,,AIX 5L and 6 Open Source Packages}. @end itemize @item @@ -2492,8 +2823,6 @@ information are. @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{#avr,,avr} @item @@ -2537,6 +2866,8 @@ information are. @item @uref{#m68k-uclinux,,m68k-uclinux} @item +@uref{#mep-x-elf,,mep-*-elf} +@item @uref{#mips-x-x,,mips-*-*} @item @uref{#mips-sgi-irix5,,mips-sgi-irix5} @@ -2585,12 +2916,18 @@ information are. @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} @@ -2664,14 +3001,6 @@ 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{BOOT_CFLAGS}. On these systems, the name of the assembler input file is stored in the object file, and that makes @@ -2716,21 +3045,6 @@ require GNU binutils 2.13 or newer. Such subtargets include: @code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux} and @code{arm-*-rtems}. -@html -