http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55308
--- Comment #4 from N8GCBP7SHNBTI79GINADGKJPRTLOCO2A at cmx dot ietfng.org 2013-01-24 02:56:14 UTC --- I'm not proposing changing all of them. The one (two) that are significant to my case are these: --- gcc/configure.ac.orig 2013-01-02 11:57:31.000000000 +0000 +++ gcc/configure.ac 2013-01-16 22:08:48.151503275 +0000 @@ -3134,21 +3134,21 @@ if test x$on_solaris = xyes && test x$gas_flag = xno; then conftest_s=' .section ".tdata",#alloc,#write,#tls' tls_first_major=0 tls_first_minor=0 else conftest_s=' .section ".tdata","awT",@progbits' tls_first_major=2 tls_first_minor=14 - tls_as_opt="-32 --fatal-warnings" + tls_as_opt="--fatal-warnings" fi conftest_s="$conftest_s foo: .long 25 .text sethi %tgd_hi22(foo), %o0 add %o0, %tgd_lo10(foo), %o1 add %l7, %o1, %o0, %tgd_add(foo) call __tls_get_addr, %tgd_call(foo) sethi %tldm_hi22(foo), %l1 add %l1, %tldm_lo10(foo), %l2 --- gcc/configure.orig 2013-01-02 11:57:31.000000000 +0000 +++ gcc/configure 2013-01-16 22:08:48.142499859 +0000 @@ -23369,21 +23369,21 @@ if test x$on_solaris = xyes && test x$gas_flag = xno; then conftest_s=' .section ".tdata",#alloc,#write,#tls' tls_first_major=0 tls_first_minor=0 else conftest_s=' .section ".tdata","awT",@progbits' tls_first_major=2 tls_first_minor=14 - tls_as_opt="-32 --fatal-warnings" + tls_as_opt="--fatal-warnings" fi conftest_s="$conftest_s foo: .long 25 .text sethi %tgd_hi22(foo), %o0 add %o0, %tgd_lo10(foo), %o1 add %l7, %o1, %o0, %tgd_add(foo) call __tls_get_addr, %tgd_call(foo) sethi %tldm_hi22(foo), %l1 add %l1, %tldm_lo10(foo), %l2 but I do not claim that the above patch is anything other than a workaround! On sparc machines that are not FreeBSD, the -32 may be necessary, I don't know.