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/link: SIGSEGV running 'openshift-install version' for release-4.8 using external linking on PPC64LE [1.16 backport] #45927
Comments
Change https://golang.org/cl/316750 mentions this issue: |
This is a bug that occurs when trying to build binaries for Openshift. These trampoline errors occur because the size of the text section gets too large -- and some of these binaries must have been teetering near the limit and just recently went over after a Kubernetes update. Also, the program with the large text section must use a plugin to cause this error, because that is why DynlinkingGo was returning an incorrect result. |
@laboger @cherrymui Can you confirm here that this only impacts Go 1.16? This is approved as a serious issue with no workaround, and assuming we do not need to change anything in 1.15. |
I think it probably affects 1.15 as well. |
Thanks, I also opened #46002 for Go 1.15. |
Approving per discussion in a release meeting. This backport applies to both 1.16 (this issue) and 1.15 (#46002). |
…th ppc64le trampolines When creating programs with large text sections on ppc64le, trampolines are needed for calls that are too far; however they are not created if the code is generated such that the TOC register r2 is initialized and maintained in the code because then the external linker can create the trampolines. Previously the function DynlinkingGo was used to determine this but in the case where plugins are used, this could return true even though r2 is not valid. To fix this problem I've added a new function r2Valid which returns true when the build options indicate that the r2 is initialized and maintained. Because of the ways that DynlinkingGo is used I wanted to maintain its previous behavior. Fixes #45927 Change-Id: I6d902eba6ad41757aa6474948b79acdbd479cb38 Reviewed-on: https://go-review.googlesource.com/c/go/+/315289 Trust: Lynn Boger <laboger@linux.vnet.ibm.com> Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> (cherry picked from commit 9ed736a) Reviewed-on: https://go-review.googlesource.com/c/go/+/316750 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
Closed by merging 40b97d6 to release-branch.go1.16. |
gopherbot commentedMay 3, 2021
@pmur requested issue #45850 to be considered for backport to the next 1.16 minor release.
The text was updated successfully, but these errors were encountered: