From bbe91e8bd3dcc84614c0dce62ec10024b96c3602 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 24 Oct 2018 19:05:40 +0000 Subject: [PATCH] cmd/release: don't ship race detector *.syso for other platforms Saves about 800k compressed, 2.2MB on disk. Updates golang/go#27151 Change-Id: Ie78e02c3956b81c18643c80620f97612d55fdd23 Reviewed-on: https://go-review.googlesource.com/c/144281 Reviewed-by: Andrew Bonventre --- cmd/release/release.go | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/cmd/release/release.go b/cmd/release/release.go index 0db915a37e..4e9e289238 100644 --- a/cmd/release/release.go +++ b/cmd/release/release.go @@ -246,11 +246,6 @@ var preBuildCleanFiles = []string{ "misc/makerelease", } -var postBuildCleanFiles = []string{ - "VERSION.cache", - "pkg/bootstrap", -} - func (b *Build) buildlet() (*buildlet.Client, error) { b.logf("Creating buildlet.") bc, err := coordClient.CreateBuildlet(b.Builder) @@ -430,6 +425,29 @@ func (b *Build) make() error { return err } + // postBuildCleanFiles are the list of files to remove in the go/ directory + // after things have been built. + postBuildCleanFiles := []string{ + "VERSION.cache", + "pkg/bootstrap", + } + + // Remove race detector *.syso files for other GOOS/GOARCHes (except for the source release). + if !b.Source { + okayRace := fmt.Sprintf("race_%s_%s.syso", b.OS, b.Arch) + err := client.ListDir(".", buildlet.ListDirOpts{Recursive: true}, func(ent buildlet.DirEntry) { + name := strings.TrimPrefix(ent.Name(), "go/") + if strings.HasPrefix(name, "src/runtime/race/race_") && + strings.HasSuffix(name, ".syso") && + path.Base(name) != okayRace { + postBuildCleanFiles = append(postBuildCleanFiles, name) + } + }) + if err != nil { + return fmt.Errorf("enumerating files to clean race syso files: %v", err) + } + } + b.logf("Cleaning goroot (post-build).") if err := client.RemoveAll(addPrefix(goDir, postBuildCleanFiles)...); err != nil { return err