[Bug libstdc++/52104] go1 fails to link on Solaris 8/9 x86 with native TLS
ro at CeBiTec dot Uni-Bielefeld.DE
gcc-bugzilla@gcc.gnu.org
Fri Feb 3 10:21:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52104
--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-02-03 10:21:03 UTC ---
> --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-03 10:11:40 UTC ---
> Looks as though we need an extra explicit instantiation in src/c++11/future.cc
Seems so. This would most likely also resolve a bootstrap failure I'm
seeing on Solaris 10 and 11/x86 with the gas/gld combo:
go1 fails to run with
ld.so.1: go1: fatal: relocation error: R_386_UNKNOWN37: file
/var/gcc/regression/trunk/10-gcc-gas-gld/build/gcc/go1: symbol
_ZSt15__once_callable: offset size (0 bytes) is not supported
gccgo: internal compiler error: Killed (program go1)
That R_386_UNKNOWN37 relocation is R_386_TLS_TPOFF32, not supported even
on Solaris 11. If I look at the previous (20120127) libstdc++.a (go1 is
linked with -static-libstdc++), I find:
> nm -A libstdc++.a |grep once_callable
libstdc++.a[mutex.o]: [29] | 0| 4|TLS |GLOB |0 |8
|_ZSt15__once_callable
As of 20120202, I get this instead:
libstdc++.a[mutex.o]: [29] | 0| 4|TLS |GLOB |0 |8
|_ZSt15__once_callable
libstdc++.a[future.o]: [144] | 0| 0|TLS |GLOB |0 |UNDEF
|_ZSt15__once_callable
Seems to be the same issue.
Rainer
More information about the Gcc-bugs
mailing list