This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

fine-grain bounds checking for egcs-20000327


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)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]