OSDN Git Service

* doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
[pf3gnuchains/gcc-fork.git] / gcc / doc / install.texi
index e172952..240ae12 100644 (file)
@@ -45,7 +45,8 @@
 @end ifset
 
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 
+@c 2010 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
@@ -302,7 +303,7 @@ 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.2 (or later)
+@item GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
 
 Necessary to build GCC@.  If you do not have it installed in your
 library search path, you will have to configure with the
@@ -311,7 +312,7 @@ 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.2 (or later)
+@item MPFR Library version 2.4.2 (or later)
 
 Necessary to build GCC@.  It can be downloaded from
 @uref{http://www.mpfr.org/}.  The @option{--with-mpfr} configure
@@ -321,6 +322,16 @@ default library search path.  See also @option{--with-mpfr-lib} and
 distribution is found in a subdirectory of your GCC sources named
 @file{mpfr}, it will be built together with GCC@.
 
+@item MPC Library version 0.8.1 (or later)
+
+Necessary to build GCC@.  It can be downloaded from
+@uref{http://www.multiprecision.org/}.  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@.
+
 @item Parma Polyhedra Library (PPL) version 0.10
 
 Necessary to build GCC with the Graphite loop optimizations.
@@ -344,17 +355,14 @@ not installed in your default library search path.
 
 Necessary to build libgcj, the GCJ runtime.
 
-@item MPC Library version 0.6.0 (or later)
+@item libelf version 0.8.12 (or later)
+
+Necessary to build link-time optimization (LTO) support.  It can be
+downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
+though it is commonly available in several systems.
 
-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@.
+The @option{--with-libelf} configure option should be used if libelf is
+not installed in your default library search patch.
 
 @end table
 
@@ -571,8 +579,8 @@ 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 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.
+@file{gcc} directory, the one where the @file{MAINTAINERS} file can be
+found, and not its @file{gcc} subdirectory, otherwise the build will fail.
 
 If either @var{srcdir} or @var{objdir} is located on an automounted NFS
 file system, the shell's built-in @command{pwd} command will return
@@ -583,7 +591,7 @@ variable to an automounter-aware @command{pwd} command, e.g.,
 phases.
 
 First, we @strong{highly} recommend that GCC be built into a
-separate directory than the sources which does @strong{not} reside
+separate directory from the sources which does @strong{not} reside
 within the source tree.  This is how we generally build GCC; building
 where @var{srcdir} == @var{objdir} should still work, but doesn't
 get extensive testing; building where @var{objdir} is a subdirectory
@@ -652,8 +660,8 @@ The default value refers to the FSF's GCC bug tracker.
 @itemize @bullet
 @item
 GCC has code to correctly determine the correct value for @var{target}
-for nearly all native systems.  Therefore, we highly recommend you not
-provide a configure target when configuring a native compiler.
+for nearly all native systems.  Therefore, we highly recommend you do
+not provide a configure target when configuring a native compiler.
 
 @item
 @var{target} must be specified as @option{--target=@var{target}}
@@ -1109,7 +1117,8 @@ RTEMS thread support.
 @item single
 Disable thread support, should work for all platforms.
 @item solaris
-Sun Solaris 2 thread support.
+Sun Solaris 2/Unix International thread support.  Only use this if you
+really need to use this legacy API instead of the default, @samp{posix}.
 @item vxworks
 VxWorks thread support.
 @item win32
@@ -1161,6 +1170,11 @@ of the arguments depend on the target.
 Specify if the compiler should default to @option{-marm} or @option{-mthumb}.
 This option is only supported on ARM targets.
 
+@item --with-fpmath=sse
+Specify if the compiler should default to @option{-msse2} and
+@option{-mfpmath=sse}.  This option is only supported on i386 and
+x86-64 targets.
+
 @item --with-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.
@@ -1213,9 +1227,6 @@ Specify that target
 libraries should be optimized for code space instead of code speed.
 This is the default for the m32r platform.
 
-@item --disable-cpp
-Specify that a user visible @command{cpp} program should not be installed.
-
 @item --with-cpp-install-dir=@var{dirname}
 Specify that the user visible @command{cpp} program should be installed
 in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}.
@@ -1233,8 +1244,8 @@ 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
+The build rules that regenerate the Autoconf and Automake output files as
+well as the GCC master message catalog @file{gcc.pot} are normally
 disabled.  This is because it can only be rebuilt if the complete source
 tree is present.  If you have changed the sources and want to rebuild the
 catalog, configuring with @option{--enable-maintainer-mode} will enable
@@ -1250,7 +1261,7 @@ 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
+This is possible 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}.
@@ -1340,8 +1351,10 @@ 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 sparc-linux, powerpc-linux and
-x86-linux.
+On mips-linux, this will build a tri-arch compiler (ABI o32/n32/64),
+defaulted to o32.
+Currently, this option only affects sparc-linux, powerpc-linux, x86-linux
+and mips-linux.
 
 @item --enable-secureplt
 This option enables @option{-msecure-plt} by default for powerpc-linux.
