diff options
author | Cherry Zhang <cherryyz@google.com> | 2020-10-11 16:27:25 -0400 |
---|---|---|
committer | Cherry Zhang <cherryyz@google.com> | 2020-10-12 22:37:15 +0000 |
commit | 6c0135d3772e710328c751fbc704927931f129ca (patch) | |
tree | 4d3a5ca816d1a853ef86b10894ad3943a1e48d38 /src/cmd/go/internal/load/pkg.go | |
parent | 027367ac50be74ea6237ef88188365125acec8d7 (diff) | |
download | go-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.go | 3 |
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) |