-
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
gccgo: gotools testcase failures on ppc64le #30508
Comments
I can't recreate either of these problems. I'm testing on a machine in the GCC compile farm, gcc112.fsffrance.org. It's running CentOS Linux release 7.6.1810. On that machine |
I just noticed that the linker error does not appear on our gcc-testresults reports for power8 or power9, but I hit it every time on my builds. I will try to find what's different -- how I configure, or the gcc or ld versions on my machine. I've been mostly using newer distros. The TestAbort failure appears consistently on our gcc-testresults and I hit it consistently. I will try some older distros and try different configure options and see if the behavior is different. |
FYI... the linker bug in the bugzilla has been fixed. TestAbort still fails in more recent distros. |
After building the program in libgo/go/runtime/testdata/testprog, the output I see for testprog output
It looks like the difference is that on your system libgcc is unable to unwind through the signal handler. The key point is whether the function
If you run
This matches the instruction sequence expected by What do you see? |
I did this on Ubuntu 18.04 and still got the failures.
|
I'm sorry, I don't know what is happening here. I'm not sure how to make progress if I can't recreate the problem. |
OK, looks like this only fails on the Ubuntu systems I used. I ran on a few RHEL 7.6 and those passed. The RHEL 7 systems all had older kernels, not sure if that is the difference. I know this is not a high priority, just wanted to get it off the list of failures. Looks like our test systems are all Ubuntu. |
I'm pretty sure this problem has to do with split stack. The older distros where this works use glibc 2.17, and gccgo doesn't generate split stack on 2.17 or before. When split-stack is present the test fails. |
Thanks. Perhaps there is something wrong with the unwind or exception handling information in libgcc/config/rs6000/morestack.S. |
This has been working for a few months. |
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
)?$ go env
linux/ppc64le Ubuntu 18.04
We don't see this error on linux/ppc64, although it's possible it is being skipped there.
What did you do?
make check from the gotools directory
What did you expect to see?
No failures
What did you see instead?
There are two failures when running the gotools tests on the latest gccgo on ppc64le.
This failure has been happening since r264546 which was the upgrade to Go 1.11.
=== RUN TestAbort
FAIL: TestAbort
crash_test.go:95: testprog Abort exit status: exit status 2
crash_test.go:683: output does not contain "runtime.abort":
SIGABRT: abort
PC=140704077965708 m=0 sigcode=18446744073709551610
The second failure is a link error which has a bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89227
The text was updated successfully, but these errors were encountered: