This undoes the code (but not test) change from CL 451219, which turns
out to be slightly harmful on Windows (because it doesn't resolve the
file extension for an absolute CC path) and unnecessary elsewhere
(because calling LookPath on a fully-resolved executable path already
stats¹ that path before returning it).
¹https://cs.opensource.google/go/go/+/refs/tags/go1.19.3:src/os/exec/lp_unix.go;l=46;drc=
027855e8d86f461b50946b006ea032d4b4a7d817
Change-Id: If8c5ba59cbcc9fc289e9325afb9ccdadf374b102
Reviewed-on: https://go-review.googlesource.com/c/go/+/452777
Reviewed-by: Michael Matloob <matloob@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
if ctxt.CgoEnabled {
if os.Getenv("CC") == "" {
cc := DefaultCC(ctxt.GOOS, ctxt.GOARCH)
- if filepath.IsAbs(cc) {
- if _, err := os.Stat(cc); os.IsNotExist(err) {
- // The default CC is an absolute path that doesn't exist.
- // (Perhaps make.bash was run on a system with a C compiler
- // installed, and the current system doesn't have it there.)
- ctxt.CgoEnabled = false
- }
- } else if _, err := exec.LookPath(cc); err != nil {
+ if _, err := exec.LookPath(cc); err != nil {
ctxt.CgoEnabled = false
}
}
GOARCH, _ := s.LookupEnv("GOARCH")
defaultCC := cfg.DefaultCC(GOOS, GOARCH)
if filepath.IsAbs(defaultCC) {
- if _, err := os.Stat(defaultCC); err == nil {
+ if _, err := exec.LookPath(defaultCC); err == nil {
return true, nil
}
}