diff options
| author | Robert Griesemer <gri@golang.org> | 2016-04-26 15:18:48 -0700 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2016-04-26 22:48:31 +0000 |
| commit | 19912e1d0a0739cd8a3214de994f7e9ecb656e1d (patch) | |
| tree | b02c44039dfea7085f7727cc91c08bdfecadbcc0 /src/cmd/dist | |
| parent | e607abbfd6e0550c13f4fa7b666d033eb9b14759 (diff) | |
| download | go-19912e1d0a0739cd8a3214de994f7e9ecb656e1d.tar.xz | |
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 <mdempsky@google.com>
Diffstat (limited to 'src/cmd/dist')
| -rw-r--r-- | src/cmd/dist/buildgo.go | 16 |
1 files 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, "}") |
