On Wed, Feb 17, 2021 at 04:48:22PM -0800, John Baldwin wrote: > 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 <j...@freebsd.org> > > AuthorDate: 2021-02-18 00:34:23 +0000 > > Commit: John Baldwin <j...@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.
There is a difference between compile and runtime. The mentioned libc use in cxa_thread_atexit_impl.c is to support some (I believe) rarely used C++ feature of thread-local storage with destructors, so it might be simply not observed often. OTOH, locale functions infect almost everything string-related in libc, so the breakage would be quite visible. But, I wonder, what does CALL_ELF mean? Is it for old 64bit PowerPC ABI, that was abandoned with the switch to ELFv2? _______________________________________________ dev-commits-src-main@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"