From 79f2f008a31f769ae3db684eb48d8baeda731c00 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 16 Jun 2016 14:38:33 -0400 Subject: [PATCH] cmd/dist: make zosarch.go deterministic Currently zosarch.go is written out in non-deterministic map order. Sort the keys and write it out in sorted order to make the generated file contents deterministic. Change-Id: Id490f0e8665a2c619c5a7a00a30f4fc64f333258 Reviewed-on: https://go-review.googlesource.com/24174 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/dist/buildgo.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go index c367c70b04..3fab2354ad 100644 --- a/src/cmd/dist/buildgo.go +++ b/src/cmd/dist/buildgo.go @@ -42,10 +42,21 @@ func mkzdefaultcc(dir, file string) { // mkzcgo writes zosarch.go for cmd/go. func mkzosarch(dir, file string) { + // sort for deterministic zosarch.go file + var list []string + for plat := range cgoEnabled { + list = append(list, plat) + } + sort.Strings(list) + var buf bytes.Buffer buf.WriteString("// auto generated by go tool dist\n\n") buf.WriteString("package main\n\n") - fmt.Fprintf(&buf, "var osArchSupportsCgo = %#v", cgoEnabled) + fmt.Fprintf(&buf, "var osArchSupportsCgo = map[string]bool{\n") + for _, plat := range list { + fmt.Fprintf(&buf, "\t%q: %v,\n", plat, cgoEnabled[plat]) + } + fmt.Fprintf(&buf, "}\n") writefile(buf.String(), file, writeSkipSame) }