aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/dist
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2023-06-22 11:04:45 -0400
committerGopher Robot <gobot@golang.org>2023-06-22 19:44:52 +0000
commitf8616b84849f089635a041d657da6f5cced790e0 (patch)
treeb12cb4fdbb593733d49f5a3654ac6683b0beecf2 /src/cmd/dist
parent51885c1fa2eff36c421d6669816f971b54b63a33 (diff)
downloadgo-f8616b84849f089635a041d657da6f5cced790e0.tar.gz
go-f8616b84849f089635a041d657da6f5cced790e0.zip
internal/platform,cmd/dist: export the list of supported platforms
Also switch internal/platform to commit the generated code instead of regenerating it in cmd/dist. Nothing in the generated code depends on the target configuration, and committing the source file makes it more amenable to searching and indexing (particularly on https://cs.opensource.google/go/go). For #60939. Change-Id: I9133dfd5129b3c4d7457267589dfac5e7ecbef65 Reviewed-on: https://go-review.googlesource.com/c/go/+/505175 TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/dist')
-rw-r--r--src/cmd/dist/build.go9
-rw-r--r--src/cmd/dist/buildruntime.go23
-rw-r--r--src/cmd/dist/buildtool.go1
-rw-r--r--src/cmd/dist/main.go16
4 files changed, 14 insertions, 35 deletions
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
index 4b77ed36f7..8973a87168 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -631,7 +631,6 @@ var gentab = []struct {
}{
{"go/build", "zcgo.go", mkzcgo},
{"cmd/go/internal/cfg", "zdefaultcc.go", mkzdefaultcc},
- {"internal/platform", "zosarch.go", mkzosarch},
{"runtime/internal/sys", "zversion.go", mkzversion},
{"time/tzdata", "zzipdata.go", mktzdata},
}
@@ -1899,11 +1898,12 @@ func cmdversion() {
// cmdlist lists all supported platforms.
func cmdlist() {
jsonFlag := flag.Bool("json", false, "produce JSON output")
+ brokenFlag := flag.Bool("broken", false, "include broken ports")
xflagparse(0)
var plats []string
for p := range cgoEnabled {
- if broken[p] {
+ if broken[p] && !*brokenFlag {
continue
}
plats = append(plats, p)
@@ -1922,6 +1922,7 @@ func cmdlist() {
GOARCH string
CgoSupported bool
FirstClass bool
+ Broken bool `json:",omitempty"`
}
var results []jsonResult
for _, p := range plats {
@@ -1930,7 +1931,9 @@ func cmdlist() {
GOOS: fields[0],
GOARCH: fields[1],
CgoSupported: cgoEnabled[p],
- FirstClass: firstClass[p]})
+ FirstClass: firstClass[p],
+ Broken: broken[p],
+ })
}
out, err := json.MarshalIndent(results, "", "\t")
if err != nil {
diff --git a/src/cmd/dist/buildruntime.go b/src/cmd/dist/buildruntime.go
index b3fe8b02d8..1de78f0fdb 100644
--- a/src/cmd/dist/buildruntime.go
+++ b/src/cmd/dist/buildruntime.go
@@ -6,7 +6,6 @@ package main
import (
"fmt"
- "sort"
"strings"
)
@@ -80,25 +79,3 @@ func mkobjabi(file string) {
writefile(buf.String(), file, writeSkipSame)
}
-
-// mkzosarch writes zosarch.go for internal/platform.
-func mkzosarch(dir, file string) {
- // sort for deterministic file contents.
- var list []string
- for plat := range cgoEnabled {
- list = append(list, plat)
- }
- sort.Strings(list)
-
- var buf strings.Builder
- writeHeader(&buf)
- fmt.Fprintf(&buf, "package platform\n")
- fmt.Fprintln(&buf)
- fmt.Fprintf(&buf, "var osArchSupportsCgo = map[string]bool{\n")
- for _, plat := range list {
- fmt.Fprintf(&buf, "\t\t%s: %v,\n", quote(plat), cgoEnabled[plat])
- }
- fmt.Fprintf(&buf, "}\n")
-
- writefile(buf.String(), file, writeSkipSame)
-}
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index 5e026f7bed..e638d51af7 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -126,7 +126,6 @@ func bootstrapBuildTools() {
mkbuildcfg(pathf("%s/src/internal/buildcfg/zbootstrap.go", goroot))
mkobjabi(pathf("%s/src/cmd/internal/objabi/zbootstrap.go", goroot))
- mkzosarch("", pathf("%s/src/internal/platform/zosarch.go", goroot))
// Use $GOROOT/pkg/bootstrap as the bootstrap workspace root.
// We use a subdirectory of $GOROOT/pkg because that's the
diff --git a/src/cmd/dist/main.go b/src/cmd/dist/main.go
index 5f3e5bc9bd..f3425a9dd8 100644
--- a/src/cmd/dist/main.go
+++ b/src/cmd/dist/main.go
@@ -16,14 +16,14 @@ func usage() {
xprintf(`usage: go tool dist [command]
Commands are:
-banner print installation banner
-bootstrap rebuild everything
-clean deletes all built files
-env [-p] print environment (-p: include $PATH)
-install [dir] install individual directory
-list [-json] list all supported platforms
-test [-h] run Go test(s)
-version print Go version
+banner print installation banner
+bootstrap rebuild everything
+clean deletes all built files
+env [-p] print environment (-p: include $PATH)
+install [dir] install individual directory
+list [-json] [-broken] list all supported platforms
+test [-h] run Go test(s)
+version print Go version
All commands take -v flags to emit extra information.
`)