GCC: Anonymous read-only CVS access

In an ongoing effort to accelerate development of GCC and provide an open development environment, we are making our CVS source repository available read-only to the public at large.

That way you can pick up any version (including releases) of GCC that is in our repository or our web pages.

In addition you can browse our CVS history online.

Using the CVS repository

If you don't already have CVS, we recommend you pick up a recent copy from CVShome.org. (Note that CVS versions up to 1.10.4 have "Y2K problems".)

Assuming you have CVS installed on your machine you can check out the GCC sources with the following sequence of commands:

Set CVSROOT in your environment to

:pserver:anoncvs@gcc.gnu.org:/cvs/gcc

Or alternately add

-d :pserver:anoncvs@gcc.gnu.org:/cvs/gcc
in the CVS commands below (place it immediately after cvs, i.e., before any other CVS arguments). Issue the command cvs login. You will be prompted for a password; reply with anoncvs.

Issue the command

cvs -z 9 co gcc
to check out the compiler sources, respectively
cvs -z 9 co wwwdocs
to check out our web pages.

Once you've got the repository checked out, cvs update will sync your local copy with the repository. See the CVS manual for additional information on how to use CVS.

Generated files

Our CVS source tree contains a number of files that are generated from other source files by build tools such as Bison, Autoconf, and Gperf. Bison is now required when using CVS to access our sources, but all other generated files are included in the source tree so that GCC can be built without these build tools. The CVS checkout and update operations do not insure that the timestamps of generated files are later than those of the files they are generated from. The script contrib/gcc_update updates the timestamps for all these generated files. See the comments in that script for instructions on running it.

GCC's build system (in particular Make) uses file timestamps to determine if a generated file needs to be updated by running a particular build tool. Because of this, GCC's build system may believe that a generated file needs regenerating even though its source has not changed, and require a particular build tool to rebuild that generated file. If the appropriate build tool is installed on your system, then this will not be a problem. If you do not intend to make changes to the source, you can avoid installing these build tools by running contrib/gcc_update.

There has been some discussion of removing these generated files from GCC's CVS source tree (there is no discussion of removing them from them from the released source tarballs). If that happens then building GCC from the CVS source tree would require installing the above mentioned build tools. Installing these build tools is not particularly difficult, but can be time consuming especially if you only occasionally install GCC on a particular system.

The build tools that GCC uses are all available from the GNU Project (see http://www.gnu.org), are often already available on many systems, and can often be found already built for some systems. A partial list of these build tools is: Autoconf, Bison, Xgettext, Automake, and Gperf.

CVS tags and checkouts

You can check out the latest version of the GCC 2.95 release branch with the following command:

cvs -z 9 co -rgcc-2_95-branch gcc

By changing the -r argument above you can check out particular releases or snapshots or the latest snapshot. Other tags/branches you may want to check out include:

Web pages

The web pages for the GCC project are also in the CVS repository and you can check them out, submit patches, etc just like you do for the compiler itself. Use cvs co wwwdocs to check out the web pages.