mirror of
https://github.com/golang/go
synced 2024-11-25 18:17:56 -07:00
cmd/api: ignore GOARCH when building cmd/api.
This was breaking people setting GOARCH=386 before running all.bash on amd64 machines. cmd/go puts different architecture binaries where "go tool" can't find them. R=golang-dev, r, khr CC=golang-dev https://golang.org/cl/13139044
This commit is contained in:
parent
33f3dffa7c
commit
cb79c57dfa
@ -21,6 +21,7 @@ import (
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// goToolsVersion is the hg revision of the go.tools subrepo we need
|
||||
@ -45,7 +46,7 @@ func main() {
|
||||
gopath := prepGoPath()
|
||||
|
||||
cmd := exec.Command("go", "install", "--tags=api_tool", "cmd/api")
|
||||
cmd.Env = append([]string{"GOPATH=" + gopath}, os.Environ()...)
|
||||
cmd.Env = append([]string{"GOPATH=" + gopath}, filterOut(os.Environ(), "GOARCH")...)
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatalf("Error installing cmd/api: %v\n%s", err, out)
|
||||
@ -61,6 +62,22 @@ func main() {
|
||||
fmt.Print(string(out))
|
||||
}
|
||||
|
||||
// filterOut returns a copy of the src environment without environment
|
||||
// variables from remove.
|
||||
// TODO: delete when issue 6201 is fixed.
|
||||
func filterOut(src []string, remove ...string) (out []string) {
|
||||
S:
|
||||
for _, s := range src {
|
||||
for _, r := range remove {
|
||||
if strings.HasPrefix(s, r) && strings.HasPrefix(s, r+"=") {
|
||||
continue S
|
||||
}
|
||||
}
|
||||
out = append(out, s)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// file expands s to $GOROOT/api/s.txt.
|
||||
// If there are more than 1, they're comma-separated.
|
||||
func file(s ...string) string {
|
||||
|
Loading…
Reference in New Issue
Block a user