cmd/dist: add openbsd/ppc64 as a known GOOS/GOARCH

Also map uname output containing powerpc64 to ppc64 on openbsd.

Updates #56001

Change-Id: I6a4470cb0e5d6c6940d5268a6a06d23430c7859a
Reviewed-on: https://go-review.googlesource.com/c/go/+/475635
Reviewed-by: Eric Grosse <grosse@gmail.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
index 4dc14b9..448cf0e 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -1712,6 +1712,7 @@
 	"openbsd/arm":     true,
 	"openbsd/arm64":   true,
 	"openbsd/mips64":  true,
+	"openbsd/ppc64":   false,
 	"plan9/386":       false,
 	"plan9/amd64":     false,
 	"plan9/arm":       false,
diff --git a/src/cmd/dist/main.go b/src/cmd/dist/main.go
index 31a348e..5f3e5bc9 100644
--- a/src/cmd/dist/main.go
+++ b/src/cmd/dist/main.go
@@ -138,6 +138,8 @@
 			if strings.Contains(run("", CheckExit, "uname", "-p"), "riscv64") {
 				gohostarch = "riscv64"
 			}
+		case gohostos == "openbsd" && strings.Contains(out, "powerpc64"):
+			gohostarch = "ppc64"
 		case gohostos == "openbsd":
 			if strings.Contains(run("", CheckExit, "uname", "-p"), "mips64") {
 				gohostarch = "mips64"