6.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 The Front End
language Directory, for details.
- A mention of the language in the list of supported languages in
gcc/doc/install.texi.
- A mention of the name under which the language’s runtime library is
recognized by --enable-shared=package in the
documentation of that option in gcc/doc/install.texi.
- A mention of any special prerequisites for building the front end in
the documentation of prerequisites in gcc/doc/install.texi.
- 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
contrib.texi.
- Information about support for that language in
gcc/doc/frontends.texi.
- 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.
- Entries in
default_compilers
in gcc.c for source file
suffixes for that language.
- Preferably testsuites, which may be under gcc/testsuite or
runtime library directories. FIXME: document somewhere how to write
testsuite 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
gcc/doc/sourcebuild.texi.
- Check targets in Makefile.def for the top-level Makefile
to check just the compiler or the compiler and runtime library for the
language.
If the front end is added to the official GCC source repository, the
following are also necessary:
- At least one Bugzilla component for bugs in that front end and runtime
libraries. This category needs to be added to the Bugzilla database.
- Normally, one or more maintainers of that front end listed in
MAINTAINERS.
- 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
gcc-announce@gcc.gnu.org mailing list.
- The front end’s manuals should be mentioned in
maintainer-scripts/update_web_docs_git (see Texinfo Manuals)
and the online manuals should be linked to from
onlinedocs/index.html.
- Any old releases or CVS repositories of the front end, before its
inclusion in GCC, should be made available on the GCC web site at
https://gcc.gnu.org/pub/gcc/old-releases/.
- 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
updated accordingly.