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

Brooks Davis brooks at freebsd.org
Fri Feb 19 16:40:11 UTC 2021


On Fri, Feb 19, 2021 at 09:14:07AM -0700, Warner Losh wrote:
> On Fri, Feb 19, 2021 at 2:43 AM Konstantin Belousov <kostikbel at gmail.com>
> wrote:
> 
> > 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.
> 
> FWIW: Mips likely can play the 'not very popular tier 2 card trending
> towards tier 3' card, at least for 13 since (a) 13.0 isn't out yet and (b)
> the project doesn't produce mips binaries. It could likely even play it for
> 12, but that might be a wee bit disruptive to the few users of it we have.

IMO it's worth MFCing for 13.  My inclination would be to leave 12
alone.  Very few people will be using in an environment where they do
installworld-based updates, but given what a pain it is we might as well
not make their life more difficult.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/dev-commits-src-main/attachments/20210219/1c53aabc/attachment.sig>


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