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