git: 24fd63e0970f - main - mips: Don't set __NO_TLS to disable some uses of TLS.

Jessica Clarke jrtc27 at freebsd.org
Fri Feb 19 01:07:58 UTC 2021


On 19 Feb 2021, at 00:03, Brandon Bergren <bdragon at FreeBSD.org> wrote:
> On Thu, Feb 18, 2021, at 6:00 PM, Jessica Clarke wrote:
>> 
>> But TLS isn't broken for ELFv1? Otherwise jemalloc would die in a fire
>> and nothing would ever work. TLS should have been working for ELFv1 for
>> many years by this point.
>> 
>> Jess
> 
> It's not broken, but it's an ABI change to flip it back and forth. You get RuneLocale errors in the middle of installworld if you try and install a build with TLS enabled and have to do a double installworld to compensate for the crashes.
> 
> For ABI stability reasons, it needs to stay on in 12 and below.

Ok, so the mistake was not deleting it 8 years ago and instead leaving
it around to become part of the ABI. The issue you're referring to
specifically is __getCurrentRuneLocale and _ThreadRuneLocale (the
latter doesn't exist for __NO_TLS, and the former changes between
static inline and extern)? __NO_TLS should have blocked powerpc64 (and
mips) from becoming tier 2 IMO, but we're stuck with it, so yeah, it's
a major ABI break (frustratingly tiny but breaks the core system
libraries) and thus can't be MFC'ed.

Jess



More information about the dev-commits-src-main mailing list