cmd/coordinator: support post-submit cross-compiled builds

This adds a boolean to flag a cross compiler config to always be
used for every build, not just when in staging or if it's a try-bot.

It's turned on for the arm5spacemonkey build machines since they take
about 27 minutes to run make.bash.

Fixes golang/go#20118

Change-Id: I13a398d1645a2b5f0c87c5fffc7933922ac1365e
Reviewed-on: https://go-review.googlesource.com/41755
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index 485f570..50d1f9c 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -1467,8 +1467,15 @@
 	if kubeErr != nil {
 		return nil
 	}
+	config := crossCompileConfigs[st.name]
+	if config == nil {
+		return nil
+	}
+	if config.AlwaysCrossCompile {
+		return config
+	}
 	if inStaging || st.isTry() {
-		return crossCompileConfigs[st.name]
+		return config
 	}
 	return nil
 }
@@ -1693,21 +1700,24 @@
 }
 
 type crossCompileConfig struct {
-	Buildlet    string
-	CCForTarget string
-	GOARM       string
+	Buildlet           string
+	CCForTarget        string
+	GOARM              string
+	AlwaysCrossCompile bool
 }
 
 var crossCompileConfigs = map[string]*crossCompileConfig{
 	"linux-arm": {
-		Buildlet:    "host-linux-armhf-cross",
-		CCForTarget: "arm-linux-gnueabihf-gcc",
-		GOARM:       "7",
+		Buildlet:           "host-linux-armhf-cross",
+		CCForTarget:        "arm-linux-gnueabihf-gcc",
+		GOARM:              "7",
+		AlwaysCrossCompile: false,
 	},
 	"linux-arm-arm5spacemonkey": {
-		Buildlet:    "host-linux-armel-cross",
-		CCForTarget: "arm-linux-gnueabi-gcc",
-		GOARM:       "5",
+		Buildlet:           "host-linux-armel-cross",
+		CCForTarget:        "arm-linux-gnueabi-gcc",
+		GOARM:              "5",
+		AlwaysCrossCompile: true,
 	},
 }