This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
fine-grain bounds checking for egcs-20000327
- To: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org, william at nscs dot fast dot net
- Subject: fine-grain bounds checking for egcs-20000327
- From: William Bader <william at nscs dot fast dot net>
- Date: Mon, 3 Apr 2000 22:17:49 EDT
I have converted Herman Brugge's gcc-2.95.2 port of Richard Jones' fine-grain
bounds-checker to work with egcs-20000327. The patches against egcs
are about 650 KB compressed with bzip2. I tested them under SuSE Linux 6.2.
They should work much better than the previous patches I had posted based
on Richard Jones' original patches against gcc-2.7.
The patches are available by ftp through the URL
<A HREF="ftp://nscs.fast.net/pub/binaries/boundschecking"> Bounds Checking Patches</A>
The server has a dial-up PPP line, so the download will take about 5 minutes.
I have included the gcc/bounds/README.103 with additional notes below.
My changes are freely copyable, and I can have the necessary paperwork filled
out, but for now, it doesn't matter since Richard Jones has not released the
copyright of his original work to the FSF.
William Bader
Senior Analyst
Software Consulting Services
3162 Bath Pike
Nazareth, PA 18064-8978
www: www.newspapersystems.com (SCS)
work: 610-837-8485
fax: 610-837-8080
email: william@nscs.fast.net
(nscs.fast.net is currently 206.245.160.97)
--------------------------------------------------
Bounds Checking Patches for GCC 2.96
------------------------------------
Version: 1.03
29Mar00
I updated the gcc-2.95.2 bounds checking patches for egcs-20000327.
The original distribution described in README is a tar that contained patches.
This distribution is all patches made by the script makediffs.sh which runs
gdiff -ruN egcs-yyyymmdd/gcc begcs-yyyymmdd/gcc
where egcs-yyyymmdd is an unmodified built version of egcs and
begcs-yyyymmdd is a built version with the bounds checking patches.
I used SuSE Linux 6.2 with a 2.2.12 kernel.
To build a bounds checking egcs:
cd /u/gnu # go to a work area
tar xzf egcs-yyyymmdd.tar.gz # unpack egcs
mv egcs-yyyymmdd begcs-yyyymmdd # rename the egcs directory
patch -p1 -T < egcs-yyyymmdd-begcs-yyyymmdd.pat # apply the patches
mkdir objdir # make an object file area
cd objdir # enter the area
/u/gnu/begcs-yyyymmdd/configure # initialize the build
make bootstrap # do the build
The patches change c-parse.in but do not include the generated .y or .c files.
You will need yacc or bison.
You can run your new begcs without installing it through the script
/u/gnu/begcs-yyyymmdd/gcc/bounds/bgcc
If you build in a different area or copy the script, you will need
to edit the initial sequence that locates the root directory.
If you want to experiment with changes, you can recompile your changes with
cd objdir
make bootstrap3
The port by Herman van Brugge Bounds Checking at
http://www.inter.NL.net/hcc/Haj.Ten.Brugge has some lookup optimizations
and supports threads, but Herman updates them only for gcc releases.
If the latest gcc release works for you, you should use his patches instead
of mine.
These patches are unrelated to the fat pointer checker by Greg McGary
gkm@eng.ascend.com which require building modified versions of libc and
every other library that your program calls.
William Bader (william@nscs.fast.net, williambader@hotmail.com)