http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40183
--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-02-02 18:01:11 UTC --- > It looks like this is resolved with binutils-2.21. I used the gld from > binutils-2.21 with the .o files produced by gas in binutils-2.20.1 and the > gcc-4.5.2 compiler, and the tls/static-1.C test now passes. (Using gcc's -v > feature to find out what the actual link command was; replacing collect2 with > a > direct call to ld seems to work well enough for this test.) If binutils were in use (which doesn't seem to be the case from the g++ -v output), you'd be right: before my patches that went into binutils 2.21, gld cannot have worked with static TLS on Solaris 2: Properly align static TLS segments on Solaris 2 http://sourceware.org/ml/binutils/2010-09/msg00485.html http://sourceware.org/ml/binutils/2010-10/msg00291.html Properly align static TLS segments on Solaris 2/SPARC http://sourceware.org/ml/binutils/2010-10/msg00348.html I'll add a corresponding caveat to the GCC 4.6 installation docs. Rainer