mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
make.bat: fix GOROOT_BOOTSTRAP detection
Due to a flaw in the %GOROOT_BOOTSTRAP% detection logic, the last Go executable found by `where go` was taking precedence over the first one. In batch scripts, environment variable expansion happens when each line of the script is read, not when it is executed. Thus, the check in the loop for GOROOT_BOOTSTRAP being unset would always be true, even when the variable had been set in a previous loop iteration. See SET /? for more information. Change-Id: I15ddcbe771a902acb47a1f07ba7f4cb8a311e0dc Reviewed-on: https://go-review.googlesource.com/c/go/+/653535 Auto-Submit: Carlos Amedee <carlos@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Quim Muntal <quimmuntal@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
fd8f6cec21
commit
9326d9d012
15
src/make.bat
15
src/make.bat
@ -60,14 +60,13 @@ if not exist ..\bin\tool mkdir ..\bin\tool
|
||||
:: Calculating GOROOT_BOOTSTRAP
|
||||
if not "x%GOROOT_BOOTSTRAP%"=="x" goto bootstrapset
|
||||
for /f "tokens=*" %%g in ('where go 2^>nul') do (
|
||||
if "x%GOROOT_BOOTSTRAP%"=="x" (
|
||||
setlocal
|
||||
call :nogoenv
|
||||
for /f "tokens=*" %%i in ('"%%g" env GOROOT 2^>nul') do (
|
||||
endlocal
|
||||
if /I not "%%i"=="%GOROOT_TEMP%" (
|
||||
set GOROOT_BOOTSTRAP=%%i
|
||||
)
|
||||
setlocal
|
||||
call :nogoenv
|
||||
for /f "tokens=*" %%i in ('"%%g" env GOROOT 2^>nul') do (
|
||||
endlocal
|
||||
if /I not "%%i"=="%GOROOT_TEMP%" (
|
||||
set GOROOT_BOOTSTRAP=%%i
|
||||
goto bootstrapset
|
||||
)
|
||||
)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user