From 19912e1d0a0739cd8a3214de994f7e9ecb656e1d Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 26 Apr 2016 15:18:48 -0700 Subject: [PATCH] cmd/dist: sort entries in zcgo.go generated file for deterministic build This simplifies comparison of object files across different builds by ensuring that the strings in the zcgo.go always appear in the same order. Change-Id: I3639ea4fd10e0d645b838d1bbb03cd33deca340e Reviewed-on: https://go-review.googlesource.com/22478 Reviewed-by: Matthew Dempsky --- src/cmd/dist/buildgo.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go index af33ecd66d..2b68fc2224 100644 --- a/src/cmd/dist/buildgo.go +++ b/src/cmd/dist/buildgo.go @@ -7,6 +7,7 @@ package main import ( "bytes" "fmt" + "sort" ) /* @@ -48,6 +49,15 @@ func mkzdefaultcc(dir, file string) { // // It is invoked to write go/build/zcgo.go. func mkzcgo(dir, file string) { + // sort for deterministic zcgo.go file + var list []string + for plat, hasCgo := range cgoEnabled { + if hasCgo { + list = append(list, plat) + } + } + sort.Strings(list) + var buf bytes.Buffer fmt.Fprintf(&buf, @@ -56,10 +66,8 @@ func mkzcgo(dir, file string) { "package build\n"+ "\n"+ "var cgoEnabled = map[string]bool{\n") - for plat, hasCgo := range cgoEnabled { - if hasCgo { - fmt.Fprintf(&buf, "\t%q: true,\n", plat) - } + for _, plat := range list { + fmt.Fprintf(&buf, "\t%q: true,\n", plat) } fmt.Fprintf(&buf, "}") -- 2.50.0