mirror of
https://github.com/golang/go
synced 2024-11-23 22:50:05 -07:00
cmd/go: fix the DefaultCC check if CC is an absolute file missing an extension on Windows
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>
This commit is contained in:
parent
bb917bd1b2
commit
1fbfc2f6eb
@ -159,14 +159,7 @@ func defaultContext() build.Context {
|
|||||||
if ctxt.CgoEnabled {
|
if ctxt.CgoEnabled {
|
||||||
if os.Getenv("CC") == "" {
|
if os.Getenv("CC") == "" {
|
||||||
cc := DefaultCC(ctxt.GOOS, ctxt.GOARCH)
|
cc := DefaultCC(ctxt.GOOS, ctxt.GOARCH)
|
||||||
if filepath.IsAbs(cc) {
|
if _, err := exec.LookPath(cc); err != nil {
|
||||||
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 {
|
|
||||||
ctxt.CgoEnabled = false
|
ctxt.CgoEnabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ func defaultCCIsAbsolute(s *script.State) (bool, error) {
|
|||||||
GOARCH, _ := s.LookupEnv("GOARCH")
|
GOARCH, _ := s.LookupEnv("GOARCH")
|
||||||
defaultCC := cfg.DefaultCC(GOOS, GOARCH)
|
defaultCC := cfg.DefaultCC(GOOS, GOARCH)
|
||||||
if filepath.IsAbs(defaultCC) {
|
if filepath.IsAbs(defaultCC) {
|
||||||
if _, err := os.Stat(defaultCC); err == nil {
|
if _, err := exec.LookPath(defaultCC); err == nil {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user