http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58127
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The secret plan was to not use TLS for emutls. I did not introduce new use of
TLS, just use what was already in tree-profile.c:
if (targetm.have_tls)
DECL_TLS_MODEL (ic_void_ptr_var) =
decl_default_tls_model (ic_void_ptr_var);
and I think have_tls should be true only for non-emutls targets.
on libgcov time we use
#ifdef HAVE_CC_TLS
__thread
#endif
There seems to be macro USE_EMUTLS specifying if we have real TLS or emuTLS.
I am not sure what of the two tests passes. Perhaps it will help to replace
#ifdef HAVE_CC_TLS
__thread
#endif
#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS)
__thread
#endif