To make all languages in a cross-compiler or other configuration where
3-stage bootstrap is not performed, you need to start with an existing
GCC binary (version 2.95 or later) because source code for language
frontends other than C might use GCC extensions.
configure
because some
/bin/sh
shells have bugs and may crash when configuring the
target libraries. In other cases, /bin/sh
or even some
ksh
have disastrous corner-case performance problems. This
can cause target configure
runs to literally take days to
complete in some cases.
So on some platforms /bin/ksh
is sufficient, on others it
isn't. See the host/target specific instructions for your platform, or
use bash
to be sure. Then set CONFIG_SHELL
in your
environment to your "good" shell prior to running
configure
/make
.
zsh
is not a fully compliant POSIX shell and will not
work when configuring GCC.
tar
files when source code is
obtained via FTP mirror sites.
tar
programs will also work, only try GNU
tar
if you have problems.
configure.in
, aclocal.m4
, etc.
to regenerate configure
and config.in
files. Most
directories require autoconf 2.13 (exactly), but libiberty
,
fastjar
, libstdc++-v3
, libjava/libltdl
, and gcc
require autoconf 2.57 (exactly).
Makefile.am
file to regenerate its
associated Makefile.in
.
Much of GCC does not use automake, so directly edit the Makefile.in
file. Specifically this applies to the gcc
, intl
,
libf2c
, libiberty
, libobjc
directories as well as any
of their subdirectories.
The libstdc++-v3
, libjava/libltdl
, and fastjar
directories require automake 1.7.9. However, the Java directories, which
include boehm-gc
, libffi
, libjava
, and zlib
,
require a modified version of automake 1.4 downloadable from
ftp://gcc.gnu.org/pub/java/automake-gcj-1.4.tar.gz.
gcc.pot
.
gperf
input files, e.g.
gcc/cp/cfns.gperf
to regenerate its associated header file, e.g.
gcc/cp/cfns.h
.
fixinc/fixincl.x
from
fixinc/inclhack.def
and fixinc/*.tpl
.
Necessary to run the fixinc
make check
.
Necessary to regenerate the top level Makefile.in
file from
Makefile.tpl
and Makefile.def
.
yacc
(byacc
) is also reported to work other
than for java.
Necessary when modifying *.y
files.
Necessary to build GCC during development because the generated output
files are not included in the CVS repository. They are included in
releases.
*.l
files.
Necessary to build GCC during development because the generated output
files are not included in the CVS repository. They are included in
releases.
makeinfo
when modifying *.texi
files to test your changes.
Necessary to build GCC documentation during development because the
generated output files are not included in the CVS repository. They are
included in releases.
texi2dvi
, used when running
make dvi
to create DVI files.
Makefile
dependencies in libiberty.
Necessary when regenerating 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.
diff
, to one's
own sources.