This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Documenting tools necessary for GCC [draft]


At the GCC BOF where topics relating to process and maintenence were
discussed, one of the issues was tools (and acceptable versions) that
are necessary for building and/or modifying GCC.

I volunteered to document it, here's my first draft.  I marked '???'
in places where I was unsure of specifics.  I'd like general comments
and feedback on missing or incorrect content.

I'm bad at designing and implementing formatting, so I left it in text
form for now.  If someone wants to convert into an HTML page suitable
for our website, that would also be appreciated.

		Thanks,
		--Kaveh





Tools necessary for building and/or developing GCC



To build GCC:

------------------------------------------------------
ISO C90 compiler

Necessary to bootstrap the GCC package, although versions of GCC prior
to 3.4 also allow bootstrapping with a traditional (K&R) C compiler.

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 because source code for language frontends other than C
might use GCC extensions.

------------------------------------------------------
A working Bourne (or compatible) shell, or
GNU bash version 2.??? (or later)

Necessary when running configure because some /bin/sh shells have bugs
or disastrous corner-case performance problems.  Set CONFIG_SHELL in
your environment to your "good" shell prior to running configure/make.
Sometimes /bin/ksh is sufficient, sometimes it isn't.  See the
host/target specific instructions for your platform, or use bash to be
sure.

------------------------------------------------------
GNU make version 3.79.1 (later versions okay for building only.)

Necessary when running "make" to build the GCC package.

------------------------------------------------------
GNU binutils version ???

Necessary in some circumstances, optional in others.  See the
host/target specific instructions for your platform for the exact
requirements.

------------------------------------------------------
gzip version 1.2.4 (or later) or
bzip2 version ??? (or later)

Necessary to uncompress gcc tar files when source code is obtained via
FTP mirror sites.

------------------------------------------------------




To develop/modify GCC (all of the above tools plus):

------------------------------------------------------
autoconf version 2.13 (NO earlier or later versions)
GNU m4 version 1.4 (or later)

Necessary when modifying configure.in, aclocal.m4, etc to regenerate
configure and config.in files

------------------------------------------------------
automake version ???

Necessary when modifying a Makefile.am to regenerate its associated
Makefile.in

------------------------------------------------------
gperf version 2.7.2 (or later)

Necessary when modifying gperf input files, e.g. gcc/cp/cfns.gperf to
regenerate its associated header file, e.g. gcc/cp/cfns.h.

------------------------------------------------------
expect version ???
tcl version ???
dejagnu version ???

Necessary to run the GCC testsuite.

------------------------------------------------------
autogen version ???
guile version ???

Necessary when modifying fixinc/inclhack.def or fixinc/*.tpl to
regenerate fixinc/fixincl.x.

------------------------------------------------------
GNU make version 3.79.1 (NO other versions)

This entry is duplicated from the "build" section and marked "no other
versions" to indicate that Makefile extensions from this specific
release of GNU make are allowed to be used and relied upon.
Extensions introduced in later versions of GNU make are not allowed.

------------------------------------------------------
GNU Bison version 1.28 (or later)
Flex version 2.5.4 (or later)

Necessary when modifying *.y (bison) or *.l (flex).

Necessary to build GCC during development because the generated output
files are not included in the cvs repository.  They are included in
releases.

------------------------------------------------------
makeinfo version 4.2 (or later)

Necessary 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.

------------------------------------------------------
cvs version ???
ssh version ???

Necessary to access the cvs repository.  Public releases and weekly
snapshots of the development sources are also available via FTP.

------------------------------------------------------
perl version 5.??? (or later)

Necessary when regenerating Makefile dependencies in libiberty.
Necessary when regenerating something with intl??? (pod2man???)
Other stuff???

------------------------------------------------------
GNU diffutils version 2.7 (or later)

Necessary when creating changes to GCC source code to submit for review.

------------------------------------------------------
patch version 2.5 (or later)

Necessary when applying patches, created with "diff", to one's own
sources.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]