| From 44f961975dac6cf464a77b5f6dd0c47cc192c4fd Mon Sep 17 00:00:00 2001 |
| From: Matt Madison <matt@madison.systems> |
| Date: Wed, 13 Sep 2017 08:19:52 -0700 |
| Subject: [PATCH 5/7] cmd/go: make GOROOT precious by default |
| |
| For OE builds, we never want packages that have |
| already been installed into the build root to be |
| modified, so prevent the go build tool from checking |
| if they should be rebuilt. |
| |
| Also add an environment variable to override this |
| behavior, just for building the Go runtime. |
| |
| Upstream-Status: Pending |
| |
| Signed-off-by: Matt Madison <matt@madison.systems> |
| --- |
| src/cmd/go/internal/load/pkg.go | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go |
| index 60de666..2660d3f 100644 |
| --- a/src/cmd/go/internal/load/pkg.go |
| +++ b/src/cmd/go/internal/load/pkg.go |
| @@ -1530,6 +1530,13 @@ func isStale(p *Package) (bool, string) { |
| return true, "build ID mismatch" |
| } |
| |
| + // For OE builds, make anything in GOROOT non-stale, |
| + // to prevent a package build from overwriting the |
| + // build root. |
| + if p.Goroot && os.Getenv("GOROOT_OVERRIDE") != "1" { |
| + return false, "GOROOT-resident packages do not get rebuilt" |
| + } |
| + |
| // Package is stale if a dependency is. |
| for _, p1 := range p.Internal.Deps { |
| if p1.Stale { |
| -- |
| 2.7.4 |
| |