Commit 6e7bc021 authored by Jay Conrod's avatar Jay Conrod

cmd/dist: set GOPATH to internal directory during build

Since GO111MODULE=on by default, the Go command needs a location for
the module cache, even though it doesn't need to be written when
building std and cmd. If GOROOT is checked out to $HOME/go, which is
also the default location for GOPATH, this causes unnecessary problems
late in the build.

With this change, dist sets GOPATH to $GOROOT/pkg/obj/go-path. This is
next to the temporary GOCACHE, $GOROOT/pkg/obj/go-build.

Fixes #30960

Change-Id: I60771ee7f7c67ced1d2dc7c66b5885703fad1b63
Reviewed-on: https://go-review.googlesource.com/c/go/+/168697
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 24f846e2
...@@ -235,6 +235,13 @@ func xinit() { ...@@ -235,6 +235,13 @@ func xinit() {
// make.bash really does start from a clean slate. // make.bash really does start from a clean slate.
os.Setenv("GOCACHE", pathf("%s/pkg/obj/go-build", goroot)) os.Setenv("GOCACHE", pathf("%s/pkg/obj/go-build", goroot))
// Set GOPATH to an internal directory. We shouldn't actually
// need to store files here, since the toolchain won't
// depend on modules outside of vendor directories, but if
// GOPATH points somewhere else (e.g., to GOROOT), the
// go tool may complain.
os.Setenv("GOPATH", pathf("%s/pkg/obj/gopath", goroot))
// Make the environment more predictable. // Make the environment more predictable.
os.Setenv("LANG", "C") os.Setenv("LANG", "C")
os.Setenv("LANGUAGE", "en_US.UTF8") os.Setenv("LANGUAGE", "en_US.UTF8")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment