[musl] Fwd: mesa | Remove USE_ELF_TLS macro (!17213)

Szabolcs Nagy nsz at port70.net
Sat Jun 25 09:48:10 UTC 2022


* 罗勇刚(Yonggang Luo) <luoyonggang at gmail.com> [2022-06-25 13:25:31 +0800]:
> On Sat, Jun 25, 2022 at 12:47 PM Markus Wichmann <nullplan at gmx.net> wrote:
> >
> > On Sat, Jun 25, 2022 at 11:36:09AM +0800, 罗勇刚(Yonggang Luo) wrote:
> > > So I am confused. What's the situation about ELF-TLS support in musl?
> > > Is that still broken now?
> >
> > musl has always supported ELF-TLS anywhere except in libc itself. That
> > was also never the problem. The problem was that the mesa people select
> > the initial-exec TLS model explicitly, even though libGL ends up being
> > dlopen()ed quite often, and then you should be using the general-dynamic
> > model instead.
> 
> My question is does musl support ELS-TLS when using dl-open.
> 

musl supports ELF TLS with or without dlopen.

if something crashes that's most likely a bug in mesa.

> 
> >
> > According to [1], Rich proposed dropping the initial-exec attribute and
> > replacing it with -mtls-dialect=gnu2 eight years ago. Has that happened
> > yet? If so, dlopen()ing libGL with musl ought to work.
> 
> `initial-exec` are only specified for  __GLIBC__, If musl  not predefined
> macro ` __GLIBC__`


note: initial-exec tls is wrong for both glibc and musl.

(glibc reserves initial tls for ld_audit and dlmopen namespaces, it's
not there for mesa. i.e. this only happens to work because it's
unlikely that a process uses all the glibc features for which static
tls is reserved, but if that happens then mesa will fail to load.)


More information about the mesa-dev mailing list