This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: allowing redefinition of setjmp()?


> -----Original Message-----
> To: The Cygwin Mailing List; newlib@sourceware.org
> Subject: allowing redefinition of setjmp()?
> Reading POSIX, I see that Cygwin is compliant, and readline is at
> fault.
>  http://pubs.opengroup.org/onlinepubs/9699919799/functions/setjmp.html
> is clear:
> 
> "It is unspecified whether setjmp() is a macro or a function. If a
> macro definition is suppressed in order to access an actual function,
> or a program defines an external identifier with the name setjmp, the
> behavior is undefined."

Honestly, this is what I expected.

> But as the redefine works in Linux, I'm wondering if we tweak things in
> Cygwin and/or newlib to allow it to work here too.  Maybe by making an
> entry point __setjmp() as an alias for setjmp(), and defining
> sigsetjmp() in terms of __setjmp(), so that when someone adds a #define
> wrapper for setjmp, it is no longer a mutually recursive macro naming
> scenario.

It this really worth it?

> In the meantime, I'm resorting to patching up readline code to quit
> trying to (re)define setjmp.

Stating the obvious, all you need to do is globally replace setjmp() with e.g. readline_setjmp().

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