http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55308
--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2013-02-22 15:48:00 UTC --- There seems to be something totally confused here: when linking libgcc_s.so, there's a reference to libstdc++.so: [...] lc && rm -f /libgcc_s.so && if [ -f /libgcc_s.so.1 ]; then mv -f /libgcc_s.so.1 /libgcc_s.so.1.backup; else true; fi && mv /libgcc_s.so.1.tmp /libgcc_s.so.1 && ln -s libgcc_s.so.1 /libgcc_s.so /usr/ports/lang/gcc48/work/build/sparc64-portbld-freebsd10.0/libstdc++-v3/src/.libs/libstdc++.so.6: Undefined symbol "__emutls_v._ThreadRuneLocale" gmake[3]: *** [libgcc_s.so] Error 1 This cannot be right, at least this won't happen during a regular gcc build. You first need to find out which object/shared object references this undefined symbol. Only after this analysis is done, we can come to further conclusions. If you have already done the analysis, you should include the results in the PR. Apart from that, tls_as_opt="-32 --fatal-warnings" is in the non-Solaris gas sections of configure.ac and has been there even before my patch to improve Solaris/SPARC TLS support. What assembler does this build use? I suppose it is some version of gas, in which case I've got a hard time believing that it doesn't support -32. If this is a completely different assembler, you'll have to add support for the options it does and doesn't understand, and perhaps even more to properly enable native TLS. Rainer