1*4882a593SmuzhiyunFrom e1382a731a726293e30901038c6870fa77ef6095 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Angelo Compagnucci <angelo@amarulasolutions.com> 3*4882a593SmuzhiyunDate: Tue, 8 May 2018 16:08:44 +0200 4*4882a593SmuzhiyunSubject: [PATCH] build.go: explicit option for crosscompilation 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunActually if GOHOSTOS == GOOS || GOHOSTARCH == GOARCH the go build system 7*4882a593Smuzhiyunassume it's not cross compiling and uses the same toolchain also for the 8*4882a593Smuzhiyunbootstrap. This is a problem in case the cross compilation mandates a 9*4882a593Smuzhiyundifferent toolchain for bootstrap and target. This patch adds 10*4882a593SmuzhiyunGO_ASSUME_CROSSCOMPILING varible to assure that in case of cross 11*4882a593Smuzhiyuncompilation CC_FOR_TARGET can be different from CC. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunSigned-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> 14*4882a593SmuzhiyunSigned-off-by: Anisse Astier <anisse@astier.eu> 15*4882a593Smuzhiyun--- 16*4882a593Smuzhiyun src/cmd/dist/build.go | 3 ++- 17*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 1 deletion(-) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyundiff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go 20*4882a593Smuzhiyunindex 99d1db5..eb4097f 100644 21*4882a593Smuzhiyun--- a/src/cmd/dist/build.go 22*4882a593Smuzhiyun+++ b/src/cmd/dist/build.go 23*4882a593Smuzhiyun@@ -252,12 +252,13 @@ func xinit() { 24*4882a593Smuzhiyun // $CC_FOR_goos_goarch, if set, applies only to goos/goarch. 25*4882a593Smuzhiyun func compilerEnv(envName, def string) map[string]string { 26*4882a593Smuzhiyun m := map[string]string{"": def} 27*4882a593Smuzhiyun+ crosscompiling := os.Getenv("GO_ASSUME_CROSSCOMPILING") 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun if env := os.Getenv(envName); env != "" { 30*4882a593Smuzhiyun m[""] = env 31*4882a593Smuzhiyun } 32*4882a593Smuzhiyun if env := os.Getenv(envName + "_FOR_TARGET"); env != "" { 33*4882a593Smuzhiyun- if gohostos != goos || gohostarch != goarch { 34*4882a593Smuzhiyun+ if gohostos != goos || gohostarch != goarch || crosscompiling == "1" { 35*4882a593Smuzhiyun m[gohostos+"/"+gohostarch] = m[""] 36*4882a593Smuzhiyun } 37*4882a593Smuzhiyun m[""] = env 38*4882a593Smuzhiyun-- 39*4882a593Smuzhiyun2.7.4 40*4882a593Smuzhiyun 41