aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/load/pkg.go
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2019-06-19 17:25:27 -0400
committerJay Conrod <jayconrod@google.com>2019-06-19 23:17:25 +0000
commit71a6a44428feb844b9dd3c4c8e16be8dee2fd8fa (patch)
treefba3d5a121e8f47145d4fb790d97dbc397de6ad4 /src/cmd/go/internal/load/pkg.go
parent832959ffcc1d99f8364e75b02d433cb72de63fc1 (diff)
downloadgo-71a6a44428feb844b9dd3c4c8e16be8dee2fd8fa.tar.gz
go-71a6a44428feb844b9dd3c4c8e16be8dee2fd8fa.zip
cmd/go: install binaries in cmd/ in $GOROOT/bin instead of $GOBIN
This was caused by CL 167748, which removed a special case for command line arguments starting with "cmd/". This CL restores the behavior from go1.12. Fixes #32674 Change-Id: I72180d11fb0261ef0af9632e512bd9c03481b6c0 Reviewed-on: https://go-review.googlesource.com/c/go/+/183058 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/load/pkg.go')
-rw-r--r--src/cmd/go/internal/load/pkg.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index b1e9fc9ff5..35b0790bc9 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -662,11 +662,17 @@ func loadPackageData(path, parentPath, parentDir, parentRoot string, parentIsStd
data.p, data.err = cfg.BuildContext.Import(r.path, parentDir, buildMode)
}
data.p.ImportPath = r.path
- if cfg.GOBIN != "" {
- data.p.BinDir = cfg.GOBIN
- } else if cfg.ModulesEnabled && !data.p.Goroot {
- data.p.BinDir = ModBinDir()
+
+ // Set data.p.BinDir in cases where go/build.Context.Import
+ // may give us a path we don't want.
+ if !data.p.Goroot {
+ if cfg.GOBIN != "" {
+ data.p.BinDir = cfg.GOBIN
+ } else if cfg.ModulesEnabled {
+ data.p.BinDir = ModBinDir()
+ }
}
+
if !cfg.ModulesEnabled && data.err == nil &&
data.p.ImportComment != "" && data.p.ImportComment != path &&
!strings.Contains(path, "/vendor/") && !strings.HasPrefix(path, "vendor/") {