Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/external/gpl3/gcc



On 12.09.2020 23:36, Joerg Sonnenberger wrote:
> On Sat, Sep 12, 2020 at 10:24:16PM +0200, Kamil Rytarowski wrote:
>> On 12.09.2020 22:06, Joerg Sonnenberger wrote:
>>> On Fri, Sep 11, 2020 at 11:45:42PM +0200, Kamil Rytarowski wrote:
>>>> On 11.09.2020 23:38, Joerg Sonnenberger wrote:
>>>>> On Fri, Sep 11, 2020 at 04:07:24PM +0200, Kamil Rytarowski wrote:
>>>>>> The current code is confusing, as it attempts to use unimplemented
>>>>>> _PTHREAD_GETTCB_EXT() and in one place uses _lwp_getprivate_fast() in
>>>>>> other _lwp_getprivate(). This caused my confusion... as I assumed that
>>>>>> _lwp_getprivate_fast() is internal and _lwp_getprivate() for public
>>>>>> consumption.
>>>>>
>>>>> _PTHREAD_GETTCB_EXT is a rump hack. There is no _lwp_getprivate_fast.
>>>>> There is __lwp_getprivate_fast, which originally wasn't implemented on
>>>>> architectures without a fast path (like VAX). Nowadays, all functional
>>>>> ports provide either __lwp_getprivate_fast (potentially with a fall-back
>>>>> to the system call) or __lwp_gettcb_fast. The difference is whether the
>>>>> TLS register is biased or not.
>>>>>
>>>>
>>>> Do you agree with this patch:
>>>>
>>>> http://netbsd.org/~kamil/patch-00278-_rtld_tls_self.txt
>>>
>>> No, I don't see the point.
>>>
>>
>> What's the alternative to use in 3rd party code?
> 
> Why do you need an alternative?
> 

I need tls_tcb of the calling thread.

https://github.com/llvm/llvm-project/blob/15b37e1cfa5f09af376a47a1bc67d67bb5c7848b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp#L406

https://github.com/llvm/llvm-project/blob/15b37e1cfa5f09af376a47a1bc67d67bb5c7848b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp#L458

What is the interface (ideally MI) for this for 3rd party code?

> Joerg
> 


Attachment: signature.asc
Description: OpenPGP digital signature



Home | Main Index | Thread Index | Old Index