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: default to internal linking mode for PIE #35545

Closed
cherrymui opened this issue Nov 12, 2019 · 3 comments
Closed

cmd/link: default to internal linking mode for PIE #35545

cherrymui opened this issue Nov 12, 2019 · 3 comments
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@cherrymui
Copy link
Member

When using -buildmode=pie, we used to default to internal linking mode. Then we forced external linking because internal linking was found broken. Then we fixed internal linking, but still default to external linking.

As far as I know, internal linking PIE works reasonably well, at least on Linux/AMD64 and Linux/ARM64. We may want to change the default back to internal linking mode.

@cherrymui cherrymui added this to the Go1.15 milestone Nov 12, 2019
@andybons andybons added the NeedsFix The path to resolution is known, but the work has not been done. label Nov 13, 2019
@gopherbot
Copy link

Change https://golang.org/cl/207877 mentions this issue: cmd/link: Revert -buildmode=pie to internal linking

@prattmic
Copy link
Member

prattmic commented Dec 6, 2019

I saw this after filing #36028. I don't think internal linking should be enabled PIE until that is fixed, unless I'm mistaking something and it's not a common problem.

Regardless, I just sent http://golang.org/cl/210181 to fix that issue.

@gopherbot
Copy link

Change https://golang.org/cl/220654 mentions this issue: cmd/link: improve gap detection in TestPIESize

gopherbot pushed a commit that referenced this issue Feb 25, 2020
In CL 210180 we detect gaps between PT_LOAD segments and subtract
them from size calculation. The code there only works when
PT_LOAD segments are next to each other. But it is possible that
there are other segments in between (e.g. a GNU_RELRO segment).
Relax the gap detection to count gaps between PT_LOAD segments
regardless of whether they are next to each other.

Updates #36023.
Updates #35545.

Change-Id: I8b94506359fa649a4478acc742d86d4b16022dbc
Reviewed-on: https://go-review.googlesource.com/c/go/+/220654
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@golang golang locked and limited conversation to collaborators Feb 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

4 participants