http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-02-16 20:04:42 UTC --- > --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 > 11:25:35 UTC --- > This change: > > --- baseline_symbols.txt 2012-01-23 19:01:03.590486000 +0100 > +++ baseline_symbols.txt.s8g 2012-01-23 19:03:38.063402000 +0100 > @@ -2176,0 +2177 @@ > +FUNC:_ZSt16__get_once_mutexv@@GLIBCXX_3.4.12 > @@ -2209,0 +2211 @@ > +FUNC:_ZSt23__get_once_functor_lockv@@GLIBCXX_3.4.11 > @@ -2212,0 +2215 @@ > +FUNC:_ZSt27__set_once_functor_lock_ptrPSt11unique_lockISt5mutexE@@GLIBCXX_3.4.12 > @@ -2649,0 +2653 @@ > +OBJECT:16:_ZSt14__once_functor@@GLIBCXX_3.4.11 > @@ -2715,2 +2718,0 @@ > -OBJECT:16:__emutls_v._ZSt11__once_call@@GLIBCXX_3.4.15 > -OBJECT:16:__emutls_v._ZSt15__once_callable@@GLIBCXX_3.4.15 > > indicates that it was previously using TLS and now isn't (as discussed in PR > 52104) so that's what should be fixed to bring the __once_call* symbols back It's rather the other way round: baseline_symbols.txt (i.e. native tools where as lacks TLS support) is with emutls, while baseline_symbols.txt.s8g uses gas/ld (or gas/gld) with native TLS. What put me off at first was that both symbols were removed and added, but Jakub already provided the solution: omit the emutls symbols in the installed baseline.txt, so both emutls and native TLS only adds to the baseline. Rainer