aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/load/pkg.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2020-10-11 16:27:25 -0400
committerCherry Zhang <cherryyz@google.com>2020-10-12 22:37:15 +0000
commit6c0135d3772e710328c751fbc704927931f129ca (patch)
tree4d3a5ca816d1a853ef86b10894ad3943a1e48d38 /src/cmd/go/internal/load/pkg.go
parent027367ac50be74ea6237ef88188365125acec8d7 (diff)
downloadgo-6c0135d3772e710328c751fbc704927931f129ca.tar.gz
go-6c0135d3772e710328c751fbc704927931f129ca.zip
cmd/go: don't always link in cgo for PIE
Internal linking for PIE is now supported and enabled by default on some platforms, for which cgo is not needed. Don't always bring in cgo. Change-Id: I043ed436f0e6a3acbcc53ec543f06e193d614b36 Reviewed-on: https://go-review.googlesource.com/c/go/+/261498 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/cmd/go/internal/load/pkg.go')
-rw-r--r--src/cmd/go/internal/load/pkg.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index 5b3c2f0ff2..db2434260f 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -33,6 +33,7 @@ import (
"cmd/go/internal/search"
"cmd/go/internal/str"
"cmd/go/internal/trace"
+ "cmd/internal/sys"
)
var IgnoreImports bool // control whether we ignore imports in packages
@@ -1968,7 +1969,7 @@ func externalLinkingForced(p *Package) bool {
// external linking mode, as of course does
// -ldflags=-linkmode=external. External linking mode forces
// an import of runtime/cgo.
- pieCgo := cfg.BuildBuildmode == "pie"
+ pieCgo := cfg.BuildBuildmode == "pie" && !sys.InternalLinkPIESupported(cfg.BuildContext.GOOS, cfg.BuildContext.GOARCH)
linkmodeExternal := false
if p != nil {
ldflags := BuildLdflags.For(p)