internal/version: update PWD in the environment for commands that set Dir

Updates golang/go#50599.

Change-Id: I5702de0d6e23fa2ae1a03b0f47464170d4b691c0
Reviewed-on: https://go-review.googlesource.com/c/dl/+/380503
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/internal/version/gotip.go b/internal/version/gotip.go
index 61515a1..4048422 100644
--- a/internal/version/gotip.go
+++ b/internal/version/gotip.go
@@ -57,11 +57,13 @@
 		cmd.Stdout = os.Stdout
 		cmd.Stderr = os.Stderr
 		cmd.Dir = root
+		cmd.Env = dedupEnv(caseInsensitiveEnv, append(os.Environ(), "PWD="+cmd.Dir))
 		return cmd.Run()
 	}
 	gitOutput := func(args ...string) ([]byte, error) {
 		cmd := exec.Command("git", args...)
 		cmd.Dir = root
+		cmd.Env = dedupEnv(caseInsensitiveEnv, append(os.Environ(), "PWD="+cmd.Dir))
 		return cmd.Output()
 	}
 
@@ -154,7 +156,11 @@
 			return fmt.Errorf("failed to detect an existing go installation for bootstrap: %v", err)
 		}
 		cmd.Env = append(os.Environ(), "GOROOT_BOOTSTRAP="+strings.TrimSpace(string(goroot)))
+	} else {
+		cmd.Env = os.Environ()
 	}
+	cmd.Env = dedupEnv(caseInsensitiveEnv, append(cmd.Env, "PWD="+cmd.Dir))
+
 	if err := cmd.Run(); err != nil {
 		return fmt.Errorf("failed to build go: %v", err)
 	}