tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Libc support for old BSD-style "sigcontext" signal handlers is broken, let's just kill it.



On Tue, Oct 26, 2021 at 06:56:54 -0700, Jason Thorpe wrote:

> However, as I was adding an #ifdef conditional to the sigcontext
> handling in the new unified __sigaction14_sigtramp.c (because new
> architectures added after ?siginfo? support was added never really
> needed it, and didn?t define a ?struct sigcontext?), I realized that
> in 2006, support for sigcontext handling was broken on platforms
> that previously supported it (each copy gained a __LIBC12_SOURCE__
> conditional around the sigcontext support, but nothing ever defined
> __LIBC12_SOURCE__ for those files).
[...]
> Since Feb 2006 (with one minor exception; don?t worry, it was broken
> a few months later), the ?siginfo? trampoline has always been
> chosen, meaning that any old program dynamically linked against libc
> that uses style ?2? above would get garbage in the ?code? and ?scp?
> arguments.

I'm replying from (fading) memory here, so apologies in advance if I'm
confused about it...  Isn't the above intended?  We don't compile the
source for the old trampoline b/c we now always use the sigingo one
and we don't need the old trampoline in the new library.  OTOH the old
*binaries* (using old dynamic libc, or linked with old static libc)
still need the kernel support.

I'm not sure why we left the sigcontext version in the tree.  I would
guess for reference only, so it doesn't really need any fixing, as far
as I understand.

-uwe


Home | Main Index | Thread Index | Old Index