This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


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

Re: [RFC] sigsetjmp/siglongjmp on cygwin -- problem tracked down


On Mon, Aug 13, 2001 at 10:55:08PM -0400, Christopher Faylor wrote:
> On Mon, Aug 13, 2001 at 10:39:52PM -0400, Andrew Cagney wrote:
> >> So, with the above buggy code, we'll eventually derefernce *catch_return[36]
> >> when we should be dereferencing (*catch_return)[36].
> >> 
> >> I'll fix cygwin.  How do we want to fix gdb?
> >> 
> >> I could add a define in setjmp.h like this:
> >> 
> >> #define WORKING_SETJMP 1
> >
> >
> >The BSD way of doing it was:
> >
> >	#include <sys/param.h>
> >	#if BSD >= 199506
> >	... was this from the last bsd release ever ...
> >	#endf
> >
> >While it leads to pretty obscure tests (like the above) it did make it 
> >possible to test for anything constrained to a specific release.
> 
> Doh.  Now that you mention it, Cygwin actually already has a mechanism
> for this.  We bump a minor version number when there are api changes,
> such as this.  Then we usually define a macro like
> "CYGWIN_VERSION_SIGSEJMP_IS_OK" based on the API.  It is a little
> tricky, though, since the actual header file is in newlib not cygwin.

On the other hand, it should be very straightforward to write an
autoconf test for this.  You said that the code in question looked like
env[36] instead of (env)[36];  just use an argument that would not be
valid to subscript.  env + 1[36], for instance, should generally not
compile.

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer


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