I wasn't talking about going to the kernel directly.
Again:
libc.so contains:
sigaction@1024 -- a version of sigaction that uses
1024-bit sigset_t
sigaction@2048 -- you get the idea
bar:
Uses sigaction@2048 to set up SIGLOSE.
libfoo.so:
Uses sigaction@1024 to momentarily save and restore
signal state of SIGLOSE.
You've just lost the top 1024 bits of SIGLOSE's sa_mask, and there's
nothing to be done about it in libc, because there's no place to
store the extra bits.
I don't think there's anything that can be done about this, though.
r~