This document describes how to obtain the latest patches for the GNU Tools. It does not describe how to apply those patches to the GNU Tools source archives (that is described elsewhere).
The patches made available are specific to the Digital Systems Laboratory at the University of New South Wales. These patches add certain features to the GNU Tools that are used in the Laboratory, such as fixing a number of minor issues with the tools and making some enhancements to the GNU Tools reference manuals. In general, though, you do not need these patches unless you are recompiling the GNU Tools for use in the Laboratory or for a subject using the Laboratory.
Whilst every effort will be made to keep the patches up-to-date, there is no guarantee that they will be available or current. You can always use the patches stored on this CD-ROM in the gnutools/src directory as a starting point.
The patches for the GNU Tools are made available using CVS, the Concurrent Versions System. Whilst you do not need to know how CVS works to generate the patches, it does help. Please refer to the Concurrent Versions System Web page for more information.
Each of the GNU Tools source archives is imported into a separate CVS
module on the machine cvs.zap.org.au
. Each version
of the archive has a matching tag that identifies it uniquely.
These are documented in the table below:
GNU Tools source archive | CVS module name | CVS tag |
---|---|---|
binutils-version.tar.gz | disyl-binutils |
BINUTILS_ VERSION |
gcc-core-version.tar.gz | disyl-gcc |
GCC_ VERSION |
gcc-g++-version.tar.gz | ||
insight-version.tar.gz | disyl-insight |
INSIGHT_ VERSION |
newlib-version.tar.gz | disyl-newlib |
NEWLIB_ VERSION |
make-version.tar.gz | disyl-make |
MAKE_ VERSION |
The version and VERSION definitions are linked by
a simple algorithm: all full-stops in version are replaced by
underscores in VERSION. For example, given the binutils-2.13.2.1.tar.gz source archive (ie,
binutils
version 2.13.2.1), the corresponding CVS tag is
BINUTILS_2_13_2_1
. Incidentally, notice that both the
gcc-core
and gcc-g++
archives are merged into
one CVS module, disyl-gcc
. (By the way, the reason
“disyl
” is used as a prefix instead of
“dslmu
” is mainly historical: the project was
originally planned to be called DISYL, not DSLMU).
To extract the patch for a given module, you need to use the
cvs
(1) command. The following command line is all that you
need to run:
$ | cvs -q -d:ext:cvs.zap.org.au:/data/cvs rdiff -u -r tag module | sed -e 's/^\+\+\+ module/+++ dirname/' | gzip -9 > dirname.patch.gz |
where module is the CVS module name (eg,
disyl-binutils
), tag is the CVS tag (eg,
BINUTILS_2_13_2_1
) and dirname is the archive
filename without the .tar.gz or .tar.bz2 extension (eg, binutils-2.13.2.1
),
except that gcc
does not include the
“core
” or “g++
” part.
Note that this is a single command line, even if your browser
splits it up into multiple lines!
So, for example, the command line for gcc
version 3.2.1
is:
$ | cvs -q -d:ext:cvs.zap.org.au:/data/cvs rdiff -u -r GCC_3_2_1 disyl-gcc | sed -e 's/^\+\+\+ disyl-gcc/+++ gcc-3.2.1/' | gzip -9 > gcc-3.2.1.patch.gz |
If you receive an error from cvs
(1) that there is
“no such tag”, it means that either (a) you have misspelled
the tag name or (b) that version of the archive has not been imported into
the CVS repository.
If you wish, you can access the CVS repository using other methods. For more information, please see The ZAP Group’s CVS Web page.
Copyright © 2001–03, School of Electrical Engineering and Telecommunications, University of New South Wales. All rights reserved. CRICOS Provider Number: 00098G.