This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [COMMITTED PATCH] Make sysdeps/generic/internal-signals.h less stubby.
On Wed, Apr 4, 2018 at 1:42 PM, Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
> On 04/04/2018 13:45, Zack Weinberg wrote:
>> Three of the functions defined by internal-signals.h were not actually
>> fulfilling their contracts when the sysdeps/generic version of that
>> file was used. Also, the Linux version included several more headers
>> than the generic version, which is the root cause of a build failure
>> on Hurd (already addressed in another way, but I think it is proper to
>> make the headers match).
>>
>> In principle, __libc_signal_block_all, __libc_signal_block_app, and
>> __libc_signal_restore_set could be defined in non-system-dependent
>> code, leaving only __is_internal_signal and __clear_internal_signal to
>> be defined by a sysdeps header, but the Linux version of
>> internal-signals.h wants to inline a raw rt_sigprocmask syscall, and I
>> don't feel like messing with that today.
>
> Thanks for catching it. If I remember correctly, I used an inlined
> rt_sigprocmask for Linux because both sigprocmask and pthread_sigmask
> filter both SIGCANCEL and SIGSETXID. We could use it for
> __libc_signal_block_app, but __libc_signal_block_all and
> __libc_signal_restore_set would require a new symbol.
Yeah, that's what I thought was going on. I think it's fine the way
it is at least for now.
zw