This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v32] Avoid cancellable I/O primitives in ld.so.
On 06/06/2018 17:40, Zack Weinberg wrote:
> On Wed, Jun 6, 2018 at 4:38 PM, Adhemerval Zanella
> <adhemerval.zanella@linaro.org> wrote:
>> On 06/06/2018 17:28, Zack Weinberg wrote:
>>> If I put these in libpthread-routines, they
>>> will get the wrong treatment from nptl/Makefile, namely, they'll be
>>> put into libpthread.a unnecessarily.
>>>
>>> ... Having said that, x86-64 at least doesn't export any _nocancel
>>> functions from libpthread, which may mean we don't need these at all.
>>> Will experiment and report back.
>>>
>>> zw
>>
>> The nocancel variants are used on libpthread symbols, not really to on
>> wrappers:
>>
>> * __open64_nocancel, __read_nocancel, __write_nocancel, __close_nocancel
>> are used on unix/sysv/linux/pthread_{get,set}name.c.
>> * __pause_nocancel is used on nptl/pthread_mutex_lock.c.
>> * __nanosleep_nocancel is used on nptl/pthread_mutex_timedlock.c.
>
> They should be able to call the definitions in libc.so (possibly we
> will need to add GLIBC_PRIVATE exports).
>
>> I think adding them on libpthread-routines is exactly what we want.
>
> Again, this will cause them to be unnecessarily included in libpthread.a.
>
My point is for patch as-is adding the objects on pthread-compat-wrappers
rule is misleading, although necessary. But export them by GLIBC_PRIVATE
is an option, and I think it is preferable indeed.