aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/install.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/doc/install.texi')
-rw-r--r--gcc/doc/install.texi137
1 files changed, 87 insertions, 50 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 4b89617f0f5..2ed8cecab4d 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -43,7 +43,7 @@
@end ifset
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
@c Include everything if we're not making html
@@ -287,16 +287,24 @@ systems' @command{tar} programs will also work, only try GNU
@heading Tools/packages necessary for modifying GCC
@table @asis
-@item autoconf version 2.13 (NO earlier or later versions) and
+@item autoconf versions 2.13 and 2.57
@itemx GNU m4 version 1.4 (or later)
Necessary when modifying @file{configure.in}, @file{aclocal.m4}, etc.@:
-to regenerate @file{configure} and @file{config.in} files
+to regenerate @file{configure} and @file{config.in} files. Most
+directories require autoconf 2.13 (exactly), but @file{libiberty},
+@file{fastjar}, and @file{libstdc++-v3} require autoconf 2.57 (exactly).
-@item automake version ???
+@item automake versions 1.4-p? and 1.7.?
Necessary when modifying a @file{Makefile.am} file to regenerate its
-associated @file{Makefile.in}
+associated @file{Makefile.in}. Most directories require a 1.4 series
+automake; @file{libstdc++-v3} and @file{fastjar} requires a 1.7 series
+automake.
+
+@item gettext version 0.12 (or later)
+
+Needed to regenerate @file{gcc.pot}.
@item gperf version 2.7.2 (or later)
@@ -362,8 +370,10 @@ snapshots of the development sources are also available via FTP.
@item perl version 5.6.1 (or later)
Necessary when regenerating @file{Makefile} dependencies in libiberty.
-Necessary when regenerating something with intl??? (pod2man???)
-Other stuff???
+Necessary when regenerating @file{libiberty/functions.texi}.
+Necessary when generating manpages from Texinfo manuals.
+Used by various scripts to generate some files included in CVS (mainly
+Unicode-related and rarely changing) from source tables.
@item GNU diffutils version 2.7 (or later)
@@ -915,12 +925,13 @@ and SPARC@.
@itemx --with-arch=@var{cpu}
@itemx --with-tune=@var{cpu}
@itemx --with-abi=@var{abi}
+@itemx --with-fpu=@var{type}
@itemx --with-float=@var{type}
These configure options provide default values for the @option{-mschedule=},
-@option{-march=}, @option{-mtune=}, and @option{-mabi=} options and for
-@option{-mhard-float} or @option{-msoft-float}. As with @option{--with-cpu},
-which switches will be accepted and acceptable values of the arguments depend
-on the target.
+@option{-march=}, @option{-mtune=}, @option{-mabi=}, and @option{-mfpu=}
+options and for @option{-mhard-float} or @option{-msoft-float}. As with
+@option{--with-cpu}, which switches will be accepted and acceptable values
+of the arguments depend on the target.
@item --enable-altivec
Specify that the target supports AltiVec vector enhancements. This
@@ -1062,12 +1073,12 @@ specifying @var{list}; the categories of checks available are
@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl}, @samp{rtlflag},
@samp{fold}, @samp{gcac} and @samp{valgrind}. The check @samp{valgrind}
requires the external @command{valgrind} simulator, available from
-@uref{http://developer.kde.org/~sewardj/}. The default when @var{list} is
+@uref{http://valgrind.kde.org/}. The default when @var{list} is
not specified is @samp{misc,tree,gc,rtlflag}; the checks @samp{rtl},
@samp{gcac} and @samp{valgrind} are very expensive.
@item --enable-coverage
-@item --enable-coverage=@var{level}
+@itemx --enable-coverage=@var{level}
With this option, the compiler is built to collect self coverage
information, every time it is run. This is for internal development
purposes, and only works when the compiler is being built with gcc. The
@@ -1077,6 +1088,11 @@ want to disable optimization, for performance analysis you want to
enable optimization. When coverage is enabled, the default level is
without optimization.
+@item --enable-gather-detailed-mem-stats
+When this option is specfied more detailed information on memory
+allocation is gathered. This information is printed when using
+@option{-fmem-report}.
+
@item --enable-nls
@itemx --disable-nls
The @option{--enable-nls} option enables Native Language Support (NLS),
@@ -1347,6 +1363,49 @@ Build runtime libraries using the compiler from the previous step.
Note that if an error occurs in any step the make process will exit.
+If you are not building GNU binutils in the same source tree as GCC,
+you will need a cross-assembler and cross-linker installed before
+configuring GCC@. Put them in the directory
+@file{@var{prefix}/@var{target}/bin}. Here is a table of the tools
+you should put in this directory:
+
+@table @file
+@item as
+This should be the cross-assembler.
+
+@item ld
+This should be the cross-linker.
+
+@item ar
+This should be the cross-archiver: a program which can manipulate
+archive files (linker libraries) in the target machine's format.
+
+@item ranlib
+This should be a program to construct a symbol table in an archive file.
+@end table
+
+The installation of GCC will find these programs in that directory,
+and copy or link them to the proper place to for the cross-compiler to
+find them when run later.
+
+The easiest way to provide these files is to build the Binutils package.
+Configure it with the same @option{--host} and @option{--target}
+options that you use for configuring GCC, then build and install
+them. They install their executables automatically into the proper
+directory. Alas, they do not support all the targets that GCC
+supports.
+
+If you are not building a C library in the same source tree as GCC,
+you should also provide the target libraries and headers before
+configuring GCC, specifying the directories with
+@option{--with-sysroot} or @option{--with-headers} and
+@option{--with-libs}. Many targets also require ``start files'' such
+as @file{crt0.o} and
+@file{crtn.o} which are linked into each executable. There may be several
+alternatives for @file{crt0.o}, for use with profiling or other
+compilation options. Check your target's definition of
+@code{STARTFILE_SPEC} to find out what start files it uses.
+
@section Building in parallel
You can use @samp{make bootstrap MAKE="make -j 2" -j 2}, or just
@@ -1361,38 +1420,23 @@ this is especially true for slow drives and network filesystems.
In order to build GNAT, the Ada compiler, you need a working GNAT
compiler (GNAT version 3.14 or later, or GCC version 3.1 or later),
+including GNAT tools such as @command{gnatmake} and @command{gnatlink},
since the Ada front end is written in Ada (with some
GNAT-specific extensions), and GNU make.
-However, you do not need a full installation of GNAT, just the GNAT
-binary @file{gnat1}, a copy of @file{gnatbind}, and a compiler driver
-which can deal with Ada input (by invoking the @file{gnat1} binary).
-You can specify this compiler driver by setting the @env{ADAC}
-environment variable at the configure step. @command{configure} can
-detect the driver automatically if it has got a common name such as
-@command{gcc} or @command{gnatgcc}. Of course, you still need a working
-C compiler (the compiler driver can be different or not).
@command{configure} does not test whether the GNAT installation works
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.
-Additional build tools (such as @command{gnatmake}) or a working GNAT
-run-time library installation are usually @emph{not} required. However,
-if you want to bootstrap the compiler using a minimal version of GNAT,
-you have to issue the following commands before invoking @samp{make
-bootstrap} (this assumes that you start with an unmodified and consistent
-source distribution):
-
-@example
- cd @var{srcdir}/gcc/ada
- touch treeprs.ads [es]info.h nmake.ad[bs]
-@end example
-
At the moment, the GNAT library and several tools for GNAT are not built
-by @samp{make bootstrap}. You have to invoke
+by @samp{make bootstrap}. For a native build, you have to invoke
@samp{make gnatlib_and_tools} in the @file{@var{objdir}/gcc}
subdirectory before proceeding with the next steps.
+For a cross build, you need to invoke
+@samp{make gnatlib cross-gnattools ada.all.cross}. For a canadian
+cross you only need to invoke @samp{make cross-gnattools}; the GNAT
+library would be the same as the one built for the cross compiler.
For example, you can build a native Ada compiler by issuing the
following commands (assuming @command{make} is GNU make):
@@ -1400,8 +1444,6 @@ following commands (assuming @command{make} is GNU make):
@example
cd @var{objdir}
@var{srcdir}/configure --enable-languages=c,ada
- cd @var{srcdir}/gcc/ada
- touch treeprs.ads [es]info.h nmake.ad[bs]
cd @var{objdir}
make bootstrap
cd gcc
@@ -2585,20 +2627,6 @@ Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
in glibc 2.2.5 and later. More information is available in the
libstdc++-v3 documentation.
-If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
-out-of-the-box. You'll get compile errors while building @samp{libstdc++}.
-The patch @uref{glibc-2.2.patch,,glibc-2.2.patch}, that is to be
-applied in the GCC source tree, fixes the compatibility problems.
-
-Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
-since the latest exception handling changes for GCC@. Compiling glibc
-with GCC 3.0 will give a binary incompatible glibc and therefore cause
-lots of problems and might make your system completely unusable. This
-will definitely need fixes in glibc but might also need fixes in GCC@. We
-strongly advise to wait for glibc 2.2.4 and to read the release notes of
-glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc
-2.2.3 with GCC 3.0, just do not try to recompile it.
-
@html
<hr />
@end html
@@ -2705,6 +2733,9 @@ have installed.
IA-64 processor (also known as IPF, or Itanium Processor Family)
running GNU/Linux.
+If you are using the optional libunwind library, then you must use
+libunwind 0.96 or later.
+
None of the following versions of GCC has an ABI that is compatible
with any of the other versions in this list, with the exception that
Red Hat 2.96 and Trillian 000171 are compatible with each other:
@@ -2948,6 +2979,12 @@ configure for @samp{mipsel-elf} as a workaround. The
@samp{mips*-*-linux*} target continues to use the MIPS II routines. More
work on this is expected in future releases.
+Cross-compilers for the Mips as target using the Mips assembler
+currently do not work, because the auxiliary programs
+@file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on
+anything but a Mips. It does work to cross compile for a Mips
+if you use the GNU assembler and linker.
+
@html
<hr />
@end html