]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: add error for cross-compiled -race builds
authorKeyan Pishdadian <kpishdadian@gmail.com>
Tue, 28 Apr 2020 20:06:29 +0000 (20:06 +0000)
committerBryan C. Mills <bcmills@google.com>
Thu, 30 Apr 2020 04:02:34 +0000 (04:02 +0000)
Race builds require C dependencies, but cross-compiled cgo builds are
not always possible, so don't suggest enabling CGO in those cases.

Fixes #37021

Change-Id: I1fd675efc9cef958a926bd63eac8e6858bc59d0a
GitHub-Last-Rev: cbf43c1bbb0f209474cc323b3813cf270a2ba0a8
GitHub-Pull-Request: golang/go#38670
Reviewed-on: https://go-review.googlesource.com/c/go/+/230202
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/work/init.go

index 473bd1a31b8edeea7d6818f916c3b60896904a9b..921a54f6f06e5972eea78f985f4a76cef1c0bc96 100644 (file)
@@ -16,6 +16,7 @@ import (
        "fmt"
        "os"
        "path/filepath"
+       "runtime"
        "strings"
 )
 
@@ -84,7 +85,12 @@ func instrumentInit() {
        modeFlag := "-" + mode
 
        if !cfg.BuildContext.CgoEnabled {
-               fmt.Fprintf(os.Stderr, "go %s: %s requires cgo; enable cgo by setting CGO_ENABLED=1\n", flag.Args()[0], modeFlag)
+               if runtime.GOOS != cfg.Goos || runtime.GOARCH != cfg.Goarch {
+                       fmt.Fprintf(os.Stderr, "go %s: %s requires cgo\n", flag.Args()[0], modeFlag)
+               } else {
+                       fmt.Fprintf(os.Stderr, "go %s: %s requires cgo; enable cgo by setting CGO_ENABLED=1\n", flag.Args()[0], modeFlag)
+               }
+
                base.SetExitStatus(2)
                base.Exit()
        }