diff options
-rwxr-xr-x | src/make.bash | 11 | ||||
-rwxr-xr-x | src/make.rc | 11 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/make.bash b/src/make.bash index 933573dd9d2..5b49fcccf73 100755 --- a/src/make.bash +++ b/src/make.bash @@ -159,14 +159,15 @@ if [[ -z "$GOROOT_BOOTSTRAP" ]]; then fi export GOROOT_BOOTSTRAP -nogoenv() { - GO111MODULE=off GOENV=off GOOS= GOARCH= GOEXPERIMENT= GOFLAGS= "$@" +bootstrapenv() { + GOROOT="$GOROOT_BOOTSTRAP" GO111MODULE=off GOENV=off GOOS= GOARCH= GOEXPERIMENT= GOFLAGS= "$@" } export GOROOT="$(cd .. && pwd)" IFS=$'\n'; for go_exe in $(type -ap go); do if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then - goroot=$(GOROOT= nogoenv "$go_exe" env GOROOT) + GOROOT_BOOTSTRAP="" + goroot=$(bootstrapenv "$go_exe" env GOROOT) if [[ "$goroot" != "$GOROOT" ]]; then if [[ "$goroot_bootstrap_set" == "true" ]]; then printf 'WARNING: %s does not exist, found %s from env\n' "$GOROOT_BOOTSTRAP/bin/go" "$go_exe" >&2 @@ -184,7 +185,7 @@ fi # Get the exact bootstrap toolchain version to help with debugging. # We clear GOOS and GOARCH to avoid an ominous but harmless warning if # the bootstrap doesn't support them. -GOROOT_BOOTSTRAP_VERSION=$(nogoenv "$GOROOT_BOOTSTRAP/bin/go" version | sed 's/go version //') +GOROOT_BOOTSTRAP_VERSION=$(bootstrapenv "$GOROOT_BOOTSTRAP/bin/go" version | sed 's/go version //') echo "Building Go cmd/dist using $GOROOT_BOOTSTRAP. ($GOROOT_BOOTSTRAP_VERSION)" if $verbose; then echo cmd/dist @@ -195,7 +196,7 @@ if [[ "$GOROOT_BOOTSTRAP" == "$GOROOT" ]]; then exit 1 fi rm -f cmd/dist/dist -GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist +bootstrapenv "$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.rc b/src/make.rc index 607e9360dc1..27456f759d2 100755 --- a/src/make.rc +++ b/src/make.rc @@ -44,8 +44,8 @@ if(~ $1 -v) { shift } -fn nogoenv { - GO111MODULE=off GOENV=off GOOS=() GOARCH=() GOEXPERIMENT=() GOFLAGS=() $* +fn bootstrapenv { + GOROOT=$GOROOT_BOOTSTRAP GO111MODULE=off GOENV=off GOOS=() GOARCH=() GOEXPERIMENT=() GOFLAGS=() $* } bootgo = 1.20.6 @@ -60,8 +60,9 @@ if(! ~ $#GOROOT_BOOTSTRAP 1){ } for(p in $path){ if(! test -x $GOROOT_BOOTSTRAP/bin/go){ + GOROOT_BOOTSTRAP = () if(go_exe = `{path=$p whatis go}){ - goroot = `{GOROOT=() nogoenv $go_exe env GOROOT} + goroot = `{bootstrapenv $go_exe env GOROOT} if(! ~ $goroot $GOROOT){ if(~ $goroot_bootstrap_set 'true'){ echo 'WARNING: '$GOROOT_BOOTSTRAP'/bin/go does not exist, found '$go_exe' from env' >[1=2] @@ -86,11 +87,11 @@ if(~ $GOROOT_BOOTSTRAP $GOROOT){ # Get the exact bootstrap toolchain version to help with debugging. # We clear GOOS and GOARCH to avoid an ominous but harmless warning if # the bootstrap doesn't support them. -GOROOT_BOOTSTRAP_VERSION=`{nogoenv $GOROOT_BOOTSTRAP/bin/go version | sed 's/go version //'} +GOROOT_BOOTSTRAP_VERSION=`{bootstrapenv $GOROOT_BOOTSTRAP/bin/go version | sed 's/go version //'} echo 'Building Go cmd/dist using '$GOROOT_BOOTSTRAP'. ('$"GOROOT_BOOTSTRAP_VERSION')' if(~ $#vflag 1) echo cmd/dist -GOROOT=$GOROOT_BOOTSTRAP nogoenv $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist +bootstrapenv $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist eval `{./cmd/dist/dist env -9} if(~ $#vflag 1) |