import (
"fmt"
+ "io"
"os"
"path/filepath"
"sort"
* Helpers for building cmd/go and cmd/cgo.
*/
+// generatedHeader is the string that all source files generated by dist start with.
+const generatedHeader = "// Code generated by go tool dist; DO NOT EDIT.\n\n"
+
+// writeHeader emits the standard "generated by" header for all files generated
+// by dist.
+func writeHeader(w io.Writer) {
+ fmt.Fprint(w, generatedHeader)
+}
+
// mkzdefaultcc writes zdefaultcc.go:
//
// package main
func mkzdefaultcc(dir, file string) {
if strings.Contains(file, filepath.FromSlash("go/internal/cfg")) {
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package cfg\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
}
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package main\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
// It is invoked to write go/build/zcgo.go.
func mkzcgo(dir, file string) {
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package build\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const defaultCGO_ENABLED = %s\n", quote(os.Getenv("CGO_ENABLED")))
zip := readfile(filepath.Join(dir, "../../../lib/time/zoneinfo.zip"))
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package tzdata\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const zipdata = %s\n", quote(zip))
// (Nothing right now!)
func mkzversion(dir, file string) {
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package sys\n")
writefile(buf.String(), file, writeSkipSame)
}
// original target (in this example, a Mac).
func mkbuildcfg(file string) {
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package buildcfg\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "import \"runtime\"\n")
// (Nothing right now!)
func mkobjabi(file string) {
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package objabi\n")
writefile(buf.String(), file, writeSkipSame)
sort.Strings(list)
var buf strings.Builder
- fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
- fmt.Fprintln(&buf)
+ writeHeader(&buf)
fmt.Fprintf(&buf, "package platform\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "var osArchSupportsCgo = map[string]bool{\n")
// binary that works for the current gohostarch.
// This saves 6+ seconds of bootstrap.
if archCaps, ok := isUnneededSSARewriteFile(srcFile, gohostarch); ok {
- return fmt.Sprintf(`// Code generated by go tool dist; DO NOT EDIT.
-
-package ssa
+ return fmt.Sprintf(`%spackage ssa
func rewriteValue%s(v *Value) bool { panic("unused during bootstrap") }
func rewriteBlock%s(b *Block) bool { panic("unused during bootstrap") }
-`, archCaps, archCaps)
+`, generatedHeader, archCaps, archCaps)
}
return bootstrapFixImports(srcFile)
}
}
- lines[0] = "// Code generated by go tool dist; DO NOT EDIT.\n// This is a bootstrap copy of " + srcFile + "\n\n//line " + srcFile + ":1\n" + lines[0]
+ lines[0] = generatedHeader + "// This is a bootstrap copy of " + srcFile + "\n\n//line " + srcFile + ":1\n" + lines[0]
return strings.Join(lines, "")
}