[Bug ipa/61495] New: [4.10 regression] Many Go tests FAIL with fatal error: runtime.SetFinalizer
ro at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jun 13 13:12:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61495
Bug ID: 61495
Summary: [4.10 regression] Many Go tests FAIL with fatal error:
runtime.SetFinalizer
Product: gcc
Version: 4.10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: hubicka at gcc dot gnu.org, iant at google dot com
Host: *-*-solaris2.11
Target: *-*-solaris2.11
Build: *-*-solaris2.11
Between 20140516 (r210514) and 20140520 (r210655), many Go tests started to
FAIL
on Solaris 11 when using gas with /bin/ld, both SPARC and x86, 32 and 64-bit:
runtime.SetFinalizer: cannot pass * os os.file to finalizer func(*
os os.file) error
fatal error: runtime.SetFinalizer
A reghunt revealed that this patch
2014-05-17 Jan Hubicka <hubicka@ucw.cz>
* tree-pass.h (make_pass_ipa_comdats): New pass.
* timevar.def (TV_IPA_COMDATS): New timevar.
* passes.def (pass_ipa_comdats): Add.
* Makefile.in (OBJS): Add ipa-comdats.o
* ipa-comdats.c: New file.
Is the culprit. This is not seen with as/ld (as requires different comdat
syntax), gas/gld,
nor on Solaris 10 (where the necessary support to deal with comdat as emitted
by
gas is not yet present).
When linking libgo.so.5, I see many ld warnings like
ld: warning: relocation warning: R_386_32: file .libs/bytes.o: section
[149].rel.data.rel.ro.__go_td_FppN12_bytes.ReadererN5_uint8N5_erroree: symbol
C217: relocation against discarded COMDAT section [152].data.rel.C217: symbol
not found, relocation ignored
The strange thing is: if I link the objects generated by a gcc configured to
use
gas/gld with ld, the resulting libgo.so.5 and the actual testcases work fine:
linking gld objects with gld ok
gld ld ok
ld ld bad
ld gld ok
Rainer
Rainer
More information about the Gcc-bugs
mailing list