cmd/go: adjust PATH
when go run
/go generate
runs the built binary
#68005
Milestone
PATH
when go run
/go generate
runs the built binary
#68005
Go version
go version go1.22.0 darwin/amd64
Output of
go env
in your module/workspace:What did you do?
What did you see happen?
Since my local version is go1.21.9, but my go.mod requires go1.22.0+,
toolchain switch occurs when running
go run .
. During the toolchain switchthe go command sets
GOROOT
so the switched go command can choosethe toolchains correctly.
When
go run
executes the compiled binary, thisGOROOT
is left behind.But the PATH is unchanged.
This can be potentially problematic, if the binary invokes
go install mod@ver
, or runsgo build
outside the current module.In my specific case, /usr/local/go/bin/go is go1.21.9, but
GOROOT
is go1.22.0 root.The
go install
orgo generate
program will fail to run due to this mismatched binary/GOROOT pair.@rsc said 'go test' handles this problem by adjusting
PATH
, too.We should do the same for
go run
,go generate
, ...What did you expect to see?
Subprocess can pick matching
go
binary andGOROOT
.The text was updated successfully, but these errors were encountered: