Currently we print a cryptic message if a C compiler doesn't exist.
This patch adds more graceful handling.
Fixes #44271
Change-Id: I44f16ef6eb2853fee22fa1d996e41ec6c9ee82f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/301249
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
"io"
"io/ioutil"
"os"
+ "os/exec"
"path/filepath"
"reflect"
"runtime"
p := newPackage(args[:i])
+ // We need a C compiler to be available. Check this.
+ gccName := p.gccBaseCmd()[0]
+ _, err := exec.LookPath(gccName)
+ if err != nil {
+ fatalf("C compiler %q not found: %v", gccName, err)
+ os.Exit(2)
+ }
+
// Record CGO_LDFLAGS from the environment for external linking.
if ldflags := os.Getenv("CGO_LDFLAGS"); ldflags != "" {
args, err := splitQuoted(ldflags)