Skip to content
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

Closed
gopherbot opened this issue May 3, 2021 · 7 comments
Labels
CherryPickApproved FrozenDueToAge
Milestone

Comments

@gopherbot
Copy link

gopherbot commented May 3, 2021

@pmur requested issue #45850 to be considered for backport to the next 1.16 minor release.

@gopherbot this affects building openshift with go1.16, please consider a backport.

@gopherbot
Copy link
Author

gopherbot commented May 4, 2021

Change https://golang.org/cl/316750 mentions this issue: cmd/link/internal: fix use of DynlinkingGo with ppc64le trampolines

@laboger
Copy link
Contributor

laboger commented May 4, 2021

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.

@heschi heschi modified the milestones: Go1.16.4, Go1.16.5 May 6, 2021
@toothrot toothrot added the CherryPickApproved label May 6, 2021
@gopherbot gopherbot removed the CherryPickCandidate label May 6, 2021
@toothrot
Copy link
Contributor

toothrot commented May 6, 2021

@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.

@cherrymui
Copy link
Member

cherrymui commented May 6, 2021

I think it probably affects 1.15 as well.

@toothrot toothrot added the CherryPickCandidate label May 6, 2021
@gopherbot gopherbot removed the CherryPickCandidate label May 6, 2021
@toothrot toothrot added CherryPickCandidate and removed CherryPickApproved labels May 6, 2021
@toothrot
Copy link
Contributor

toothrot commented May 6, 2021

Thanks, I also opened #46002 for Go 1.15.

@dmitshur
Copy link
Contributor

dmitshur commented May 21, 2021

Approving per discussion in a release meeting. This backport applies to both 1.16 (this issue) and 1.15 (#46002).

@dmitshur dmitshur added CherryPickApproved and removed CherryPickCandidate labels May 21, 2021
gopherbot pushed a commit that referenced this issue Jun 2, 2021
…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>
@gopherbot
Copy link
Author

gopherbot commented Jun 2, 2021

Closed by merging 40b97d6 to release-branch.go1.16.

@golang golang locked and limited conversation to collaborators Jun 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CherryPickApproved FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

6 participants