]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: make zosarch.go deterministic
authorAustin Clements <austin@google.com>
Thu, 16 Jun 2016 18:38:33 +0000 (14:38 -0400)
committerAustin Clements <austin@google.com>
Thu, 16 Jun 2016 19:32:33 +0000 (19:32 +0000)
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 <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/dist/buildgo.go

index c367c70b043089c72f2a52cadb6a8933b7bc19ed..3fab2354ad267835dfac6752351a3a1fc85124f9 100644 (file)
@@ -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)
 }