Date: Thu, 18 Feb 2021 19:54:22 -0600 From: "Brandon Bergren" <bdragon@FreeBSD.org> To: "Jessica Clarke" <jrtc27@freebsd.org> Cc: "Konstantin Belousov" <kostikbel@gmail.com>, "John Baldwin" <jhb@freebsd.org>, src-committers <src-committers@freebsd.org>, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: =?UTF-8?Q?Re:_git:_24fd63e0970f_-_main_-_mips:_Don't_set_=5F=5FNO=5FTLS_?= =?UTF-8?Q?to_disable_some_uses_of_TLS.?= Message-ID: <d6d0ff3b-f769-4f52-ac6a-47c4e974bed6@www.fastmail.com> In-Reply-To: <012169A0-67EC-48B7-A1CB-2A9921EF63FA@freebsd.org> References: <202102180035.11I0ZnL3070354@gitrepo.freebsd.org> <9687575c-dd7c-1496-850b-2018f4bca3da@FreeBSD.org> <YC7TcMtrg8r7eAuL@kib.kiev.ua> <DBFAB331-737A-44E0-BBAA-65AF2C870AA9@freebsd.org> <ce964b75-4a11-4b5e-b47e-43a384da047f@www.fastmail.com> <3045F222-DBAC-463C-B429-075B2CFB115A@freebsd.org> <bc966f88-292e-4c2f-b1e7-6f93f890af7a@www.fastmail.com> <012169A0-67EC-48B7-A1CB-2A9921EF63FA@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 18, 2021, at 7:07 PM, Jessica Clarke wrote: > On 19 Feb 2021, at 00:03, Brandon Bergren <bdragon@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. -- Brandon Bergren bdragon@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d6d0ff3b-f769-4f52-ac6a-47c4e974bed6>