[PATCH 1/3] nptl: Move pthread_sigmask implementation to libc

Adhemerval Zanella adhemerval.zanella@linaro.org
Fri Mar 13 13:23:31 GMT 2020



On 13/03/2020 10:16, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>> On 13/03/2020 06:51, Florian Weimer wrote:
>>> * Adhemerval Zanella via Libc-alpha:
>>>
>>>> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>>>> index a4c31932cb..694efeb1e4 100644
>>>> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>>>> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>>>> @@ -1447,6 +1447,7 @@ GLIBC_2.17 pthread_self F
>>>>  GLIBC_2.17 pthread_setcancelstate F
>>>>  GLIBC_2.17 pthread_setcanceltype F
>>>>  GLIBC_2.17 pthread_setschedparam F
>>>> +GLIBC_2.17 pthread_sigmask F
>>>>  GLIBC_2.17 ptrace F
>>>>  GLIBC_2.17 ptsname F
>>>>  GLIBC_2.17 ptsname_r F
>>>> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>>>> index d65beba958..48b368acb1 100644
>>>> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>>>> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>>>> @@ -156,7 +156,6 @@ GLIBC_2.17 pthread_setconcurrency F
>>>>  GLIBC_2.17 pthread_setname_np F
>>>>  GLIBC_2.17 pthread_setschedprio F
>>>>  GLIBC_2.17 pthread_setspecific F
>>>> -GLIBC_2.17 pthread_sigmask F
>>>>  GLIBC_2.17 pthread_sigqueue F
>>>>  GLIBC_2.17 pthread_spin_destroy F
>>>>  GLIBC_2.17 pthread_spin_init F
>>>
>>> This change is not fully compatible: Newly-linked programs may incur
>>> lazy binding failures on older glibc versions because pthread_sigmask
>>> is not present in libc.so.6.
>>
>> But backward compatibility is not a fully support scenario. Do we
>> really need to handle such cases for the libpthread removal
>> project?
> 
> So far, our approach to symbol versioning has been that if the
> application (or DSO) loads, it will not fail later due to a missing
> symbol.  Some RPM-based distributions have no other mechanism to
> ensure correct package dependencies.

Yes, but my understanding was exactly that new loader behaviour
(f0b2132b3524) will prevent the failure for this specific case.
What I am getting is we are adding this constraint due a rpm
limitation, is that correct?


More information about the Libc-alpha mailing list