This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: providing __tls_get_addr on s390?
- From: Carlos O'Donell <carlos at redhat dot com>
- To: libc-alpha at sourceware dot org, Stefan Liebler <stli at linux dot ibm dot com>
- Date: Sat, 31 Aug 2019 10:28:55 -0400
- Subject: Re: providing __tls_get_addr on s390?
- References: <20190831141030.GA6914@aurel32.net>
On 8/31/19 10:10 AM, Aurelien Jarno wrote:
> Dear all,
>
> I have noticed that GCC recently started to use the
> __tls_get_addr_internal symbol on s390 [1]. This is probably a bad
> idea to use an internal libc symbol outside of the libc as it can be
> modified or removed at anytime.
>
> That said, I also noticed that s390 is (one of the) only architectures
> which doesn't provide __tls_get_addr. Is there a reason for that? Is it
> something that we should fix?
Stefan,
Is there any reason s390 doesn't implement __tls_get_addr like other arches?
It's always easier if all the machines support the same generic infrastructure.
The lack of __tls_get_addr on s390 forces the D language runtime to have
Z Series specific code to handle TLS calculations :-(
Aurelien,
The D-language runtime encodes a ton of TLS-specific implementation details
and one of them is accessing TLS details.
This can be seen as a failing of glibc to provide a generic low-level TLS
interface for language runtimes. There aren't enough details spelled out
to make it easy to provide TLS details to the runtime.
Either way, *no* language runtime should be using GLIBC_PRIVATE symbols.
Could you please file a bug for that? If they need access they should do
so through the appropriate API e.g. __tls_get_addr which is a standard
API with specified semantics.
--
Cheers,
Carlos.