From 78eadc87df453c2a325fd9762d57e3232179b631 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Sun, 26 May 2024 18:27:53 +0000 Subject: [PATCH] make.bash: preserve GOROOT_BOOTSTRAP CL 582076 made the GOROOT_BOOTSTRAP set to "", which in turn causes the next iteration to return true. "$GOROOT_BOOTSTRAP/bin/go" becomes "/bin/go", which always exists. Fixes #67654 Change-Id: I290bd4a7defc58e4b34d5bf955ef4f34569ff0ed GitHub-Last-Rev: 9c7134fa44874b0a9d03807aa583b1088cc13922 GitHub-Pull-Request: golang/go#67655 Reviewed-on: https://go-review.googlesource.com/c/go/+/588436 Auto-Submit: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI Reviewed-by: Than McIntosh Reviewed-by: Ian Lance Taylor --- src/make.bash | 2 ++ src/make.rc | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/make.bash b/src/make.bash index 5b49fcccf7..814b7e87e1 100755 --- a/src/make.bash +++ b/src/make.bash @@ -166,8 +166,10 @@ bootstrapenv() { export GOROOT="$(cd .. && pwd)" IFS=$'\n'; for go_exe in $(type -ap go); do if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then + goroot_bootstrap=$GOROOT_BOOTSTRAP GOROOT_BOOTSTRAP="" goroot=$(bootstrapenv "$go_exe" env GOROOT) + GOROOT_BOOTSTRAP=$goroot_bootstrap 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 diff --git a/src/make.rc b/src/make.rc index 27456f759d..54250011dc 100755 --- a/src/make.rc +++ b/src/make.rc @@ -60,9 +60,11 @@ 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_bootstrap = $GOROOT_BOOTSTRAP + GOROOT_BOOTSTRAP = () goroot = `{bootstrapenv $go_exe env GOROOT} + GOROOT_BOOTSTRAP = $goroot_bootstrap if(! ~ $goroot $GOROOT){ if(~ $goroot_bootstrap_set 'true'){ echo 'WARNING: '$GOROOT_BOOTSTRAP'/bin/go does not exist, found '$go_exe' from env' >[1=2] -- 2.48.1