Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 1 | From 44f961975dac6cf464a77b5f6dd0c47cc192c4fd Mon Sep 17 00:00:00 2001 |
| 2 | From: Matt Madison <matt@madison.systems> |
| 3 | Date: Wed, 13 Sep 2017 08:19:52 -0700 |
| 4 | Subject: [PATCH 5/7] cmd/go: make GOROOT precious by default |
| 5 | |
| 6 | For OE builds, we never want packages that have |
| 7 | already been installed into the build root to be |
| 8 | modified, so prevent the go build tool from checking |
| 9 | if they should be rebuilt. |
| 10 | |
| 11 | Also add an environment variable to override this |
| 12 | behavior, just for building the Go runtime. |
| 13 | |
| 14 | Upstream-Status: Pending |
| 15 | |
| 16 | Signed-off-by: Matt Madison <matt@madison.systems> |
| 17 | --- |
| 18 | src/cmd/go/internal/load/pkg.go | 7 +++++++ |
| 19 | 1 file changed, 7 insertions(+) |
| 20 | |
| 21 | diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go |
| 22 | index 60de666..2660d3f 100644 |
| 23 | --- a/src/cmd/go/internal/load/pkg.go |
| 24 | +++ b/src/cmd/go/internal/load/pkg.go |
| 25 | @@ -1530,6 +1530,13 @@ func isStale(p *Package) (bool, string) { |
| 26 | return true, "build ID mismatch" |
| 27 | } |
| 28 | |
| 29 | + // For OE builds, make anything in GOROOT non-stale, |
| 30 | + // to prevent a package build from overwriting the |
| 31 | + // build root. |
| 32 | + if p.Goroot && os.Getenv("GOROOT_OVERRIDE") != "1" { |
| 33 | + return false, "GOROOT-resident packages do not get rebuilt" |
| 34 | + } |
| 35 | + |
| 36 | // Package is stale if a dependency is. |
| 37 | for _, p1 := range p.Internal.Deps { |
| 38 | if p1.Stale { |
| 39 | -- |
| 40 | 2.7.4 |
| 41 | |