aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2021-06-16 20:14:22 +0000
committerMichael Knyszek <mknyszek@google.com>2021-06-17 18:54:38 +0000
commit122f5e16d690bd14ae46e9cc7e37c0c84fdc2be8 (patch)
tree6ae81d8dbe8c10c841c48a8d3d84f5b37d7f928c /src
parent804ecc2581caf33ae347d6a1ce67436d1f74e93b (diff)
downloadgo-122f5e16d690bd14ae46e9cc7e37c0c84fdc2be8.tar.xz
[dev.typeparams] internal/goarch,internal/goos: explode runtime/internal/sys into pieces
This change extracts the GOOS and GOARCH specific constants from runtime/internal/sys into packages that are available to the entire standard library. This change does not yet update the runtime and associated packages to use them, and instead adds constants to runtime/internal/sys to forward the constants defined by these new packages. Change-Id: I14d574b8d7bfe599ad25da29dc1b39716e35a734 Reviewed-on: https://go-review.googlesource.com/c/go/+/328336 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/go/internal/work/gc.go19
-rw-r--r--src/go/build/deps_test.go6
-rw-r--r--src/internal/goarch/gengoarch.go59
-rw-r--r--src/internal/goarch/goarch.go (renamed from src/runtime/internal/sys/arch.go)14
-rw-r--r--src/internal/goarch/goarch_386.go (renamed from src/runtime/internal/sys/arch_386.go)2
-rw-r--r--src/internal/goarch/goarch_amd64.go (renamed from src/runtime/internal/sys/arch_amd64.go)2
-rw-r--r--src/internal/goarch/goarch_arm.go (renamed from src/runtime/internal/sys/arch_arm.go)2
-rw-r--r--src/internal/goarch/goarch_arm64.go (renamed from src/runtime/internal/sys/arch_arm64.go)2
-rw-r--r--src/internal/goarch/goarch_mips.go (renamed from src/runtime/internal/sys/arch_mips.go)2
-rw-r--r--src/internal/goarch/goarch_mips64.go (renamed from src/runtime/internal/sys/arch_mips64le.go)2
-rw-r--r--src/internal/goarch/goarch_mips64le.go (renamed from src/runtime/internal/sys/arch_mips64.go)2
-rw-r--r--src/internal/goarch/goarch_mipsle.go (renamed from src/runtime/internal/sys/arch_mipsle.go)2
-rw-r--r--src/internal/goarch/goarch_ppc64.go (renamed from src/runtime/internal/sys/arch_ppc64.go)2
-rw-r--r--src/internal/goarch/goarch_ppc64le.go (renamed from src/runtime/internal/sys/arch_ppc64le.go)2
-rw-r--r--src/internal/goarch/goarch_riscv64.go (renamed from src/runtime/internal/sys/arch_riscv64.go)2
-rw-r--r--src/internal/goarch/goarch_s390x.go (renamed from src/runtime/internal/sys/arch_s390x.go)2
-rw-r--r--src/internal/goarch/goarch_wasm.go (renamed from src/runtime/internal/sys/arch_wasm.go)2
-rw-r--r--src/internal/goarch/zgoarch_386.go (renamed from src/runtime/internal/sys/zgoarch_386.go)4
-rw-r--r--src/internal/goarch/zgoarch_amd64.go (renamed from src/runtime/internal/sys/zgoarch_amd64.go)4
-rw-r--r--src/internal/goarch/zgoarch_arm.go (renamed from src/runtime/internal/sys/zgoarch_arm.go)4
-rw-r--r--src/internal/goarch/zgoarch_arm64.go (renamed from src/runtime/internal/sys/zgoarch_arm64.go)4
-rw-r--r--src/internal/goarch/zgoarch_arm64be.go (renamed from src/runtime/internal/sys/zgoarch_arm64be.go)4
-rw-r--r--src/internal/goarch/zgoarch_armbe.go (renamed from src/runtime/internal/sys/zgoarch_armbe.go)4
-rw-r--r--src/internal/goarch/zgoarch_mips.go (renamed from src/runtime/internal/sys/zgoarch_mips.go)4
-rw-r--r--src/internal/goarch/zgoarch_mips64.go (renamed from src/runtime/internal/sys/zgoarch_mips64.go)4
-rw-r--r--src/internal/goarch/zgoarch_mips64le.go (renamed from src/runtime/internal/sys/zgoarch_mips64le.go)4
-rw-r--r--src/internal/goarch/zgoarch_mips64p32.go (renamed from src/runtime/internal/sys/zgoarch_mips64p32.go)4
-rw-r--r--src/internal/goarch/zgoarch_mips64p32le.go (renamed from src/runtime/internal/sys/zgoarch_mips64p32le.go)4
-rw-r--r--src/internal/goarch/zgoarch_mipsle.go (renamed from src/runtime/internal/sys/zgoarch_mipsle.go)4
-rw-r--r--src/internal/goarch/zgoarch_ppc.go (renamed from src/runtime/internal/sys/zgoarch_ppc.go)4
-rw-r--r--src/internal/goarch/zgoarch_ppc64.go (renamed from src/runtime/internal/sys/zgoarch_ppc64.go)4
-rw-r--r--src/internal/goarch/zgoarch_ppc64le.go (renamed from src/runtime/internal/sys/zgoarch_ppc64le.go)4
-rw-r--r--src/internal/goarch/zgoarch_riscv.go (renamed from src/runtime/internal/sys/zgoarch_riscv.go)4
-rw-r--r--src/internal/goarch/zgoarch_riscv64.go (renamed from src/runtime/internal/sys/zgoarch_riscv64.go)4
-rw-r--r--src/internal/goarch/zgoarch_s390.go (renamed from src/runtime/internal/sys/zgoarch_s390.go)4
-rw-r--r--src/internal/goarch/zgoarch_s390x.go (renamed from src/runtime/internal/sys/zgoarch_s390x.go)4
-rw-r--r--src/internal/goarch/zgoarch_sparc.go (renamed from src/runtime/internal/sys/zgoarch_sparc.go)4
-rw-r--r--src/internal/goarch/zgoarch_sparc64.go (renamed from src/runtime/internal/sys/zgoarch_sparc64.go)4
-rw-r--r--src/internal/goarch/zgoarch_wasm.go (renamed from src/runtime/internal/sys/zgoarch_wasm.go)4
-rw-r--r--src/internal/goos/gengoos.go (renamed from src/runtime/internal/sys/gengoos.go)41
-rw-r--r--src/internal/goos/goos.go12
-rw-r--r--src/internal/goos/zgoos_aix.go (renamed from src/runtime/internal/sys/zgoos_aix.go)2
-rw-r--r--src/internal/goos/zgoos_android.go (renamed from src/runtime/internal/sys/zgoos_android.go)2
-rw-r--r--src/internal/goos/zgoos_darwin.go (renamed from src/runtime/internal/sys/zgoos_darwin.go)2
-rw-r--r--src/internal/goos/zgoos_dragonfly.go (renamed from src/runtime/internal/sys/zgoos_dragonfly.go)2
-rw-r--r--src/internal/goos/zgoos_freebsd.go (renamed from src/runtime/internal/sys/zgoos_freebsd.go)2
-rw-r--r--src/internal/goos/zgoos_hurd.go (renamed from src/runtime/internal/sys/zgoos_hurd.go)2
-rw-r--r--src/internal/goos/zgoos_illumos.go (renamed from src/runtime/internal/sys/zgoos_illumos.go)2
-rw-r--r--src/internal/goos/zgoos_ios.go (renamed from src/runtime/internal/sys/zgoos_ios.go)2
-rw-r--r--src/internal/goos/zgoos_js.go (renamed from src/runtime/internal/sys/zgoos_js.go)2
-rw-r--r--src/internal/goos/zgoos_linux.go (renamed from src/runtime/internal/sys/zgoos_linux.go)2
-rw-r--r--src/internal/goos/zgoos_netbsd.go (renamed from src/runtime/internal/sys/zgoos_netbsd.go)2
-rw-r--r--src/internal/goos/zgoos_openbsd.go (renamed from src/runtime/internal/sys/zgoos_openbsd.go)2
-rw-r--r--src/internal/goos/zgoos_plan9.go (renamed from src/runtime/internal/sys/zgoos_plan9.go)2
-rw-r--r--src/internal/goos/zgoos_solaris.go (renamed from src/runtime/internal/sys/zgoos_solaris.go)2
-rw-r--r--src/internal/goos/zgoos_windows.go (renamed from src/runtime/internal/sys/zgoos_windows.go)2
-rw-r--r--src/internal/goos/zgoos_zos.go (renamed from src/runtime/internal/sys/zgoos_zos.go)2
-rw-r--r--src/runtime/internal/sys/consts.go109
-rw-r--r--src/runtime/internal/sys/sys.go8
59 files changed, 284 insertions, 130 deletions
diff --git a/src/cmd/go/internal/work/gc.go b/src/cmd/go/internal/work/gc.go
index 85da4f89f9..2ae908bc8f 100644
--- a/src/cmd/go/internal/work/gc.go
+++ b/src/cmd/go/internal/work/gc.go
@@ -29,6 +29,18 @@ import (
// The 'path' used for GOROOT_FINAL when -trimpath is specified
const trimPathGoRootFinal = "go"
+var runtimePackages = map[string]struct{}{
+ "internal/abi": struct{}{},
+ "internal/bytealg": struct{}{},
+ "internal/cpu": struct{}{},
+ "internal/goarch": struct{}{},
+ "internal/goos": struct{}{},
+ "runtime": struct{}{},
+ "runtime/internal/atomic": struct{}{},
+ "runtime/internal/math": struct{}{},
+ "runtime/internal/sys": struct{}{},
+}
+
// The Go toolchain.
type gcToolchain struct{}
@@ -88,11 +100,8 @@ func (gcToolchain) gc(b *Builder, a *Action, archive string, importcfg, embedcfg
if p.Standard {
gcargs = append(gcargs, "-std")
}
- compilingRuntime := p.Standard && (p.ImportPath == "runtime" || strings.HasPrefix(p.ImportPath, "runtime/internal"))
- // The runtime package imports a couple of general internal packages.
- if p.Standard && (p.ImportPath == "internal/cpu" || p.ImportPath == "internal/bytealg" || p.ImportPath == "internal/abi") {
- compilingRuntime = true
- }
+ _, compilingRuntime := runtimePackages[p.ImportPath]
+ compilingRuntime = compilingRuntime && p.Standard
if compilingRuntime {
// runtime compiles with a special gc flag to check for
// memory allocations that are invalid in the runtime package,
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 45e2f25df7..b440f7d235 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -71,7 +71,8 @@ var depsRules = `
# No dependencies allowed for any of these packages.
NONE
< container/list, container/ring,
- internal/cfg, internal/cpu, internal/goexperiment,
+ internal/cfg, internal/cpu, internal/goarch,
+ internal/goexperiment, internal/goos,
internal/goversion, internal/nettrace,
unicode/utf8, unicode/utf16, unicode,
unsafe;
@@ -81,7 +82,8 @@ var depsRules = `
< internal/abi;
# RUNTIME is the core runtime group of packages, all of them very light-weight.
- internal/abi, internal/cpu, internal/goexperiment, unsafe
+ internal/abi, internal/cpu, internal/goarch,
+ internal/goexperiment, internal/goos, unsafe
< internal/bytealg
< internal/itoa
< internal/unsafeheader
diff --git a/src/internal/goarch/gengoarch.go b/src/internal/goarch/gengoarch.go
new file mode 100644
index 0000000000..58c3b1104c
--- /dev/null
+++ b/src/internal/goarch/gengoarch.go
@@ -0,0 +1,59 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build ignore
+// +build ignore
+
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "log"
+ "os"
+ "strconv"
+ "strings"
+)
+
+var goarches []string
+
+func main() {
+ data, err := os.ReadFile("../../go/build/syslist.go")
+ if err != nil {
+ log.Fatal(err)
+ }
+ const goarchPrefix = `const goarchList = `
+ for _, line := range strings.Split(string(data), "\n") {
+ if strings.HasPrefix(line, goarchPrefix) {
+ text, err := strconv.Unquote(strings.TrimPrefix(line, goarchPrefix))
+ if err != nil {
+ log.Fatalf("parsing goarchList: %v", err)
+ }
+ goarches = strings.Fields(text)
+ }
+ }
+
+ for _, target := range goarches {
+ if target == "amd64p32" {
+ continue
+ }
+ var buf bytes.Buffer
+ fmt.Fprintf(&buf, "// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.\n\n")
+ fmt.Fprintf(&buf, "//go:build %s\n", target)
+ fmt.Fprintf(&buf, "// +build %s\n\n", target) // must explicitly include target for bootstrapping purposes
+ fmt.Fprintf(&buf, "package goarch\n\n")
+ fmt.Fprintf(&buf, "const GOARCH = `%s`\n\n", target)
+ for _, goarch := range goarches {
+ value := 0
+ if goarch == target {
+ value = 1
+ }
+ fmt.Fprintf(&buf, "const Goarch%s = %d\n", strings.Title(goarch), value)
+ }
+ err := os.WriteFile("zgoarch_"+target+".go", buf.Bytes(), 0666)
+ if err != nil {
+ log.Fatal(err)
+ }
+ }
+}
diff --git a/src/runtime/internal/sys/arch.go b/src/internal/goarch/goarch.go
index 3c99a2f7da..8e240295b3 100644
--- a/src/runtime/internal/sys/arch.go
+++ b/src/internal/goarch/goarch.go
@@ -1,8 +1,15 @@
-// Copyright 2014 The Go Authors. All rights reserved.
+// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+// package goarch contains GOARCH-specific constants.
+package goarch
+
+// The next line makes 'go generate' write the zgoarch*.go files with
+// per-arch information, including constants named Goarch$GOARCH for every
+// GOARCH. The constant is 1 on the current system, 0 otherwise; multiplying
+// by them is useful for defining GOARCH-specific constants.
+//go:generate go run gengoarch.go
type ArchFamilyType int
@@ -23,9 +30,6 @@ const (
// It is also the size of the machine's native word size (that is, 4 on 32-bit systems, 8 on 64-bit).
const PtrSize = 4 << (^uintptr(0) >> 63)
-// AIX requires a larger stack for syscalls.
-const StackGuardMultiplier = StackGuardMultiplierDefault*(1-GoosAix) + 2*GoosAix
-
// ArchFamily is the architecture family (AMD64, ARM, ...)
const ArchFamily ArchFamilyType = _ArchFamily
diff --git a/src/runtime/internal/sys/arch_386.go b/src/internal/goarch/goarch_386.go
index 1ebce3435e..c6214217fc 100644
--- a/src/runtime/internal/sys/arch_386.go
+++ b/src/internal/goarch/goarch_386.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = I386
diff --git a/src/runtime/internal/sys/arch_amd64.go b/src/internal/goarch/goarch_amd64.go
index 7f003d0f1d..911e3e7242 100644
--- a/src/runtime/internal/sys/arch_amd64.go
+++ b/src/internal/goarch/goarch_amd64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = AMD64
diff --git a/src/runtime/internal/sys/arch_arm.go b/src/internal/goarch/goarch_arm.go
index ef2048bb71..a6591713c8 100644
--- a/src/runtime/internal/sys/arch_arm.go
+++ b/src/internal/goarch/goarch_arm.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = ARM
diff --git a/src/runtime/internal/sys/arch_arm64.go b/src/internal/goarch/goarch_arm64.go
index b9f2f7b1fe..85d0b47639 100644
--- a/src/runtime/internal/sys/arch_arm64.go
+++ b/src/internal/goarch/goarch_arm64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = ARM64
diff --git a/src/runtime/internal/sys/arch_mips.go b/src/internal/goarch/goarch_mips.go
index 4cb0eebea7..59f3995e2a 100644
--- a/src/runtime/internal/sys/arch_mips.go
+++ b/src/internal/goarch/goarch_mips.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = MIPS
diff --git a/src/runtime/internal/sys/arch_mips64le.go b/src/internal/goarch/goarch_mips64.go
index 57636ac4a4..9e4f82797d 100644
--- a/src/runtime/internal/sys/arch_mips64le.go
+++ b/src/internal/goarch/goarch_mips64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = MIPS64
diff --git a/src/runtime/internal/sys/arch_mips64.go b/src/internal/goarch/goarch_mips64le.go
index 57636ac4a4..9e4f82797d 100644
--- a/src/runtime/internal/sys/arch_mips64.go
+++ b/src/internal/goarch/goarch_mips64le.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = MIPS64
diff --git a/src/runtime/internal/sys/arch_mipsle.go b/src/internal/goarch/goarch_mipsle.go
index 4240f5ce47..3e6642bb86 100644
--- a/src/runtime/internal/sys/arch_mipsle.go
+++ b/src/internal/goarch/goarch_mipsle.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = MIPS
diff --git a/src/runtime/internal/sys/arch_ppc64.go b/src/internal/goarch/goarch_ppc64.go
index 1869213ce2..60cc846e6a 100644
--- a/src/runtime/internal/sys/arch_ppc64.go
+++ b/src/internal/goarch/goarch_ppc64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = PPC64
diff --git a/src/runtime/internal/sys/arch_ppc64le.go b/src/internal/goarch/goarch_ppc64le.go
index 1869213ce2..60cc846e6a 100644
--- a/src/runtime/internal/sys/arch_ppc64le.go
+++ b/src/internal/goarch/goarch_ppc64le.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = PPC64
diff --git a/src/runtime/internal/sys/arch_riscv64.go b/src/internal/goarch/goarch_riscv64.go
index 360d236e32..3b6da1e02f 100644
--- a/src/runtime/internal/sys/arch_riscv64.go
+++ b/src/internal/goarch/goarch_riscv64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = RISCV64
diff --git a/src/runtime/internal/sys/arch_s390x.go b/src/internal/goarch/goarch_s390x.go
index e33e0b7f2b..20c5705581 100644
--- a/src/runtime/internal/sys/arch_s390x.go
+++ b/src/internal/goarch/goarch_s390x.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = S390X
diff --git a/src/runtime/internal/sys/arch_wasm.go b/src/internal/goarch/goarch_wasm.go
index ee919ff9e6..98618d6980 100644
--- a/src/runtime/internal/sys/arch_wasm.go
+++ b/src/internal/goarch/goarch_wasm.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package sys
+package goarch
const (
_ArchFamily = WASM
diff --git a/src/runtime/internal/sys/zgoarch_386.go b/src/internal/goarch/zgoarch_386.go
index 98a2401bfe..f424b5a6b9 100644
--- a/src/runtime/internal/sys/zgoarch_386.go
+++ b/src/internal/goarch/zgoarch_386.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build 386
// +build 386
-package sys
+package goarch
const GOARCH = `386`
diff --git a/src/runtime/internal/sys/zgoarch_amd64.go b/src/internal/goarch/zgoarch_amd64.go
index d8faa5c786..728896c367 100644
--- a/src/runtime/internal/sys/zgoarch_amd64.go
+++ b/src/internal/goarch/zgoarch_amd64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build amd64
// +build amd64
-package sys
+package goarch
const GOARCH = `amd64`
diff --git a/src/runtime/internal/sys/zgoarch_arm.go b/src/internal/goarch/zgoarch_arm.go
index b64a69c9b4..9d388b0554 100644
--- a/src/runtime/internal/sys/zgoarch_arm.go
+++ b/src/internal/goarch/zgoarch_arm.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build arm
// +build arm
-package sys
+package goarch
const GOARCH = `arm`
diff --git a/src/runtime/internal/sys/zgoarch_arm64.go b/src/internal/goarch/zgoarch_arm64.go
index de6f85347b..a375ac8076 100644
--- a/src/runtime/internal/sys/zgoarch_arm64.go
+++ b/src/internal/goarch/zgoarch_arm64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build arm64
// +build arm64
-package sys
+package goarch
const GOARCH = `arm64`
diff --git a/src/runtime/internal/sys/zgoarch_arm64be.go b/src/internal/goarch/zgoarch_arm64be.go
index b762bb069f..6fcc4f6bfa 100644
--- a/src/runtime/internal/sys/zgoarch_arm64be.go
+++ b/src/internal/goarch/zgoarch_arm64be.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build arm64be
// +build arm64be
-package sys
+package goarch
const GOARCH = `arm64be`
diff --git a/src/runtime/internal/sys/zgoarch_armbe.go b/src/internal/goarch/zgoarch_armbe.go
index e5297e4b16..a3ac487d80 100644
--- a/src/runtime/internal/sys/zgoarch_armbe.go
+++ b/src/internal/goarch/zgoarch_armbe.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build armbe
// +build armbe
-package sys
+package goarch
const GOARCH = `armbe`
diff --git a/src/runtime/internal/sys/zgoarch_mips.go b/src/internal/goarch/zgoarch_mips.go
index b5f4ed390c..00cfd90c3b 100644
--- a/src/runtime/internal/sys/zgoarch_mips.go
+++ b/src/internal/goarch/zgoarch_mips.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mips
// +build mips
-package sys
+package goarch
const GOARCH = `mips`
diff --git a/src/runtime/internal/sys/zgoarch_mips64.go b/src/internal/goarch/zgoarch_mips64.go
index 73777cceb2..947db612eb 100644
--- a/src/runtime/internal/sys/zgoarch_mips64.go
+++ b/src/internal/goarch/zgoarch_mips64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mips64
// +build mips64
-package sys
+package goarch
const GOARCH = `mips64`
diff --git a/src/runtime/internal/sys/zgoarch_mips64le.go b/src/internal/goarch/zgoarch_mips64le.go
index 0c81c36c09..35ffbe2d3f 100644
--- a/src/runtime/internal/sys/zgoarch_mips64le.go
+++ b/src/internal/goarch/zgoarch_mips64le.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mips64le
// +build mips64le
-package sys
+package goarch
const GOARCH = `mips64le`
diff --git a/src/runtime/internal/sys/zgoarch_mips64p32.go b/src/internal/goarch/zgoarch_mips64p32.go
index d63ce27d24..c7c712032b 100644
--- a/src/runtime/internal/sys/zgoarch_mips64p32.go
+++ b/src/internal/goarch/zgoarch_mips64p32.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mips64p32
// +build mips64p32
-package sys
+package goarch
const GOARCH = `mips64p32`
diff --git a/src/runtime/internal/sys/zgoarch_mips64p32le.go b/src/internal/goarch/zgoarch_mips64p32le.go
index 2d577890b2..f605a6ff78 100644
--- a/src/runtime/internal/sys/zgoarch_mips64p32le.go
+++ b/src/internal/goarch/zgoarch_mips64p32le.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mips64p32le
// +build mips64p32le
-package sys
+package goarch
const GOARCH = `mips64p32le`
diff --git a/src/runtime/internal/sys/zgoarch_mipsle.go b/src/internal/goarch/zgoarch_mipsle.go
index 8af919d03a..56e24dc7b3 100644
--- a/src/runtime/internal/sys/zgoarch_mipsle.go
+++ b/src/internal/goarch/zgoarch_mipsle.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build mipsle
// +build mipsle
-package sys
+package goarch
const GOARCH = `mipsle`
diff --git a/src/runtime/internal/sys/zgoarch_ppc.go b/src/internal/goarch/zgoarch_ppc.go
index f6f12a5ddc..4617d12792 100644
--- a/src/runtime/internal/sys/zgoarch_ppc.go
+++ b/src/internal/goarch/zgoarch_ppc.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build ppc
// +build ppc
-package sys
+package goarch
const GOARCH = `ppc`
diff --git a/src/runtime/internal/sys/zgoarch_ppc64.go b/src/internal/goarch/zgoarch_ppc64.go
index a8379601f4..f3cb16e9b6 100644
--- a/src/runtime/internal/sys/zgoarch_ppc64.go
+++ b/src/internal/goarch/zgoarch_ppc64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build ppc64
// +build ppc64
-package sys
+package goarch
const GOARCH = `ppc64`
diff --git a/src/runtime/internal/sys/zgoarch_ppc64le.go b/src/internal/goarch/zgoarch_ppc64le.go
index f2ec5dcba7..b70abfb953 100644
--- a/src/runtime/internal/sys/zgoarch_ppc64le.go
+++ b/src/internal/goarch/zgoarch_ppc64le.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build ppc64le
// +build ppc64le
-package sys
+package goarch
const GOARCH = `ppc64le`
diff --git a/src/runtime/internal/sys/zgoarch_riscv.go b/src/internal/goarch/zgoarch_riscv.go
index 83a3312f5f..f72973fbc5 100644
--- a/src/runtime/internal/sys/zgoarch_riscv.go
+++ b/src/internal/goarch/zgoarch_riscv.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build riscv
// +build riscv
-package sys
+package goarch
const GOARCH = `riscv`
diff --git a/src/runtime/internal/sys/zgoarch_riscv64.go b/src/internal/goarch/zgoarch_riscv64.go
index 1dfcc84997..5d09b63a03 100644
--- a/src/runtime/internal/sys/zgoarch_riscv64.go
+++ b/src/internal/goarch/zgoarch_riscv64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build riscv64
// +build riscv64
-package sys
+package goarch
const GOARCH = `riscv64`
diff --git a/src/runtime/internal/sys/zgoarch_s390.go b/src/internal/goarch/zgoarch_s390.go
index 91aba5a0f6..0ceffe6c2e 100644
--- a/src/runtime/internal/sys/zgoarch_s390.go
+++ b/src/internal/goarch/zgoarch_s390.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build s390
// +build s390
-package sys
+package goarch
const GOARCH = `s390`
diff --git a/src/runtime/internal/sys/zgoarch_s390x.go b/src/internal/goarch/zgoarch_s390x.go
index edce50234e..142bc0f1e3 100644
--- a/src/runtime/internal/sys/zgoarch_s390x.go
+++ b/src/internal/goarch/zgoarch_s390x.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build s390x
// +build s390x
-package sys
+package goarch
const GOARCH = `s390x`
diff --git a/src/runtime/internal/sys/zgoarch_sparc.go b/src/internal/goarch/zgoarch_sparc.go
index 5ae9560ab0..62452b9d38 100644
--- a/src/runtime/internal/sys/zgoarch_sparc.go
+++ b/src/internal/goarch/zgoarch_sparc.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build sparc
// +build sparc
-package sys
+package goarch
const GOARCH = `sparc`
diff --git a/src/runtime/internal/sys/zgoarch_sparc64.go b/src/internal/goarch/zgoarch_sparc64.go
index e2a0134aff..5149507917 100644
--- a/src/runtime/internal/sys/zgoarch_sparc64.go
+++ b/src/internal/goarch/zgoarch_sparc64.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build sparc64
// +build sparc64
-package sys
+package goarch
const GOARCH = `sparc64`
diff --git a/src/runtime/internal/sys/zgoarch_wasm.go b/src/internal/goarch/zgoarch_wasm.go
index 52e85dea37..fd25e93e74 100644
--- a/src/runtime/internal/sys/zgoarch_wasm.go
+++ b/src/internal/goarch/zgoarch_wasm.go
@@ -1,9 +1,9 @@
-// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+// Code generated by gengoarch.go using 'go generate'. DO NOT EDIT.
//go:build wasm
// +build wasm
-package sys
+package goarch
const GOARCH = `wasm`
diff --git a/src/runtime/internal/sys/gengoos.go b/src/internal/goos/gengoos.go
index ffe962f71d..ebcdfec3ba 100644
--- a/src/runtime/internal/sys/gengoos.go
+++ b/src/internal/goos/gengoos.go
@@ -16,17 +16,14 @@ import (
"strings"
)
-var gooses, goarches []string
+var gooses []string
func main() {
- data, err := os.ReadFile("../../../go/build/syslist.go")
+ data, err := os.ReadFile("../../go/build/syslist.go")
if err != nil {
log.Fatal(err)
}
- const (
- goosPrefix = `const goosList = `
- goarchPrefix = `const goarchList = `
- )
+ const goosPrefix = `const goosList = `
for _, line := range strings.Split(string(data), "\n") {
if strings.HasPrefix(line, goosPrefix) {
text, err := strconv.Unquote(strings.TrimPrefix(line, goosPrefix))
@@ -35,13 +32,6 @@ func main() {
}
gooses = strings.Fields(text)
}
- if strings.HasPrefix(line, goarchPrefix) {
- text, err := strconv.Unquote(strings.TrimPrefix(line, goarchPrefix))
- if err != nil {
- log.Fatalf("parsing goarchList: %v", err)
- }
- goarches = strings.Fields(text)
- }
}
for _, target := range gooses {
@@ -63,7 +53,7 @@ func main() {
fmt.Fprintf(&buf, "// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.\n\n")
fmt.Fprintf(&buf, "//go:build %s\n", strings.Join(tags, " && "))
fmt.Fprintf(&buf, "// +build %s\n\n", strings.Join(tags, ","))
- fmt.Fprintf(&buf, "package sys\n\n")
+ fmt.Fprintf(&buf, "package goos\n\n")
fmt.Fprintf(&buf, "const GOOS = `%s`\n\n", target)
for _, goos := range gooses {
value := 0
@@ -77,27 +67,4 @@ func main() {
log.Fatal(err)
}
}
-
- for _, target := range goarches {
- if target == "amd64p32" {
- continue
- }
- var buf bytes.Buffer
- fmt.Fprintf(&buf, "// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.\n\n")
- fmt.Fprintf(&buf, "//go:build %s\n", target)
- fmt.Fprintf(&buf, "// +build %s\n\n", target) // must explicitly include target for bootstrapping purposes
- fmt.Fprintf(&buf, "package sys\n\n")
- fmt.Fprintf(&buf, "const GOARCH = `%s`\n\n", target)
- for _, goarch := range goarches {
- value := 0
- if goarch == target {
- value = 1
- }
- fmt.Fprintf(&buf, "const Goarch%s = %d\n", strings.Title(goarch), value)
- }
- err := os.WriteFile("zgoarch_"+target+".go", buf.Bytes(), 0666)
- if err != nil {
- log.Fatal(err)
- }
- }
}
diff --git a/src/internal/goos/goos.go b/src/internal/goos/goos.go
new file mode 100644
index 0000000000..332cf51e5d
--- /dev/null
+++ b/src/internal/goos/goos.go
@@ -0,0 +1,12 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// package goos contains GOOS-specific constants.
+package goos
+
+// The next line makes 'go generate' write the zgoos*.go files with
+// per-OS information, including constants named Goos$GOOS for every
+// known GOOS. The constant is 1 on the current system, 0 otherwise;
+// multiplying by them is useful for defining GOOS-specific constants.
+//go:generate go run gengoos.go
diff --git a/src/runtime/internal/sys/zgoos_aix.go b/src/internal/goos/zgoos_aix.go
index f3b907471f..f453a8a0a8 100644
--- a/src/runtime/internal/sys/zgoos_aix.go
+++ b/src/internal/goos/zgoos_aix.go
@@ -3,7 +3,7 @@
//go:build aix
// +build aix
-package sys
+package goos
const GOOS = `aix`
diff --git a/src/runtime/internal/sys/zgoos_android.go b/src/internal/goos/zgoos_android.go
index e28baf7c48..d90c04f758 100644
--- a/src/runtime/internal/sys/zgoos_android.go
+++ b/src/internal/goos/zgoos_android.go
@@ -3,7 +3,7 @@
//go:build android
// +build android
-package sys
+package goos
const GOOS = `android`
diff --git a/src/runtime/internal/sys/zgoos_darwin.go b/src/internal/goos/zgoos_darwin.go
index 3c7f7b543e..18f6c28b12 100644
--- a/src/runtime/internal/sys/zgoos_darwin.go
+++ b/src/internal/goos/zgoos_darwin.go
@@ -3,7 +3,7 @@
//go:build !ios && darwin
// +build !ios,darwin
-package sys
+package goos
const GOOS = `darwin`
diff --git a/src/runtime/internal/sys/zgoos_dragonfly.go b/src/internal/goos/zgoos_dragonfly.go
index f844d29e2a..a658d1d07f 100644
--- a/src/runtime/internal/sys/zgoos_dragonfly.go
+++ b/src/internal/goos/zgoos_dragonfly.go
@@ -3,7 +3,7 @@
//go:build dragonfly
// +build dragonfly
-package sys
+package goos
const GOOS = `dragonfly`
diff --git a/src/runtime/internal/sys/zgoos_freebsd.go b/src/internal/goos/zgoos_freebsd.go
index 8999a2797a..2534eb8c6f 100644
--- a/src/runtime/internal/sys/zgoos_freebsd.go
+++ b/src/internal/goos/zgoos_freebsd.go
@@ -3,7 +3,7 @@
//go:build freebsd
// +build freebsd
-package sys
+package goos
const GOOS = `freebsd`
diff --git a/src/runtime/internal/sys/zgoos_hurd.go b/src/internal/goos/zgoos_hurd.go
index a546488bf8..3fefb1fbb1 100644
--- a/src/runtime/internal/sys/zgoos_hurd.go
+++ b/src/internal/goos/zgoos_hurd.go
@@ -3,7 +3,7 @@
//go:build hurd
// +build hurd
-package sys
+package goos
const GOOS = `hurd`
diff --git a/src/runtime/internal/sys/zgoos_illumos.go b/src/internal/goos/zgoos_illumos.go
index 02a4ca06e8..77495a3369 100644
--- a/src/runtime/internal/sys/zgoos_illumos.go
+++ b/src/internal/goos/zgoos_illumos.go
@@ -3,7 +3,7 @@
//go:build illumos
// +build illumos
-package sys
+package goos
const GOOS = `illumos`
diff --git a/src/runtime/internal/sys/zgoos_ios.go b/src/internal/goos/zgoos_ios.go
index 033eec623d..92820fe77e 100644
--- a/src/runtime/internal/sys/zgoos_ios.go
+++ b/src/internal/goos/zgoos_ios.go
@@ -3,7 +3,7 @@
//go:build ios
// +build ios
-package sys
+package goos
const GOOS = `ios`
diff --git a/src/runtime/internal/sys/zgoos_js.go b/src/internal/goos/zgoos_js.go
index 28226ad60a..6331a5c3f1 100644
--- a/src/runtime/internal/sys/zgoos_js.go
+++ b/src/internal/goos/zgoos_js.go
@@ -3,7 +3,7 @@
//go:build js
// +build js
-package sys
+package goos
const GOOS = `js`
diff --git a/src/runtime/internal/sys/zgoos_linux.go b/src/internal/goos/zgoos_linux.go
index 01546e4b9f..aa4e2d3145 100644
--- a/src/runtime/internal/sys/zgoos_linux.go
+++ b/src/internal/goos/zgoos_linux.go
@@ -3,7 +3,7 @@
//go:build !android && linux
// +build !android,linux
-package sys
+package goos
const GOOS = `linux`
diff --git a/src/runtime/internal/sys/zgoos_netbsd.go b/src/internal/goos/zgoos_netbsd.go
index 9d658b20ee..39635104c0 100644
--- a/src/runtime/internal/sys/zgoos_netbsd.go
+++ b/src/internal/goos/zgoos_netbsd.go
@@ -3,7 +3,7 @@
//go:build netbsd
// +build netbsd
-package sys
+package goos
const GOOS = `netbsd`
diff --git a/src/runtime/internal/sys/zgoos_openbsd.go b/src/internal/goos/zgoos_openbsd.go
index 0f55454a95..61d4ac8bb0 100644
--- a/src/runtime/internal/sys/zgoos_openbsd.go
+++ b/src/internal/goos/zgoos_openbsd.go
@@ -3,7 +3,7 @@
//go:build openbsd
// +build openbsd
-package sys
+package goos
const GOOS = `openbsd`
diff --git a/src/runtime/internal/sys/zgoos_plan9.go b/src/internal/goos/zgoos_plan9.go
index d0347464d6..7f0dc2fa04 100644
--- a/src/runtime/internal/sys/zgoos_plan9.go
+++ b/src/internal/goos/zgoos_plan9.go
@@ -3,7 +3,7 @@
//go:build plan9
// +build plan9
-package sys
+package goos
const GOOS = `plan9`
diff --git a/src/runtime/internal/sys/zgoos_solaris.go b/src/internal/goos/zgoos_solaris.go
index 05c3007e2c..7497324a4f 100644
--- a/src/runtime/internal/sys/zgoos_solaris.go
+++ b/src/internal/goos/zgoos_solaris.go
@@ -3,7 +3,7 @@
//go:build !illumos && solaris
// +build !illumos,solaris
-package sys
+package goos
const GOOS = `solaris`
diff --git a/src/runtime/internal/sys/zgoos_windows.go b/src/internal/goos/zgoos_windows.go
index 7d07fa3a45..e316b80c82 100644
--- a/src/runtime/internal/sys/zgoos_windows.go
+++ b/src/internal/goos/zgoos_windows.go
@@ -3,7 +3,7 @@
//go:build windows
// +build windows
-package sys
+package goos
const GOOS = `windows`
diff --git a/src/runtime/internal/sys/zgoos_zos.go b/src/internal/goos/zgoos_zos.go
index d6e5b9b0cb..26471f4f36 100644
--- a/src/runtime/internal/sys/zgoos_zos.go
+++ b/src/internal/goos/zgoos_zos.go
@@ -3,7 +3,7 @@
//go:build zos
// +build zos
-package sys
+package goos
const GOOS = `zos`
diff --git a/src/runtime/internal/sys/consts.go b/src/runtime/internal/sys/consts.go
new file mode 100644
index 0000000000..815f789380
--- /dev/null
+++ b/src/runtime/internal/sys/consts.go
@@ -0,0 +1,109 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sys
+
+import (
+ "internal/goarch"
+ "internal/goos"
+)
+
+type ArchFamilyType = goarch.ArchFamilyType
+
+const (
+ AMD64 = goarch.AMD64
+ ARM = goarch.ARM
+ ARM64 = goarch.ARM64
+ I386 = goarch.I386
+ MIPS = goarch.MIPS
+ MIPS64 = goarch.MIPS64
+ PPC64 = goarch.PPC64
+ RISCV64 = goarch.RISCV64
+ S390X = goarch.S390X
+ WASM = goarch.WASM
+)
+
+// PtrSize is the size of a pointer in bytes - unsafe.Sizeof(uintptr(0)) but as an ideal constant.
+// It is also the size of the machine's native word size (that is, 4 on 32-bit systems, 8 on 64-bit).
+const PtrSize = goarch.PtrSize
+
+// ArchFamily is the architecture family (AMD64, ARM, ...)
+const ArchFamily ArchFamilyType = goarch.ArchFamily
+
+// AIX requires a larger stack for syscalls.
+const StackGuardMultiplier = StackGuardMultiplierDefault*(1-goos.GoosAix) + 2*goos.GoosAix
+
+// BigEndian reports whether the architecture is big-endian.
+const BigEndian = goarch.BigEndian
+
+// DefaultPhysPageSize is the default physical page size.
+const DefaultPhysPageSize = goarch.DefaultPhysPageSize
+
+// PCQuantum is the minimal unit for a program counter (1 on x86, 4 on most other systems).
+// The various PC tables record PC deltas pre-divided by PCQuantum.
+const PCQuantum = goarch.PCQuantum
+
+// Int64Align is the required alignment for a 64-bit integer (4 on 32-bit systems, 8 on 64-bit).
+const Int64Align = goarch.PtrSize
+
+// MinFrameSize is the size of the system-reserved words at the bottom
+// of a frame (just above the architectural stack pointer).
+// It is zero on x86 and PtrSize on most non-x86 (LR-based) systems.
+// On PowerPC it is larger, to cover three more reserved words:
+// the compiler word, the link editor word, and the TOC save word.
+const MinFrameSize = goarch.MinFrameSize
+
+// StackAlign is the required alignment of the SP register.
+// The stack must be at least word aligned, but some architectures require more.
+const StackAlign = goarch.StackAlign
+
+const GOARCH = goarch.GOARCH
+
+const (
+ Goarch386 = goarch.Goarch386
+ GoarchAmd64 = goarch.GoarchAmd64
+ GoarchAmd64p32 = goarch.GoarchAmd64p32
+ GoarchArm = goarch.GoarchArm
+ GoarchArmbe = goarch.GoarchArmbe
+ GoarchArm64 = goarch.GoarchArm64
+ GoarchArm64be = goarch.GoarchArm64be
+ GoarchPpc64 = goarch.GoarchPpc64
+ GoarchPpc64le = goarch.GoarchPpc64le
+ GoarchMips = goarch.GoarchMips
+ GoarchMipsle = goarch.GoarchMipsle
+ GoarchMips64 = goarch.GoarchMips64
+ GoarchMips64le = goarch.GoarchMips64le
+ GoarchMips64p32 = goarch.GoarchMips64p32
+ GoarchMips64p32le = goarch.GoarchMips64p32le
+ GoarchPpc = goarch.GoarchPpc
+ GoarchRiscv = goarch.GoarchRiscv
+ GoarchRiscv64 = goarch.GoarchRiscv64
+ GoarchS390 = goarch.GoarchS390
+ GoarchS390x = goarch.GoarchS390x
+ GoarchSparc = goarch.GoarchSparc
+ GoarchSparc64 = goarch.GoarchSparc64
+ GoarchWasm = goarch.GoarchWasm
+)
+
+const GOOS = goos.GOOS
+
+const (
+ GoosAix = goos.GoosAix
+ GoosAndroid = goos.GoosAndroid
+ GoosDarwin = goos.GoosDarwin
+ GoosDragonfly = goos.GoosDragonfly
+ GoosFreebsd = goos.GoosFreebsd
+ GoosHurd = goos.GoosHurd
+ GoosIllumos = goos.GoosIllumos
+ GoosIos = goos.GoosIos
+ GoosJs = goos.GoosJs
+ GoosLinux = goos.GoosLinux
+ GoosNacl = goos.GoosNacl
+ GoosNetbsd = goos.GoosNetbsd
+ GoosOpenbsd = goos.GoosOpenbsd
+ GoosPlan9 = goos.GoosPlan9
+ GoosSolaris = goos.GoosSolaris
+ GoosWindows = goos.GoosWindows
+ GoosZos = goos.GoosZos
+)
diff --git a/src/runtime/internal/sys/sys.go b/src/runtime/internal/sys/sys.go
index 9d9ac4507f..694101d36f 100644
--- a/src/runtime/internal/sys/sys.go
+++ b/src/runtime/internal/sys/sys.go
@@ -5,11 +5,3 @@
// package sys contains system- and configuration- and architecture-specific
// constants used by the runtime.
package sys
-
-// The next line makes 'go generate' write the zgo*.go files with
-// per-OS and per-arch information, including constants
-// named Goos$GOOS and Goarch$GOARCH for every
-// known GOOS and GOARCH. The constant is 1 on the
-// current system, 0 otherwise; multiplying by them is
-// useful for defining GOOS- or GOARCH-specific constants.
-//go:generate go run gengoos.go