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

John Baldwin jhb at FreeBSD.org
Thu Feb 18 00:48:24 UTC 2021


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 at FreeBSD.org>
> AuthorDate: 2021-02-18 00:34:23 +0000
> Commit:     John Baldwin <jhb at 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


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