@@ -1425,7 +1438,7 @@ 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
 @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
@@ -1622,13 +1635,16 @@ GLIBC 2.11 or above, otherwise disabled.
 
 @subheading Cross-Compiler-Specific Options
 The following options only apply to building cross compilers.
+
 @table @code
 @item --with-sysroot
 @itemx --with-sysroot=@var{dir}
 Tells GCC to consider @var{dir} as the root of a tree that contains a
 (subset of) the root filesystem of the target operating system.
 Target system headers, libraries and run-time object files will be
-searched in there.  The specified directory is not copied into the
+searched in there.  More specifically, this acts as if
+@option{--sysroot=@var{dir}} was added to the default options of the built
+compiler.  The specified directory is not copied into the
 install tree, unlike the options @option{--with-headers} and
 @option{--with-libs} that this option obsoletes.  The default value,
 in case @option{--with-sysroot} is not given an argument, is
@@ -1636,6 +1652,11 @@ 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.
 
+This option affects the system root for the compiler used to build
+target libraries (which runs on the build system) and the compiler newly
+installed with @code{make install}; it does not affect the compiler which is
+used to build GCC itself.
+
 @item --with-build-sysroot
 @itemx --with-build-sysroot=@var{dir}
 Tells GCC to consider @var{dir} as the system root (see
@@ -1668,7 +1689,7 @@ compiler.  When crossing to GNU/Linux, you need the headers so GCC
 can build the exception handling for libgcc.
 
 @item --with-libs
-@itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
+@itemx --with-libs="@var{dir1} @var{dir2} @dots{} @var{dirN}"
 Deprecated in favor of @option{--with-sysroot}.
 Specifies a list of directories which contain the target runtime
 libraries.  These libraries will be copied into the @file{gcc} install
@@ -1868,6 +1889,9 @@ 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.
 
+@item --enable-browser-plugin
+Build the gcjwebplugin web browser plugin.
+
 @table @code
 @item ansi
 Use the single-byte @code{char} and the Win32 A functions natively,
@@ -1888,6 +1912,30 @@ 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
+
+@item --enable-lto
+Enable support for link-time optimization (LTO).  This is enabled by
+default if a working libelf implementation is found (see
+@option{--with-libelf}).
+
+@item --with-libelf=@var{pathname}
+@itemx --with-libelf-include=@var{pathname}
+@itemx --with-libelf-lib=@var{pathname}
+If you do not have libelf installed in a standard location and you
+want to enable support for link-time optimization (LTO), you can
+explicitly specify the directory where libelf is installed
+(@samp{--with-libelf=@var{libelfinstalldir}}).  The
+@option{--with-libelf=@var{libelfinstalldir}} option is shorthand for
+@option{--with-libelf-include=@var{libelfinstalldir}/include}
+@option{--with-libelf-lib=@var{libelfinstalldir}/lib}.
+
+@item --enable-gold
+Enable support for using @command{gold} as the linker.  If gold support is
+enabled together with @option{--enable-lto}, an additional directory
+@file{lto-plugin} will be built.  The code in this directory is a
+plugin for gold that allows the link-time optimizer to extract object
+files with LTO information out of library archives.  See
+@option{-flto} and @option{-fwhopr} for details.
 @end table
 
 @subsubheading AWT-Specific Options
@@ -2157,7 +2205,7 @@ 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
 as parts of GCC can only be built with GCC@.
 
-To build a cross compiler, we first recommend building and installing a
+To build a cross compiler, we recommend first building and installing a
 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.
@@ -2237,7 +2285,7 @@ compilation options.  Check your target's definition of
 
 @section Building in parallel
 
-GNU Make 3.79 and above, which is necessary to build GCC, support
+GNU Make 3.80 and above, which is necessary to build GCC, support
 building in parallel.  To activate this, you can use @samp{make -j 2}
 instead of @samp{make}.  You can also specify a bigger number, and 
 in most cases using a value greater than the number of processors in
@@ -2651,7 +2699,7 @@ incomplete or out of date.  Send a note to
 @email{gcc@@gcc.gnu.org} detailing how the information should be changed.
 
 If you find a bug, please report it following the
-@uref{../bugs.html,,bug reporting guidelines}.
+@uref{../bugs/,,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.7)
@@ -2772,15 +2820,6 @@ 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.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
-bootstrapping the compiler.  An updated version of that disk is in the
-works.
-
 @html
 <hr />
 <p>
@@ -2854,6 +2893,10 @@ information are.
 @item
 @uref{#iq2000-x-elf,,iq2000-*-elf}
 @item
+@uref{#lm32-x-elf,,lm32-*-elf}
+@item
+@uref{#lm32-x-uclinux,,lm32-*-uclinux}
+@item
 @uref{#m32c-x-elf,,m32c-*-elf}
 @item
 @uref{#m32r-x-elf,,m32r-*-elf}
@@ -2906,6 +2949,8 @@ information are.
 @item
 @uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7}
 @item
+@uref{#sparc-sun-solaris210,,sparc-sun-solaris2.10}
+@item
 @uref{#sparc-x-linux,,sparc-*-linux*}
 @item
 @uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
@@ -2961,61 +3006,38 @@ shared libraries.
 @end html
 @heading @anchor{alpha-dec-osf}alpha*-dec-osf*
 Systems using processors that implement the DEC Alpha architecture and
-are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
+are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP
 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
 
 As of GCC 3.2, versions before @code{alpha*-dec-osf4} are no longer
 supported.  (These are the versions which identify themselves as DEC
-OSF/1.)
+OSF/1.)  As of GCC 4.5, support for Tru64 UNIX V4.0 and V5.0 has been
+obsoleted, but can still be enabled by configuring with
+@option{--enable-obsolete}.  Support will be removed in GCC 4.6.
 
-In Digital Unix V4.0, virtual memory exhausted bootstrap failures
-may be fixed by configuring with @option{--with-gc=simple},
-reconfiguring Kernel Virtual Memory and Swap parameters
+On Tru64 UNIX, virtual memory exhausted bootstrap failures
+may be fixed by reconfiguring Kernel Virtual Memory and Swap parameters
 per the @command{/usr/sbin/sys_check} Tuning Suggestions,
 or applying the patch in
-@uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}.
-
-In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
-currently (2001-06-13) work with @command{mips-tfile}.  As a workaround,
-we need to use the old assembler, invoked via the barely documented
-@option{-oldas} option.  To bootstrap GCC, you either need to use the
-Compaq C Compiler:
-
-@smallexample
-   % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}]
-@end smallexample
-
-or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
-
-@smallexample
-   % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}]
-@end smallexample
+@uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}.  Depending on
+the OS version used, you need a data segment size between 512 MB and
+1 GB, so simply use @command{ulimit -Sd unlimited}.
 
