From 89184adb9a834911af8d2f786b7ed454757c08e7 Mon Sep 17 00:00:00 2001
From: Austin Clements <austin@google.com>
Date: Mon, 5 Jun 2023 15:51:52 -0400
Subject: [PATCH] cmd/dist: share one copy of the "generated by" header string

Right now, every code generator in dist has a copy of the

  // Code generated by go tool dist; DO NOT EDIT.

string. Put it in one place to make sure it doesn't diverge.

Change-Id: I8b2a1904031599d7fc128b6a5d74480dee05fc89
Reviewed-on: https://go-review.googlesource.com/c/go/+/501138
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
---
 src/cmd/dist/buildgo.go      | 22 ++++++++++++++--------
 src/cmd/dist/buildruntime.go | 12 ++++--------
 src/cmd/dist/buildtool.go    |  8 +++-----
 3 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go
index 2e8bb8c27d5..67400bb93f2 100644
--- a/src/cmd/dist/buildgo.go
+++ b/src/cmd/dist/buildgo.go
@@ -6,6 +6,7 @@ package main
 
 import (
 	"fmt"
+	"io"
 	"os"
 	"path/filepath"
 	"sort"
@@ -16,6 +17,15 @@ import (
  * 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
@@ -28,8 +38,7 @@ import (
 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)
@@ -40,8 +49,7 @@ func mkzdefaultcc(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 main\n")
 	fmt.Fprintln(&buf)
 	fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
@@ -99,8 +107,7 @@ func defaultCCFunc(name string, defaultcc map[string]string) string {
 // 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")))
@@ -116,8 +123,7 @@ func mktzdata(dir, file string) {
 	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))
diff --git a/src/cmd/dist/buildruntime.go b/src/cmd/dist/buildruntime.go
index 20f49ca744e..b3fe8b02d87 100644
--- a/src/cmd/dist/buildruntime.go
+++ b/src/cmd/dist/buildruntime.go
@@ -21,8 +21,7 @@ import (
 // (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)
 }
@@ -48,8 +47,7 @@ func mkzversion(dir, file string) {
 // 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")
@@ -77,8 +75,7 @@ func mkbuildcfg(file string) {
 // (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)
@@ -94,8 +91,7 @@ func mkzosarch(dir, file string) {
 	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")
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index 7ecfb3a811b..5e026f7bed8 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -283,13 +283,11 @@ func bootstrapRewriteFile(srcFile string) string {
 	// 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)
@@ -324,7 +322,7 @@ func bootstrapFixImports(srcFile string) string {
 		}
 	}
 
-	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, "")
 }
-- 
GitLab