Rainer Orth <r...@cebitec.uni-bielefeld.de> 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 <hubi...@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. >>> >>> 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