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/internal/ppc64: too-far trampoline is reused #56775

Closed
pmur opened this issue Nov 16, 2022 · 3 comments
Closed

cmd/link/internal/ppc64: too-far trampoline is reused #56775

pmur opened this issue Nov 16, 2022 · 3 comments

Comments

@pmur
Copy link
Contributor

pmur commented Nov 16, 2022

This occurred on go1.17.13, ppc64le/linux (go1.18 is oldest supported version today), so it is obviously unsupported now. But, the root cause of the issue is still present today. Hitting this bug requires an unlucky combination of function placement and trampoline generation.

When compiling openshift-installer commit f3c53b382 on ppc64le in release mode (e.g ./hack/build.sh), the following linker error occurs:

    github.com/aliyun/alibaba-cloud-sdk-go/services/cms.(*Client).DescribeMonitoringAgentAccessKeyWithChan.func1: direct call too far: runtime.duffzero+1f0-tramp0-1 -2000078

This occurs when a trampoline is generated for a direct call to a function with a non-zero addend which is slightly beyond the direct call limits of PPC64.

@pmur pmur self-assigned this Nov 16, 2022
@gopherbot
Copy link

Change https://go.dev/cl/451415 mentions this issue: cmd/link/internal/ppc64: fix trampoline reuse distance calculation

@pmur
Copy link
Contributor Author

pmur commented Nov 18, 2022

@gopherbot please consider a backport to go1.19 and go1.18.

@gopherbot
Copy link

Backport issue(s) opened: #56833 (for 1.18), #56834 (for 1.19).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants