| 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 |  |