This is the mail archive of the
mailing list for the glibc project.
RE: MIPS MSA sigcontext changes in 3.15
- From: Matthew Fortune <Matthew dot Fortune at imgtec dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, "linux-mips at linux-mips dot org" <linux-mips at linux-mips dot org>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, "linux-api at vger dot kernel dot org" <linux-api at vger dot kernel dot org>
- Date: Tue, 17 Jun 2014 16:32:40 +0000
- Subject: RE: MIPS MSA sigcontext changes in 3.15
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1406171447030 dot 23412 at digraph dot polyomino dot org dot uk> <Pine dot LNX dot 4 dot 64 dot 1406171539240 dot 23412 at digraph dot polyomino dot org dot uk>
Joseph S. Myers <email@example.com> writes:
> On Tue, 17 Jun 2014, Joseph S. Myers wrote:
> > signal mask at a particular offset in the ucontext. As far as I can see,
> > extending sigcontext requires a new sigaction flag that could be used to
> > opt in, for a particular signal handler, to receiving the new-layout
> > ucontext (so new symbol versions of sigaction in glibc could then pass
> > that flag to the kernel, but existing binaries would continue to get
> > old-layout ucontext from the kernel), or else putting the new data at the
> And a new flag would itself be problematic - signal handlers would need
> wrapping with userspace code to convert structure layout when new-version
> sigaction is used on an older kernel. That suggests putting the new data
> at the end of ucontext is to be preferred (but in any case it would be
> best to revert the incompatible changes until something compatible with
> existing userspace can be produced).
An attempt was made to appropriately version the sigcontext structure to
allow readers to determine whether the MSA part of the context was present
or not but this only helps the sigcontext structure and not necessarily
the impact that has on the overall ucontext. On the face of it then it
does seem better to have the extra context at the end of ucontext as it
does indeed look broken for existing glibc versions.
A brief scan of how other architectures have handled extending ucontext
shows a wide variety of solutions although adding to the end of ucontext
seems to be the underlying theme.
Thanks for finding this.