-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/dist: s390x builder failing #32536
Comments
I'm working on it. At least, the stale dependency errors, maybe caused by stack-allocated defers. |
What I've learned so far. Puzzling. I'm going to continue working on this, will revert or patch out if I can't figure it out by EOD tomorrow. |
Interestingly the tests pass on my Ubuntu 18.04 VM. Last time I saw something OS-dependent like this it was because we had got an ABI transition slightly wrong (e.g. not saving a callee-save floating point register that happens to be needed on one OS but not the other). I suggest we hold off reverting, I think this may well be a latent bug. I'll keep investigating. |
I haven't been able to recreate this. I still see the problem even with all of the defers in |
There may very well be other places where this bug occurs.
And then run with GODEFERHASH=111000000. Replacing that defer with |
Some experiments I did suggest that the error occurs when a function has defers with different argument counts. Adding dummy args to make them all the same argsize seems to fix the issue. Mike Munday suggested that maybe it's the bootstrap Go. We use a devel version on the builders circa somewhere between 1.5 and 1.6. Replacing the bootstrap with 1.12.5 fixes the issue. Speaking of which, the issue occurs because |
I'm coming around to the bad bootstrap compiler theory. If I add another round of bootstrap to Mike, can you update the bootstrap on the (all of the?) s390x builders? |
Done. It is now using Go 1.12.6. I have a VM which is using Go 1.10.1 as a bootstrap and is also failing the same way suggesting that the underlying issue was 'fixed' relatively recently. I'll see if I can narrow it down to a specific commit. |
Looks like the bootstrap starts working after CL 121495 which fixed the s390x assembly for |
Thank you all! It appears to be working now. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env
)?Linux s390x
What did you do?
What did you expect to see?
successful build
What did you see instead?
fail
The text was updated successfully, but these errors were encountered: