This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/52104] go1 fails to link on Solaris 8/9 x86 with native TLS
- From: "ro at CeBiTec dot Uni-Bielefeld.DE" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 03 Feb 2012 10:21:03 +0000
- Subject: [Bug libstdc++/52104] go1 fails to link on Solaris 8/9 x86 with native TLS
- Auto-submitted: auto-generated
- References: <bug-52104-4@http.gcc.gnu.org/bugzilla/>
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