]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix the DefaultCC check if CC is an absolute file missing an extension on...
authorBryan C. Mills <bcmills@google.com>
Tue, 22 Nov 2022 20:31:06 +0000 (15:31 -0500)
committerGopher Robot <gobot@golang.org>
Tue, 22 Nov 2022 21:00:09 +0000 (21:00 +0000)
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>

src/cmd/go/internal/cfg/cfg.go
src/cmd/go/scriptconds_test.go

index f71fcdaeb99ade0c2971a36bf557ae346d91ebd1..3257140515030b593b5b1f0e57c1dd724ded9a72 100644 (file)
@@ -159,14 +159,7 @@ func defaultContext() build.Context {
                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
                                }
                        }
index 2717dbb4ae53dfa14acef7b19e9c6ecc9a61f7e0..516375021a28fd89245baca1008b2c454a79bfa1 100644 (file)
@@ -62,7 +62,7 @@ func defaultCCIsAbsolute(s *script.State) (bool, error) {
        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
                }
        }