| From e1382a731a726293e30901038c6870fa77ef6095 Mon Sep 17 00:00:00 2001 |
| From: Angelo Compagnucci <angelo@amarulasolutions.com> |
| Date: Tue, 8 May 2018 16:08:44 +0200 |
| Subject: [PATCH] build.go: explicit option for crosscompilation |
| |
| Actually if GOHOSTOS == GOOS || GOHOSTARCH == GOARCH the go build system |
| assume it's not cross compiling and uses the same toolchain also for the |
| bootstrap. This is a problem in case the cross compilation mandates a |
| different toolchain for bootstrap and target. This patch adds |
| GO_ASSUME_CROSSCOMPILING varible to assure that in case of cross |
| compilation CC_FOR_TARGET can be different from CC. |
| |
| Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> |
| Signed-off-by: Anisse Astier <anisse@astier.eu> |
| --- |
| src/cmd/dist/build.go | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go |
| index 99d1db5..eb4097f 100644 |
| --- a/src/cmd/dist/build.go |
| +++ b/src/cmd/dist/build.go |
| @@ -252,12 +252,13 @@ func xinit() { |
| // $CC_FOR_goos_goarch, if set, applies only to goos/goarch. |
| func compilerEnv(envName, def string) map[string]string { |
| m := map[string]string{"": def} |
| + crosscompiling := os.Getenv("GO_ASSUME_CROSSCOMPILING") |
| |
| if env := os.Getenv(envName); env != "" { |
| m[""] = env |
| } |
| if env := os.Getenv(envName + "_FOR_TARGET"); env != "" { |
| - if gohostos != goos || gohostarch != goarch { |
| + if gohostos != goos || gohostarch != goarch || crosscompiling == "1" { |
| m[gohostos+"/"+gohostarch] = m[""] |
| } |
| m[""] = env |
| -- |
| 2.7.4 |
| |