http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58127
--- Comment #8 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > > #if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) > > does, indeed, work. I have done a clean bootstrap with --- ../_clean/libgcc/libgcov.c 2013-08-11 13:28:22.000000000 +0200 +++ libgcc/libgcov.c 2013-08-18 12:30:01.000000000 +0200 @@ -1162,11 +1162,11 @@ __gcov_indirect_call_profiler (gcov_type The variables are set directly by GCC instrumented code, so declaration here must match one in tree-profile.c */ -#ifdef HAVE_CC_TLS +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) __thread #endif void * __gcov_indirect_call_callee; -#ifdef HAVE_CC_TLS +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) __thread #endif gcov_type * __gcov_indirect_call_counters; and the failures for gcc.dg/tree-prof/* and g++.dg/tree-prof/* are gone. Thanks.