[haiku-development] Re: [RFC] sigaction SA_SIGINFO support

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Thu, 28 Jan 2010 07:06:45 +0100

On 2010-01-27 at 22:46:56 [+0100], Andreas Färber <andreas.faerber@xxxxxx> 
wrote:
> Am 26.01.2010 um 07:42 schrieb Ingo Weinhold:
> 
> > the header itself was not marked obsolescent in 2004. But
> > that wasn't my point. The header *is* no longer POSIX (well, or at
> > least
> > obsolescent -- signal.h refers to it as such, although the link is
> > broken),
> > so we shouldn't add it.
> >
> >> The key part is the mcontext_t definition, as pointed out in the
> >> ticket, and that does not need backing further than defining it in a
> >> useful way.
> >
> > Those are supposed to be defined in signal.h, now.
> 
> Still couldn't find any reference on ucontext.h obsolescense on
> opengroup.org, but I see there'd be a circular reference between
> sigset_t/stack_t and ucontext_t/mcontext_t:
> 
> http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
> http://www.opengroup.org/onlinepubs/009695399/basedefs/ucontext.h.html
> 
> So I'd figure, Haiku should add ucontext.h at some point but make it
> #include signal.h only and define the types in signal.h?

You seem to be using the old (2004, volume 6) standard. Current is 2008, 
volume 7:

http://www.opengroup.org/onlinepubs/9699919799/

> >> Feel free to #if 0 out the ucontext_t type if it confuses some piece
> >> of software.
> >
> > But then, what's the point?
> 
> First, careful with u vs. m: I posted #5324 to get mcontext_t.
> 
> If there's a piece of software that breaks when defining mcontext_t,
> please name it. Otherwise it is pure speculation and I'd ask you to
> add my definition of mcontext_t wherever appropriate, please.
>
> ucontext_t is the one that is unlikely needed without SA_SIGINFO, and
> I'd be okay not defining it for now.
> 
> Then, my point is that half-complete #if 0'ed code is already in the
> public signal.h header

The history of that one is a bit different though. It was not added #if 
0'ed, but was #if 0'ed because it made trouble. The alternative would have 
been to remove it.

> while my patch on haiku-develoment/Trac has
> been bitrotting for years.

I sincerely hope no bitrotting is going on on our server. ;-)

> Having all of it in the repository would
> seem advantageous to me, not only to avoid all the rebasing on my part.
> That's why I suggested to apply the parts of my patch that don't break
> anything and to consider adding the other ones in disabled form.

Without defining ucontext_t, the main part of your patch cannot be applied. 
It cannot be applied without changes anyway, since SA_SIGINFO will not be 
defined until it actually works. I don't know whether defining ucontext_t 
can cause problems, probably not.

Anyway, to hopefully conclude this discussion about virtually nothing: 
Update your patch so that it defines mcontext_t and ucontext_t in 
<signal.h> and does *not* define SA_SIGINFO, and I'm willing to apply it.

CU, Ingo

Other related posts: