{"runtime/internal/sys", []string{
"zversion.go",
}},
+ {"go/build", []string{
+ "zcgo.go",
+ }},
}
// depsuffix records the allowed suffixes for source files.
}{
{"zdefaultcc.go", mkzdefaultcc},
{"zversion.go", mkzversion},
+ {"zcgo.go", mkzcgo},
// not generated anymore, but delete the file if we see it
{"enam.c", nil},
}
}
-// Copied from go/build/build.go.
// Cannot use go/build directly because cmd/dist for a new release
// builds against an old release's go/build, which may be out of sync.
+// To reduce duplication, we generate the list for go/build from this.
var cgoEnabled = map[string]bool{
"darwin/386": true,
"darwin/amd64": true,
package main
-import "fmt"
+import (
+ "bytes"
+ "fmt"
+)
/*
* Helpers for building cmd/go and cmd/cgo.
file = file[:i] + "c" + file[i:]
writefile(out, file, writeSkipSame)
}
+
+// mkzcgo writes zcgo.go for go/build package:
+//
+// package build
+// var cgoEnabled = map[string]bool{}
+//
+// It is invoked to write go/build/zcgo.go.
+func mkzcgo(dir, file string) {
+ var buf bytes.Buffer
+
+ fmt.Fprintf(&buf,
+ "// auto generated by go tool dist\n"+
+ "\n"+
+ "package build\n"+
+ "\n"+
+ "var cgoEnabled = map[string]bool{\n")
+ for plat := range cgoEnabled {
+ fmt.Fprintf(&buf, "\t%q: true,\n", plat)
+ }
+ fmt.Fprintf(&buf, "}")
+
+ writefile(buf.String(), file, writeSkipSame)
+}
// if set, or else the compiled code's GOARCH, GOOS, and GOROOT.
var Default Context = defaultContext()
-// Also known to cmd/dist/build.go.
-var cgoEnabled = map[string]bool{
- "darwin/386": true,
- "darwin/amd64": true,
- "darwin/arm": true,
- "darwin/arm64": true,
- "dragonfly/amd64": true,
- "freebsd/386": true,
- "freebsd/amd64": true,
- "freebsd/arm": true,
- "linux/386": true,
- "linux/amd64": true,
- "linux/arm": true,
- "linux/arm64": true,
- "linux/ppc64le": true,
- "android/386": true,
- "android/amd64": true,
- "android/arm": true,
- "netbsd/386": true,
- "netbsd/amd64": true,
- "netbsd/arm": true,
- "openbsd/386": true,
- "openbsd/amd64": true,
- "solaris/amd64": true,
- "windows/386": true,
- "windows/amd64": true,
-}
-
func defaultContext() Context {
var c Context