-As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld}
+As of GNU binutils 2.20.1, neither GNU @command{as} nor GNU @command{ld}
 are supported on Tru64 UNIX, so you must not configure GCC with
 @option{--with-gnu-as} or @option{--with-gnu-ld}.
 
 GCC writes a @samp{.verstamp} directive to the assembler output file
 unless it is built as a cross-compiler.  It gets the version to use from
 the system header file @file{/usr/include/stamp.h}.  If you install a
-new version of DEC Unix, you should rebuild GCC to pick up the new version
+new version of Tru64 UNIX, you should rebuild GCC to pick up the new version
 stamp.
 
-@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
-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
-randomly chosen name in @file{/tmp}.  Do not add @option{-save-temps}
-unless the comparisons fail without that option.  If you add
-@option{-save-temps}, you will have to manually delete the @samp{.i} and
-@samp{.s} files after each series of compilations.
-
 GCC now supports both the native (ECOFF) debugging format used by DBX
 and GDB and an encapsulated STABS format for use only with GDB@.  See the
 discussion of the @option{--with-stabs} option of @file{configure} above
 for more information on these formats and how to select them.
+@c FIXME: does this work at all?  If so, perhaps make default.
 
 There is a bug in DEC's assembler that produces incorrect line numbers
 for ECOFF format when the @samp{.align} directive is used.  To work
