cmd/dist: restore GOARM=7 default for android/arm

Fixes the android/arm builder. Without it, the builder reported
unexpected stale targets during bootstrap:

https://build.golang.org/log/b951f1171be54cf4a12c2a0720ffaf07f8a11377

Tighten the GOARM=7 default in cmd/internal/objabi while here.

Change-Id: I944744910193e72e91bc37b5bf0783076b45e579
Reviewed-on: https://go-review.googlesource.com/c/go/+/273167
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Elias Naur <mail@eliasnaur.com>
diff --git a/src/cmd/dist/util.go b/src/cmd/dist/util.go
index 9b4f8d2..0a419e4 100644
--- a/src/cmd/dist/util.go
+++ b/src/cmd/dist/util.go
@@ -383,6 +383,12 @@
 }
 
 func xgetgoarm() string {
+	if goos == "android" {
+		// Assume all android devices have VFPv3.
+		// These ports are also mostly cross-compiled, so it makes little
+		// sense to auto-detect the setting.
+		return "7"
+	}
 	if gohostarch != "arm" || goos != gohostos {
 		// Conservative default for cross-compilation.
 		return "5"
diff --git a/src/cmd/internal/objabi/util.go b/src/cmd/internal/objabi/util.go
index d36e743..a73ab47 100644
--- a/src/cmd/internal/objabi/util.go
+++ b/src/cmd/internal/objabi/util.go
@@ -41,8 +41,8 @@
 
 func goarm() int {
 	def := defaultGOARM
-	if GOOS == "android" {
-		// Android devices always support GOARM=7.
+	if GOOS == "android" && GOARCH == "arm" {
+		// Android arm devices always support GOARM=7.
 		def = "7"
 	}
 	switch v := envOr("GOARM", def); v {