aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/cfg/cfg.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2017-11-07 20:39:54 -0500
committerRuss Cox <rsc@golang.org>2017-11-09 15:03:49 +0000
commit98f1bfbb180b30e899b27ef5c5f53d16138dbd86 (patch)
tree30b74bffeee0375a7b39e9f16d1aac761ac97715 /src/cmd/go/internal/cfg/cfg.go
parentd8ee5d11e5d13398671346c8c4dff824754a2144 (diff)
downloadgo-98f1bfbb180b30e899b27ef5c5f53d16138dbd86.tar.gz
go-98f1bfbb180b30e899b27ef5c5f53d16138dbd86.zip
cmd/go: move cfg.ExternalLinkingForced to internal/load
It needs to refer to packages, so it can no longer be in cfg. No semantic changes here. Can now be unexported, so that was a net win anyway. Change-Id: I58bf6cdcd435e6e019291bb8dcd5d5b7f1ac03a3 Reviewed-on: https://go-review.googlesource.com/76550 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
Diffstat (limited to 'src/cmd/go/internal/cfg/cfg.go')
-rw-r--r--src/cmd/go/internal/cfg/cfg.go37
1 files changed, 0 insertions, 37 deletions
diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
index 5f93f39f90..ab20c20e2f 100644
--- a/src/cmd/go/internal/cfg/cfg.go
+++ b/src/cmd/go/internal/cfg/cfg.go
@@ -151,40 +151,3 @@ func isGOROOT(path string) bool {
}
return stat.IsDir()
}
-
-// ExternalLinkingForced reports whether external linking is being
-// forced even for programs that do not use cgo.
-func ExternalLinkingForced() bool {
- // Some targets must use external linking even inside GOROOT.
- switch BuildContext.GOOS {
- case "android":
- return true
- case "darwin":
- switch BuildContext.GOARCH {
- case "arm", "arm64":
- return true
- }
- }
-
- if !BuildContext.CgoEnabled {
- return false
- }
- // Currently build modes c-shared, pie (on systems that do not
- // 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 := BuildBuildmode == "pie"
- linkmodeExternal := false
- for i, a := range BuildLdflags {
- if a == "-linkmode=external" {
- linkmodeExternal = true
- }
- if a == "-linkmode" && i+1 < len(BuildLdflags) && BuildLdflags[i+1] == "external" {
- linkmodeExternal = true
- }
- }
-
- return BuildBuildmode == "c-shared" || BuildBuildmode == "plugin" || pieCgo || BuildLinkshared || linkmodeExternal
-}