Date: Wed, 17 Feb 2021 16:48:22 -0800 From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 24fd63e0970f - main - mips: Don't set __NO_TLS to disable some uses of TLS. Message-ID: <9687575c-dd7c-1496-850b-2018f4bca3da@FreeBSD.org> In-Reply-To: <202102180035.11I0ZnL3070354@gitrepo.freebsd.org> References: <202102180035.11I0ZnL3070354@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2/17/21 4:35 PM, John Baldwin wrote: > The branch main has been updated by jhb: > > URL: https://cgit.FreeBSD.org/src/commit/?id=24fd63e0970f91189dd2acde987bd2e4c8c04a50 > > commit 24fd63e0970f91189dd2acde987bd2e4c8c04a50 > Author: John Baldwin <jhb@FreeBSD.org> > AuthorDate: 2021-02-18 00:34:23 +0000 > Commit: John Baldwin <jhb@FreeBSD.org> > CommitDate: 2021-02-18 00:34:23 +0000 > > mips: Don't set __NO_TLS to disable some uses of TLS. > > __NO_TLS was originally added to disable use of _Thread in the locale > code in libc in 82dd5016bd749d1d9e1531bd1703aebeecceab34. At the time > libc did not support TLS on MIPS (I believe), but TLS support was > added to libc (at least _set_tp.c) for MIPS about a month after > __NO_TLS was added, but __NO_TLS was still left around. > > Reviewed by: imp > Sponsored by: DARPA > Differential Revision: https://reviews.freebsd.org/D28713 > --- > sys/sys/cdefs.h | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h > index 64f26480a2f5..ff18911f6acf 100644 > --- a/sys/sys/cdefs.h > +++ b/sys/sys/cdefs.h > @@ -768,8 +768,7 @@ > #endif > #endif /* __STDC_WANT_LIB_EXT1__ */ > > -#if defined(__mips) || \ > - (defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1)) > +#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1) > #define __NO_TLS 1 > #endif It would be really nice to kill __NO_TLS entirely. There is at least one unconditional use of _Thread_local (sorry, should have used that instead of _Thread above) in libc in stdlib/cxa_thread_atexit_impl.c, so it seems highly unlikely that TLS is actually broken on any of our platforms as the libc build would have been broken instead. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9687575c-dd7c-1496-850b-2018f4bca3da>