GNU Compiler Collection (GCC) Internals
5.3.8 Anatomy of a Language Front End
A front end for a language in GCC has the following parts:
A directory `language' under `gcc' containing source
files for that front end. See section The Front End `language' Directory, for details.
A mention of the language in the list of supported languages in
Details of contributors to that front end in
`gcc/doc/contrib.texi'. If the details are in that front end's
own manual then there should be a link to that manual's list in
Information about support for that language in
Information about standards for that language, and the front end's
support for them, in `gcc/doc/standards.texi'. This may be a
link to such information in the front end's own manual.
Details of source file suffixes for that language and `-x
lang' options supported, in `gcc/doc/invoke.texi'.
default_compilers in `gcc.c' for source file
suffixes for that language.
Preferably test suites, which may be under `gcc/testsuite' or
runtime library directories. FIXME: document somewhere how to write
test suite harnesses.
Probably a runtime library for the language, outside the `gcc'
directory. FIXME: document this further.
Details of the directories of any runtime libraries in
If the front end is added to the official GCC CVS repository, the
following are also necessary:
At least one GNATS category for bugs in that front end and runtime
libraries. This category needs to be mentioned in
`gcc/gccbug.in', and in `gnats.html' on the GCC web site, as
well as being added to the GNATS database.
Normally, one or more maintainers of that front end listed in
Mentions on the GCC web site in `index.html' and
`frontends.html', with any relevant links on
`readings.html'. (Front ends that are not an official part of
GCC may also be listed on `frontends.html', with relevant links.)
A news item on `index.html', and possibly an announcement on the
email@example.com mailing list.
The front end's manuals should be mentioned in
`maintainer-scripts/update_web_docs' (see section 188.8.131.52 Texinfo Manuals)
and the online manuals should be linked to from
Any old releases or CVS repositories of the front end, before its
inclusion in GCC, should be made available on the GCC FTP site
The release and snapshot script `maintainer-scripts/gcc_release'
should be updated to generate appropriate tarballs for this front end.
If this front end includes its own version files that include the
current date, `maintainer-scripts/update_version' should be
`CVSROOT/modules' in the GCC CVS repository should be updated.