mirror of
https://github.com/golang/go
synced 2024-11-19 15:54:46 -07:00
cmd/go: -buildmode=pie forces external linking mode on all systems
The go tool assumed that -buildmode=pie implied internal linking on linux-amd64. However, that was changed by CL 36417 for issue #18968. Fixes #21452 Change-Id: I8ed13aea52959cc5c53223f4c41ba35329445545 Reviewed-on: https://go-review.googlesource.com/57231 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Avelino <t@avelino.xxx> Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
b1dc2c28a5
commit
eccd3ef526
@ -953,11 +953,12 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) *Package
|
||||
|
||||
if cfg.BuildContext.CgoEnabled && p.Name == "main" && !p.Goroot {
|
||||
// Currently build modes c-shared, pie (on systems that do not
|
||||
// support PIE with internal linking mode), plugin, and
|
||||
// -linkshared force external linking mode, as of course does
|
||||
// support PIE with internal linking mode (currently all
|
||||
// systems: issue #18968)), plugin, and -linkshared force
|
||||
// external linking mode, as of course does
|
||||
// -ldflags=-linkmode=external. External linking mode forces
|
||||
// an import of runtime/cgo.
|
||||
pieCgo := cfg.BuildBuildmode == "pie" && (cfg.BuildContext.GOOS != "linux" || cfg.BuildContext.GOARCH != "amd64")
|
||||
pieCgo := cfg.BuildBuildmode == "pie"
|
||||
linkmodeExternal := false
|
||||
for i, a := range cfg.BuildLdflags {
|
||||
if a == "-linkmode=external" {
|
||||
|
Loading…
Reference in New Issue
Block a user