]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: enable build cache always
authorRuss Cox <rsc@golang.org>
Wed, 11 Jul 2018 18:31:17 +0000 (14:31 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 12 Jul 2018 00:10:07 +0000 (00:10 +0000)
GOCACHE=off is not a reliable signal of user intent.

At startup the go command fills in an empty GOCACHE with the effective setting.
If $HOME is set, then GOCACHE ends up somewhere in $HOME/.cache.
But if $HOME is unset, then the go command sets GOCACHE=off explicitly.

That environment is used for invoking "go tool dist".

So if the machine has no $HOME, then go tool dist ends up with the cache
disabled even though the user was not trying to disable the cache.
This affects the linux-ppc64le builder, which appears to be unique
among builders in not having $HOME set. So that builder is running
with no build cache.

Now that there is a cmd/go test that needs the cache to be on,
the linux-ppc64le builder is failing.

In the next release we intend to force the use of the build cache
always. This CL is not doing that: it's only forcing the use of the
build cache during all.bash, which won't affect the majority of
our users (they run pre-build binary releases).

If this is a problem we can roll it back and fix the linux-ppc64le
builders some other way.

While we're here, print a few more useful variables in 'go tool dist env'
and sort the output.

Change-Id: I66548aa8990d0794cbc0f2069b739ab1834898dd
Reviewed-on: https://go-review.googlesource.com/123297
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/dist/build.go

index 2fdc4d3143cebcec4f5ac3b4f2d8c9b7d533f162..eed9866ce478eb41f711ddd264e4ef080e7ba08b 100644 (file)
@@ -219,10 +219,7 @@ func xinit() {
        // Use a build cache separate from the default user one.
        // Also one that will be wiped out during startup, so that
        // make.bash really does start from a clean slate.
-       // But if the user has specified no caching, don't cache.
-       if os.Getenv("GOCACHE") != "off" {
-               os.Setenv("GOCACHE", pathf("%s/pkg/obj/go-build", goroot))
-       }
+       os.Setenv("GOCACHE", pathf("%s/pkg/obj/go-build", goroot))
 
        // Make the environment more predictable.
        os.Setenv("LANG", "C")
@@ -1063,12 +1060,16 @@ func cmdenv() {
                format = "set %s=%s\r\n"
        }
 
-       xprintf(format, "GOROOT", goroot)
-       xprintf(format, "GOBIN", gobin)
        xprintf(format, "GOARCH", goarch)
-       xprintf(format, "GOOS", goos)
+       xprintf(format, "GOBIN", gobin)
+       xprintf(format, "GOCACHE", os.Getenv("GOCACHE"))
+       xprintf(format, "GODEBUG", os.Getenv("GODEBUG"))
        xprintf(format, "GOHOSTARCH", gohostarch)
        xprintf(format, "GOHOSTOS", gohostos)
+       xprintf(format, "GOOS", goos)
+       xprintf(format, "GOPROXY", os.Getenv("GOPROXY"))
+       xprintf(format, "GOROOT", goroot)
+       xprintf(format, "GOTMPDIR", os.Getenv("GOTMPDIR"))
        xprintf(format, "GOTOOLDIR", tooldir)
        if goarch == "arm" {
                xprintf(format, "GOARM", goarm)