Commit 4f2ee499 authored by Russ Cox's avatar Russ Cox

cmd/dist: translate /private/var to /var on darwin builders

This is ugly but needed on the builders, because they do not set
PWD/GOROOT consistently, and the new content-based staleness
understands that the setting of GOROOT influences the content in
the linker outputs.

Change-Id: I0606f2c70b719619b188864ad3ae1b34432140cb
Reviewed-on: https://go-review.googlesource.com/74070
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
parent a4d03a9b
...@@ -12,6 +12,7 @@ import ( ...@@ -12,6 +12,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"runtime"
"sort" "sort"
"strings" "strings"
"sync" "sync"
...@@ -100,6 +101,22 @@ func xinit() { ...@@ -100,6 +101,22 @@ func xinit() {
} }
goroot = filepath.Clean(b) goroot = filepath.Clean(b)
if runtime.GOOS == "darwin" && strings.HasPrefix(goroot, "/private/") {
// The builders don't set $PWD correctly during make.bash
// but then they apparently do set it or perhaps $GOROOT
// during run.bash. During make.bash we infer that
// GOROOT=/private/var/blah/blah but then during run.bash
// apparently GOROOT=/var/blah/blah. This makes all commands
// seem out of date, which breaks some tests.
// Instead of finding the problem in the builders, fix it here.
// This is not great but is the best we can do today.
f1, err1 := os.Stat(goroot)
f2, err2 := os.Stat(strings.TrimPrefix(goroot, "/private"))
if err1 == nil && err2 == nil && os.SameFile(f1, f2) {
goroot = strings.TrimPrefix(goroot, "/private")
}
}
b = os.Getenv("GOROOT_FINAL") b = os.Getenv("GOROOT_FINAL")
if b == "" { if b == "" {
b = goroot b = goroot
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment