Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 12 Nov 2003 00:02:13 -0600 From: Bill Priest To: jbuehler AT hekimian DOT com Cc: cygwin AT cygwin DOT com Subject: Re: Building gcc on cygwin w/ Herman Ten Brugge's bounds checking patch Message-Id: <20031112000213.034deb91.bpriest@verizon.net> In-Reply-To: <3FAFCAC6.5090601@hekimian.com> References: <20031108144026 DOT 41321 DOT qmail AT web20807 DOT mail DOT yahoo DOT com> <3FAFCAC6 DOT 5090601 AT hekimian DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Authentication-Info: Submitted using SMTP AUTH at out005.verizon.net from [4.47.210.70] at Wed, 12 Nov 2003 00:01:49 -0600 On Mon, 10 Nov 2003 12:28:38 -0500 "Joe Buehler" wrote: > I had downloaded this but not tried it yet. If you get it > working it would be "interesting" to recompile Cygwin and > all of its packages and see what happens. We have most of > the core dumps out of our local Cygwin setup but there are > still some happening from time to time... Ok. I've got it working for trivial (hello world) type programs that don't have errors; and it reports errors then seg faults for a program w/ an array bounds error; similar operation vs. the Linux version of the same program. The main problem was that it was checking "char **environ" which from limited googling appears to be defined in cygwin1.dll; which explains the "funny" message I was getting from gdb wrt "ptype environ". This was w/ 3.3.2 (FSF) w/ the appropriate bounds check patch from Herman's site, w/ a couple of tweaks that I made. I don't anticipate it being difficult to make the "same" changes to the cygwin version of 3.3.1 and provide a working patch; but we will see. For the impatient change libgcc2.c so that __bounds_checking_on declaration is outside of #ifndef __CYGWIN__ (keeping #ifdef L__main so there is only one of these. change init.c so that for (i = 0; environ[i]; ++i) block is commented out could change #ifndef __vxworks to #ifndef __CYGWIN__ or equivalent. This is all I can remember changing off the top of my head. Of course this checking only works for "C" & not "C++" or any other language AFAIK. FYI, Bill PS. I'm sure it should be possible to process the environ; but I'd need so direction from cygwin experts or a pointer to an example in existing source code. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/