1*4882a593SmuzhiyunFrom 8512964c0bfdfc3c9c3805743ea7de551a1d476a Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Alex Kube <alexander.j.kube@gmail.com> 3*4882a593SmuzhiyunDate: Wed, 23 Oct 2019 21:15:37 +0430 4*4882a593SmuzhiyunSubject: [PATCH] cmd/go: Allow GOTOOLDIR to be overridden in the environment 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunto allow for split host/target build roots 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunAdapted to Go 1.13 from patches originally submitted to 9*4882a593Smuzhiyunthe meta/recipes-devtools/go tree by 10*4882a593SmuzhiyunMatt Madison <matt@madison.systems>. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunUpstream-Status: Inappropriate [OE specific] 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunSigned-off-by: Alexander J Kube <alexander.j.kube@gmail.com> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun--- 17*4882a593Smuzhiyun src/cmd/dist/build.go | 4 +++- 18*4882a593Smuzhiyun src/cmd/go/internal/cfg/cfg.go | 6 +++++- 19*4882a593Smuzhiyun 2 files changed, 8 insertions(+), 2 deletions(-) 20*4882a593Smuzhiyun 21*4882a593Smuzhiyundiff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go 22*4882a593Smuzhiyunindex bec1769..d82f612 100644 23*4882a593Smuzhiyun--- a/src/cmd/dist/build.go 24*4882a593Smuzhiyun+++ b/src/cmd/dist/build.go 25*4882a593Smuzhiyun@@ -248,7 +248,9 @@ func xinit() { 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun xatexit(rmworkdir) 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) 30*4882a593Smuzhiyun+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { 31*4882a593Smuzhiyun+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) 32*4882a593Smuzhiyun+ } 33*4882a593Smuzhiyun } 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun // compilerEnv returns a map from "goos/goarch" to the 36*4882a593Smuzhiyundiff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go 37*4882a593Smuzhiyunindex 57a3c1f..825d8c7 100644 38*4882a593Smuzhiyun--- a/src/cmd/go/internal/cfg/cfg.go 39*4882a593Smuzhiyun+++ b/src/cmd/go/internal/cfg/cfg.go 40*4882a593Smuzhiyun@@ -67,7 +67,11 @@ func defaultContext() build.Context { 41*4882a593Smuzhiyun // variables. This matches the initialization of ToolDir in 42*4882a593Smuzhiyun // go/build, except for using ctxt.GOROOT rather than 43*4882a593Smuzhiyun // runtime.GOROOT. 44*4882a593Smuzhiyun- build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) 45*4882a593Smuzhiyun+ if s := os.Getenv("GOTOOLDIR"); s != "" { 46*4882a593Smuzhiyun+ build.ToolDir = filepath.Clean(s) 47*4882a593Smuzhiyun+ } else { 48*4882a593Smuzhiyun+ build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) 49*4882a593Smuzhiyun+ } 50*4882a593Smuzhiyun } 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH) 53