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

Konstantin Belousov kostikbel at gmail.com
Fri Feb 19 09:43:02 UTC 2021


On Thu, Feb 18, 2021 at 07:54:22PM -0600, Brandon Bergren wrote:
> 
> 
> On Thu, Feb 18, 2021, at 7:07 PM, Jessica Clarke wrote:
> > On 19 Feb 2021, at 00:03, Brandon Bergren <bdragon at FreeBSD.org> wrote:
> > 
> > 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
> 
> Right.
> 
> And I fixed it for powerpc64 for 13 finally becuase I had the excuse of "Well, we're switching to an entirely incompatible ABI due to lld not supporting ELFv1, so I might as well fix this one at the same time since we're forcing people to reinstall from scratch anyway."
> 
> So yeah, in HEAD, all references to __NO_TLS can go away fully, in stable/13 the mips part probably has to stay (riscv can play the tier 3 card though), and in 12 it's baked in for life.
> 
> The "(defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1))" part is no longer relevant for 13 or HEAD, since the ELFv2 transition is over and done with as of the end of 2019. I probably should have taken that part out last year, since it was meant to just be a temporary compatibility shim so that people could compile both the gcc4.2 ELFv1 and llvm ELFv2 versions of 13-CURRENT out of the same tree back when we were in the middle of switching over.

So why didn't you go ahead and removed at least the remaining block that
defines __NO_TLS for PowerPC?  I promise to clean the tree out of its
uses after that.


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