Eric Blake wrote:
> Ingo Weinhold <ingo_weinhold <at> gmx.de> writes:
> > 
> > If SA_ONSTACK exists, use it even if SA_SIGINFO doesn't. This does at 
least
> > allow for a somewhat controlled program termination on stack overflow. 
E.g.
> > in Haiku this prevents the debug server dialog box from popping up.
> 
> In my mind, it would be cleaner if we provided a stub
> 
> #ifndef SA_SIGINFO
> # define SA_SIGINFO 0
> #endif
> 
> in signal.in.h rather than using #if inside the body of a method, similar 
to 
> the SA_NODEFER stub added for Interix.  Does that approach work for you?

Then both SA_SIGINFO and SA_ONSTACK were defined and the SIGACTION_WORKS 
macro in c-stack.c would be defined to 1. Which would obviously go horribly 
wrong in the signal handler.

If both SA_SIGINFO and SA_ONSTACK were stubbed, SIGACTION_WORKS could be 
defined differently:

#define SIGACTION_WORKS (SA_SIGINFO && SA_ONSTACK)

All "#if defined SA_SIGINFO" and "#if defined SA_ONSTACK" checks would need 
to be changed, too. Not sure if that's such a good idea.

Stubbing only SA_ONSTACK as Paolo suggests should be relatively harmless, I 
suppose.

CU, Ingo


Reply via email to