Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Oct 1999 09:18:35 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Polstra <jdp@polstra.com>
Cc:        marcel@scc.nl, current@FreeBSD.ORG
Subject:   Re: Now that sigcontext is gone ...
Message-ID:  <Pine.BSF.4.10.9910010840220.17284-100000@alphplex.bde.org>
In-Reply-To: <XFMail.990930122739.jdp@polstra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> I'm trying to digest the recent signal changes and get a handle on
> what I need to do to make Modula-3 work.  There is code in the runtime

Sigcontext will have to come back, since it is a standard BSD interface.
Recent signal changes break even its source-level compatibility.  Previous
signal changes managed to preserve even its binary compatibility by
keeping things the same for the !SA_SIGINFO case, but the next round of
those changes might have broken binary compatibility by adding floating
point context.

BTW, struct sigcontext seems to be documented only in sigreturn.2, and
that documentation is more than 3 stages behind reality.  sigreturn() now
uses ucontext_t, and the documented struct sigcontext is only for an old
i386 version (Lite2 documents a "machine-independent" but inadequate
version).  It is missing sc_gs, sc_fs, sc_trapno and sc_err at the end.
Adding these fields broke binary compatibility.

> currently which catches SIGBUS and uses the sigcontext's "sc_err"
> member to find out the faulting address.  That should be replaced
> by the siginfo_t's "si_addr" member.  But as far as I can tell from
> grepping the kernel sources, that functionality isn't implemented.
> 
> Is that right?  Any ideas regarding a work-around?

The functionality of sc_trapno also seems to be unimplemented.  These
fields are not documented, so you shouldn't be using them :-).

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9910010840220.17284-100000>