From be1e2b4817f9b8096b69334788d962611db5dc1e Mon Sep 17 00:00:00 2001 From: Jay Krell Date: Fri, 5 Jul 2019 06:38:16 -0700 Subject: [PATCH] Make thread locals just always extern. (mono/mono#15563) Making them static for C is not worth the ifdef. Commit migrated from https://github.com/mono/mono/commit/28ec3644efa4e7cff0d8850e01aa96f0621a9749 --- src/mono/mono/utils/mono-tls.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/mono/mono/utils/mono-tls.c b/src/mono/mono/utils/mono-tls.c index 21384bc..26f6b4c 100644 --- a/src/mono/mono/utils/mono-tls.c +++ b/src/mono/mono/utils/mono-tls.c @@ -172,21 +172,14 @@ #endif -#ifdef __cplusplus -// static and anonymous namespace both fail to link otherwise; Linux/amd64/gcc. -#define MONO_TLS_STATIC /* nothing */ -#else -#define MONO_TLS_STATIC static -#endif - -/* Tls variables for each MonoTlsKey */ -MONO_TLS_STATIC MONO_KEYWORD_THREAD MonoInternalThread *mono_tls_thread MONO_TLS_FAST; -MONO_TLS_STATIC MONO_KEYWORD_THREAD MonoJitTlsData *mono_tls_jit_tls MONO_TLS_FAST; -MONO_TLS_STATIC MONO_KEYWORD_THREAD MonoDomain *mono_tls_domain MONO_TLS_FAST; -MONO_TLS_STATIC MONO_KEYWORD_THREAD SgenThreadInfo *mono_tls_sgen_thread_info MONO_TLS_FAST; -MONO_TLS_STATIC MONO_KEYWORD_THREAD MonoLMF **mono_tls_lmf_addr MONO_TLS_FAST; - -#undef MONO_TLS_STATIC // no further uses +// Tls variables for each MonoTlsKey. +// These are extern instead of static for inexplicable C++ compatibility. +// +MONO_KEYWORD_THREAD MonoInternalThread *mono_tls_thread MONO_TLS_FAST; +MONO_KEYWORD_THREAD MonoJitTlsData *mono_tls_jit_tls MONO_TLS_FAST; +MONO_KEYWORD_THREAD MonoDomain *mono_tls_domain MONO_TLS_FAST; +MONO_KEYWORD_THREAD SgenThreadInfo *mono_tls_sgen_thread_info MONO_TLS_FAST; +MONO_KEYWORD_THREAD MonoLMF **mono_tls_lmf_addr MONO_TLS_FAST; #else -- 2.7.4