82 lines
2.8 KiB
Diff
82 lines
2.8 KiB
Diff
|
diff --git a/misc/makerelease/makerelease.go b/misc/makerelease/makerelease.go
|
||
|
index 3b511b1..a46ebd8 100644
|
||
|
--- a/misc/makerelease/makerelease.go
|
||
|
+++ b/misc/makerelease/makerelease.go
|
||
|
@@ -65,9 +65,6 @@ const (
|
||
|
// These must be the command that cmd/go knows to install to $GOROOT/bin
|
||
|
// or $GOROOT/pkg/tool.
|
||
|
var toolPaths = []string{
|
||
|
- "golang.org/x/tools/cmd/cover",
|
||
|
- "golang.org/x/tools/cmd/godoc",
|
||
|
- "golang.org/x/tools/cmd/vet",
|
||
|
}
|
||
|
|
||
|
var preBuildCleanFiles = []string{
|
||
|
diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
|
||
|
index b6c61b4..2006bc2 100644
|
||
|
--- a/src/cmd/dist/build.c
|
||
|
+++ b/src/cmd/dist/build.c
|
||
|
@@ -210,7 +210,9 @@ init(void)
|
||
|
workdir = xworkdir();
|
||
|
xatexit(rmworkdir);
|
||
|
|
||
|
- bpathf(&b, "%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch);
|
||
|
+ xgetenv(&b, "GOTOOLDIR");
|
||
|
+ if (b.len == 0)
|
||
|
+ bpathf(&b, "%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch);
|
||
|
tooldir = btake(&b);
|
||
|
|
||
|
bfree(&b);
|
||
|
diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go
|
||
|
index b71feb7..8468ea8 100644
|
||
|
--- a/src/cmd/go/pkg.go
|
||
|
+++ b/src/cmd/go/pkg.go
|
||
|
@@ -401,9 +401,9 @@ var goTools = map[string]targetDir{
|
||
|
"cmd/pack": toTool,
|
||
|
"cmd/pprof": toTool,
|
||
|
"cmd/yacc": toTool,
|
||
|
- "golang.org/x/tools/cmd/cover": toTool,
|
||
|
- "golang.org/x/tools/cmd/godoc": toBin,
|
||
|
- "golang.org/x/tools/cmd/vet": toTool,
|
||
|
+ "nixos.org/x/tools/cmd/cover": toTool,
|
||
|
+ "nixos.org/x/tools/cmd/godoc": toBin,
|
||
|
+ "nixos.org/x/tools/cmd/vet": toTool,
|
||
|
"code.google.com/p/go.tools/cmd/cover": stalePath,
|
||
|
"code.google.com/p/go.tools/cmd/godoc": stalePath,
|
||
|
"code.google.com/p/go.tools/cmd/vet": stalePath,
|
||
|
diff --git a/src/go/build/build.go b/src/go/build/build.go
|
||
|
index 311ecb0..f151d8f 100644
|
||
|
--- a/src/go/build/build.go
|
||
|
+++ b/src/go/build/build.go
|
||
|
@@ -1367,7 +1367,7 @@ func init() {
|
||
|
}
|
||
|
|
||
|
// ToolDir is the directory containing build tools.
|
||
|
-var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
|
||
|
+var ToolDir = runtime.GOTOOLDIR()
|
||
|
|
||
|
// IsLocalImport reports whether the import path is
|
||
|
// a local import path, like ".", "..", "./foo", or "../foo".
|
||
|
diff --git a/src/runtime/extern.go b/src/runtime/extern.go
|
||
|
index 6cc5df8..9a9a964 100644
|
||
|
--- a/src/runtime/extern.go
|
||
|
+++ b/src/runtime/extern.go
|
||
|
@@ -152,6 +152,17 @@ func GOROOT() string {
|
||
|
return defaultGoroot
|
||
|
}
|
||
|
|
||
|
+// GOTOOLDIR returns the root of the Go tree.
|
||
|
+// It uses the GOTOOLDIR environment variable, if set,
|
||
|
+// or else the root used during the Go build.
|
||
|
+func GOTOOLDIR() string {
|
||
|
+ s := gogetenv("GOTOOLDIR")
|
||
|
+ if s != "" {
|
||
|
+ return s
|
||
|
+ }
|
||
|
+ return GOROOT() + "/pkg/tool/" + GOOS + "_" + GOARCH
|
||
|
+}
|
||
|
+
|
||
|
// Version returns the Go tree's version string.
|
||
|
// It is either the commit hash and date at the time of the build or,
|
||
|
// when possible, a release tag like "go1.3".
|