From c20e54533ea49ca68640d9a59c9ed935b27da8e5 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 16 May 2017 18:02:56 -0700 Subject: [PATCH] cmd/go: don't fail on missing runtime/internal/sys/zversion.go The generated file runtime/internal/sys/zversion.go is deleted by `go tool cmd dist clean` as part of running clean.bash. Don't treat a missing file as a reason to stop running the go tool; just treat is as meaning that runtime/internal/sys is stale. No test because I don't particularly want to clobber $GOROOT. Fixes #20385. Change-Id: I5251a99542cc93c33f627f133d7118df56e18af1 Reviewed-on: https://go-review.googlesource.com/43559 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/go/internal/load/pkg.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go index 52c2085ef5..1a259a91bb 100644 --- a/src/cmd/go/internal/load/pkg.go +++ b/src/cmd/go/internal/load/pkg.go @@ -1644,7 +1644,10 @@ func computeBuildID(p *Package) { // different build ID in each Go release. if p.Standard && p.ImportPath == "runtime/internal/sys" && cfg.BuildContext.Compiler != "gccgo" { data, err := ioutil.ReadFile(filepath.Join(p.Dir, "zversion.go")) - if err != nil { + if os.IsNotExist(err) { + p.Stale = true + p.StaleReason = fmt.Sprintf("missing zversion.go") + } else if err != nil { base.Fatalf("go: %s", err) } fmt.Fprintf(h, "zversion %q\n", string(data))