GNU Compiler Collection (GCC) Internals: Front End

Next: Back End, Previous: Documentation, Up: gcc Directory   [Contents][Index]


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_svn (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 FTP site ftp://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.
• Front End Directory:    The front end language directory.
• Front End Config:    The front end config-lang.in file.
• Front End Makefile:    The front end Make-lang.in file.

Next: Back End, Previous: Documentation, Up: gcc Directory   [Contents][Index]