@@ -3029,6 +3051,8 @@ 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.
 
+@c FIXME: still applicable?
+
 @html
 <hr />
 @end html
@@ -3632,6 +3656,20 @@ applications.  There are no standard Unix configurations.
 @html
 <hr />
 @end html
+@heading @anchor{lm32-x-elf}lm32-*-elf
+Lattice Mico32 processor.
+This configuration is intended for embedded systems.
+
+@html
+<hr />
+@end html
+@heading @anchor{lm32-x-uclinux}lm32-*-uclinux
+Lattice Mico32 processor.
+This configuration is intended for embedded systems running uClinux.
+
+@html
+<hr />
+@end html
 @heading @anchor{m32c-x-elf}m32c-*-elf
 Renesas M32C processor.
 This configuration is intended for embedded systems.
@@ -3788,6 +3826,7 @@ This problem can be avoided by running the commands:
    % export CONFIG_SHELL
 @end smallexample
 
+@noindent
 before starting the build.
 
 @html
@@ -3804,18 +3843,21 @@ resulting object file.  The output should look like:
 test.o: ELF N32 MSB @dots{}
 @end smallexample
 
+@noindent
 If you see:
 
 @smallexample
 test.o: ELF 32-bit MSB @dots{}
 @end smallexample
 
+@noindent
 or
 
 @smallexample
 test.o: ELF 64-bit MSB @dots{}
 @end smallexample
 
+@noindent
 then your version of @command{cc} uses the O32 or N64 ABI by default.  You
 should set the environment variable @env{CC} to @samp{cc -n32}
 before configuring GCC@.
@@ -3832,12 +3874,14 @@ all on @samp{mips3}-only systems.  For the test program above, you should see:
 test.o: ELF N32 MSB mips-3 @dots{}
 @end smallexample
 
+@noindent
 If you get:
 
 @smallexample
 test.o: ELF N32 MSB mips-4 @dots{}
 @end smallexample
 
+@noindent
 instead, you should set the environment variable @env{CC} to @samp{cc
 -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@.
 
@@ -3964,6 +4008,14 @@ Embedded PowerPC system in little endian mode.
 @html
 <hr />
 @end html
+@heading @anchor{rx-x-elf}rx-*-elf
+The Renesas RX processor.  See
+@uref{http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series}
+for more information about this processor.
+
+@html
+<hr />
+@end html
 @heading @anchor{s390-x-linux}s390-*-linux*
 S/390 system running GNU/Linux for S/390@.
 
@@ -4053,11 +4105,11 @@ release.
 Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
 newer: @command{g++} will complain that types are missing.  These headers
 assume that omitting the type means @code{int}; this assumption worked for
-C89 but is wrong for C++, and is now wrong for C99 also.
+C90 but is wrong for C++, and is now wrong for C99 also.
 
 @command{g++} accepts such (invalid) constructs with the option
 @option{-fpermissive}; it will assume that any missing type is @code{int}
-(as defined by C89).
+(as defined by C90).
 
 There are patches for Solaris 7 (108376-21 or newer for SPARC,
 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
@@ -4201,6 +4253,21 @@ This bug has been fixed in more recent revisions of the assembler.
 @html
 <hr />
 @end html
+@heading @anchor{sparc-sun-solaris210}sparc-sun-solaris2.10
+
+There is a bug in older versions of the Sun assembler which breaks
+thread-local storage (TLS).  A typical error message is
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o:
+  symbol <unknown>: bad symbol type SECT: symbol type must be TLS
+@end smallexample
+
+This bug is fixed in Sun patch 118683-03 or later.
+
+@html
+<hr />
+@end html
 @heading @anchor{sparc-x-linux}sparc-*-linux*
 
 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
@@ -4382,7 +4449,11 @@ Ports of GCC are included with the
 GCC will build under Cygwin without modification; it does not build
 with Microsoft's C++ compiler and there are no plans to make it do so.
 
-Cygwin can be compiled with i?86-pc-cygwin.
+The Cygwin native compiler can be configured to target any 32-bit x86
+cpu architecture desired; the default is i686-pc-cygwin.  It should be
+used with as up-to-date a version of binutils as possible; use either
+the latest official GNU binutils release in the Cygwin distribution,
+or version 2.20 or above if building your own.
 
 @html
 <hr />