Rainer Orth <[email protected]> writes:
> Hi Honza,
>
>>> Unfortunately, AIX isn't the only target massively affected by your
>>> recent patches. This all started with r210597
>>>
>>> 2014-05-17 Jan Hubicka <[email protected]>
>>>
>>> * 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.
>>>
>>> At that time, only Solaris 11 with gas/Solaris ld was affected: many Go
>>> tests started failing like this:
>>>
>>> runtime.SetFinalizer: cannot pass * os os.file to finalizer func(*
>>> os os.file) error
>>> fatal error: runtime.SetFinalizer
>>
>> Thanks for letting me know. THis is different transformation than one
>> causing trouble
>> on AIX (AIX has no comdats, so this pass does nothing). Go seems tobe
>> quite heavy user
>> of comdat locals produced by that patch, so I suppose they somehow break
>> with Solaris.
>>
>> Comdat locals are now used by ipa-comdats, for thunks and for decloned ctors.
>> We probably need to figure out bit more precise limitation of Solaris and
>> either
>> fix or add way for target to say what kind of comdat locals are not
>> supported.
>
> Right. I'll start reghunting for the patch that caused additional
> breakage even without comdat, as on Solaris 10.
It turned out that those failures have been caused by the last libgo
merge, rev 211328: many 64-bit tests FAIL like this:
FAIL: go.go-torture/execute/chan-1.go execution, -O0
fatal error: all goroutines are asleep - deadlock!
goroutine 16 [chan send]:
created by main
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:42
There have been massive changes to libgo/runtime/chan.c, perhaps one of
them is the culprit.
It's hard to keep track with so much breakage these days ;-(
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University