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".