dashboard, cmd/buildlet: re-add riscv64 buildlet and misc-compile trybot

This is a re-send of CL 216765, which was reverted in CL 217723
due to the misc-compile-other trybot being broken on linux/riscv64.

By now, the problem that was caught by the misc-compile-other trybot
has been fixed in CL 217777, so we can try again.

Fixes golang/go#36871
Fixes golang/go#37022

Change-Id: Id9e7d7f3e610b17a2d37a2216ab5d3eed139ee1e
Reviewed-on: https://go-review.googlesource.com/c/build/+/224580
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
diff --git a/cmd/buildlet/Makefile b/cmd/buildlet/Makefile
index 7258a0e..20cbb5b 100644
--- a/cmd/buildlet/Makefile
+++ b/cmd/buildlet/Makefile
@@ -35,7 +35,7 @@
 	GOOS=windows GOARCH=amd64 go install golang.org/x/build/cmd/buildlet
 
 # buildlet.all is compiles & uploads all targets.
-buildlet.all: FORCE buildlet.aix-ppc64 buildlet.darwin-amd64 buildlet.freebsd-amd64 buildlet.linux-amd64 buildlet.netbsd-386 buildlet.netbsd-amd64 buildlet.netbsd-arm buildlet.openbsd-amd64.go1.10 buildlet.openbsd-386.go1.10 buildlet.openbsd-amd64 buildlet.openbsd-386 buildlet.plan9-386 buildlet.windows-amd64 buildlet.windows-arm buildlet.linux-arm buildlet.linux-arm-arm5 buildlet.linux-arm64 buildlet.linux-mips buildlet.linux-mipsle buildlet.linux-mips64 buildlet.linux-mips64le buildlet.linux-ppc64 buildlet.linux-ppc64le buildlet.linux-s390x buildlet.solaris-amd64 buildlet.illumos-amd64
+buildlet.all: FORCE buildlet.aix-ppc64 buildlet.darwin-amd64 buildlet.freebsd-amd64 buildlet.linux-amd64 buildlet.netbsd-386 buildlet.netbsd-amd64 buildlet.netbsd-arm buildlet.openbsd-amd64.go1.10 buildlet.openbsd-386.go1.10 buildlet.openbsd-amd64 buildlet.openbsd-386 buildlet.plan9-386 buildlet.windows-amd64 buildlet.windows-arm buildlet.linux-arm buildlet.linux-arm-arm5 buildlet.linux-arm64 buildlet.linux-riscv64 buildlet.linux-mips buildlet.linux-mipsle buildlet.linux-mips64 buildlet.linux-mips64le buildlet.linux-ppc64 buildlet.linux-ppc64le buildlet.linux-s390x buildlet.solaris-amd64 buildlet.illumos-amd64
 	echo "done"
 
 buildlet.aix-ppc64: FORCE
@@ -136,6 +136,10 @@
 	go install golang.org/x/build/cmd/upload
 	upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet --public --cacheable=false go-builder-data/$@
 
+buildlet.linux-riscv64: FORCE
+	go install golang.org/x/build/cmd/upload
+	upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet --go=gotip --public --cacheable=false go-builder-data/$@
+
 buildlet.linux-mips: FORCE
 	go install golang.org/x/build/cmd/upload
 	upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet --public --cacheable=false go-builder-data/$@
diff --git a/dashboard/builders.go b/dashboard/builders.go
index df927f8..fe8644f 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -1542,8 +1542,8 @@
 	addMiscCompile("-netbsd", "^netbsd-")                    // 4: amd64, 386, arm, arm64
 	addMiscCompile("-openbsd", "^openbsd-")                  // 4: amd64, 386, arm, arm64
 
-	// And 3 that don't fit above:
-	addMiscCompile("-other", "^(windows-arm|linux-s390x|dragonfly-amd64)$")
+	// And 4 that don't fit above:
+	addMiscCompile("-other", "^(windows-arm|linux-s390x|linux-riscv64|dragonfly-amd64)$")
 	// TODO: Issue 25963, get the misc-compile trybots for
 	// subrepos too, so "mobile" can at least be included as a
 	// misc-compile for ^android- and ^darwin-arm.
diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go
index 5f67bfd..ce2133d 100644
--- a/dashboard/builders_test.go
+++ b/dashboard/builders_test.go
@@ -786,9 +786,6 @@
 			// up enough for e.g. compiling android-386
 			// from linux-amd64. (Issue #35596 too)
 			return
-		} else if goarch == "riscv64" {
-			// TODO(golang.org/issue/36871): Add a misc-compile trybot (or a real trybot).
-			return
 		}
 		goosArch := goos + "-" + goarch
 		if done[goosArch] {