Skip to content

Commit e87b064

Browse files
keyanBryan C. Mills
authored and
Bryan C. Mills
committed
cmd/go: add error for cross-compiled -race builds
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: cbf43c1 GitHub-Pull-Request: #38670 Reviewed-on: https://go-review.googlesource.com/c/go/+/230202 Reviewed-by: Bryan C. Mills <[email protected]>
1 parent 41f6388 commit e87b064

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/cmd/go/internal/work/init.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"fmt"
1717
"os"
1818
"path/filepath"
19+
"runtime"
1920
"strings"
2021
)
2122

@@ -84,7 +85,12 @@ func instrumentInit() {
8485
modeFlag := "-" + mode
8586

8687
if !cfg.BuildContext.CgoEnabled {
87-
fmt.Fprintf(os.Stderr, "go %s: %s requires cgo; enable cgo by setting CGO_ENABLED=1\n", flag.Args()[0], modeFlag)
88+
if runtime.GOOS != cfg.Goos || runtime.GOARCH != cfg.Goarch {
89+
fmt.Fprintf(os.Stderr, "go %s: %s requires cgo\n", flag.Args()[0], modeFlag)
90+
} else {
91+
fmt.Fprintf(os.Stderr, "go %s: %s requires cgo; enable cgo by setting CGO_ENABLED=1\n", flag.Args()[0], modeFlag)
92+
}
93+
8894
base.SetExitStatus(2)
8995
base.Exit()
9096
}

0 commit comments

Comments
 (0)