]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: add better error message when gccgo is missing
authorAlexander Menzhinsky <amenzhinsky@gmail.com>
Mon, 10 Apr 2017 18:12:51 +0000 (13:12 -0500)
committerIan Lance Taylor <iant@golang.org>
Wed, 12 Apr 2017 04:49:58 +0000 (04:49 +0000)
Fixes #19628

Change-Id: I19baf694c66aaca8e0d95297c97aacb40db24c47
Reviewed-on: https://go-review.googlesource.com/40250
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

src/cmd/go/internal/work/build.go

index 870e4d7762d2b1c111abb3ca1c83c63a863e1086..462f495b5f5054218ad4b38c8d751caa5da78719 100644 (file)
@@ -2499,23 +2499,34 @@ func (gcToolchain) cc(b *Builder, p *load.Package, objdir, ofile, cfile string)
 type gccgoToolchain struct{}
 
 var GccgoName, GccgoBin string
+var gccgoErr error
 
 func init() {
        GccgoName = os.Getenv("GCCGO")
        if GccgoName == "" {
                GccgoName = "gccgo"
        }
-       GccgoBin, _ = exec.LookPath(GccgoName)
+       GccgoBin, gccgoErr = exec.LookPath(GccgoName)
 }
 
 func (gccgoToolchain) compiler() string {
+       checkGccgoBin()
        return GccgoBin
 }
 
 func (gccgoToolchain) linker() string {
+       checkGccgoBin()
        return GccgoBin
 }
 
+func checkGccgoBin() {
+       if gccgoErr == nil {
+               return
+       }
+       fmt.Fprintf(os.Stderr, "cmd/go: gccgo: %s\n", gccgoErr)
+       os.Exit(2)
+}
+
 func (tools gccgoToolchain) gc(b *Builder, p *load.Package, archive, obj string, asmhdr bool, importArgs []string, gofiles []string) (ofile string, output []byte, err error) {
        out := "_go_.o"
        ofile = obj + out