From db47a2706fb1078f6c5ddbaabc5bc09615c0457b Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 14 Jan 2015 11:50:21 -0500 Subject: [PATCH] [dev.cc] build: fix cross-compilation Fixes #9574. Change-Id: Ifd7ecccb25e934f9aba284b2d72b6b22f18cb0b6 Reviewed-on: https://go-review.googlesource.com/2812 Reviewed-by: Brad Fitzpatrick --- src/make.bash | 2 +- src/make.bat | 10 +++------- src/make.rc | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/make.bash b/src/make.bash index 54c4d61249..2b07ee7780 100755 --- a/src/make.bash +++ b/src/make.bash @@ -121,7 +121,7 @@ if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." >&2 fi rm -f cmd/dist/dist -GOROOT="$GOROOT_BOOTSTRAP" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist +GOROOT="$GOROOT_BOOTSTRAP" GOOS="$GOHOSTOS" GOARCH="$GOHOSTARCH" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist # -e doesn't propagate out of eval, so check success by hand. eval $(./cmd/dist/dist env -p || echo FAIL=true) diff --git a/src/make.bat b/src/make.bat index 945c8cc5f9..62401b622d 100644 --- a/src/make.bat +++ b/src/make.bat @@ -45,16 +45,10 @@ goto fail :: Clean old generated file that will cause problems in the build. del /F ".\pkg\runtime\runtime_defs.go" 2>NUL -:: Grab default GOROOT_FINAL and set GOROOT for build. -:: The expression %VAR:\=\\% means to take %VAR% -:: and apply the substitution \ = \\, escaping the -:: backslashes. Then we wrap that in quotes to create -:: a C string. +:: Set GOROOT for build. cd .. set GOROOT=%CD% cd src -if "x%GOROOT_FINAL%"=="x" set GOROOT_FINAL=%GOROOT% -set DEFGOROOT=-DGOROOT_FINAL="\"%GOROOT_FINAL:\=\\%\"" echo ##### Building Go bootstrap tool. echo cmd/dist @@ -63,6 +57,8 @@ if "x%GOROOT_BOOTSTRAP%"=="x" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\Go1.4 if not exist "%GOROOT_BOOTSTRAP%\bin\go.exe" goto bootstrapfail setlocal set GOROOT=%GOROOT_BOOTSTRAP% +set GOOS=%GOHOSTOS% +set GOARCH=%GOHOSTARCH% "%GOROOT_BOOTSTRAP%\bin\go" build -o cmd\dist\dist.exe .\cmd\dist endlocal if errorlevel 1 goto fail diff --git a/src/make.rc b/src/make.rc index 2d2076297e..761b93e995 100755 --- a/src/make.rc +++ b/src/make.rc @@ -58,7 +58,7 @@ if(! test -x $GOROOT_BOOTSTRAP/bin/go){ exit bootstrap } rm -f cmd/dist/dist -GOROOT=$GOROOT_BOOTSTRAP $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist +GOROOT=$GOROOT_BOOTSTRAP GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist eval `{./cmd/dist/dist env -9} echo