diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index e1aa9fcb31..382c4cd276 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -62,7 +62,8 @@ and test commands: print the commands but do not run them. -p n the number of builds that can be run in parallel. - The default is the number of CPUs available. + The default is the number of CPUs available, except + on darwin/arm which defaults to 1. -race enable data race detection. Supported only on linux/amd64, freebsd/amd64, darwin/amd64 and windows/amd64. @@ -117,6 +118,14 @@ func init() { addBuildFlags(cmdBuild) addBuildFlags(cmdInstall) + + if buildContext.GOOS == "darwin" && buildContext.GOARCH == "arm" { + // darwin/arm cannot run multiple tests simultaneously. + // Parallelism is limited in go_darwin_arm_exec, but + // also needs to be limited here so go test std does not + // timeout tests that waiting to run. + buildP = 1 + } } // Flags set by multiple commands.