internal/version: prefix PATH with $GOROOT/bin

Adding $GOROOT/bin to $PATH ensures that the appropriate version of the
go/gofmt commands are run when using a go command wrapper generated by
x/build/version.

Fixes golang/go#28103

Change-Id: Ia72fb936631a3720cb15fcf8988dcec5f57a202a
Reviewed-on: https://go-review.googlesource.com/c/143545
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/version/version.go b/internal/version/version.go
index 4d0bf3f..efcc257 100644
--- a/internal/version/version.go
+++ b/internal/version/version.go
@@ -57,7 +57,12 @@
 	cmd.Stdin = os.Stdin
 	cmd.Stdout = os.Stdout
 	cmd.Stderr = os.Stderr
-	cmd.Env = envutil.Dedup(caseInsensitiveEnv, append(os.Environ(), "GOROOT="+root))
+
+	newPath := filepath.Join(root, "bin")
+	if p := os.Getenv("PATH"); p != "" {
+		newPath += string(filepath.ListSeparator) + p
+	}
+	cmd.Env = envutil.Dedup(caseInsensitiveEnv, append(os.Environ(), "GOROOT="+root, "PATH="+newPath))
 	if err := cmd.Run(); err != nil {
 		// TODO: return the same exit status maybe.
 		os.Exit(1)