aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2021-12-06 13:36:42 -0500
committerRuss Cox <rsc@golang.org>2021-12-08 16:50:04 +0000
commitf5b5939c28ecb8b8c0897584fed78589c27348f6 (patch)
tree66e3b39fdca16397ea4d03ddd4d25659d1209139 /src
parent46db6aa1573def4ba06dbf5c38e704d85dc303b6 (diff)
downloadgo-f5b5939c28ecb8b8c0897584fed78589c27348f6.tar.xz
build: for default bootstrap, use Go 1.17 if present, falling back to Go 1.4
Preparation for #44505, but safe for Go 1.18. Also fixes the default build on Macs, at least for people who have a $HOME/go1.17 or have run go install golang.org/dl/go1.17@latest go1.17 download Replay of CL 369914 after revert in CL 370138. Only change is adding 'export GOROOT_BOOTSTRAP' in make.bash. Change-Id: I8ced4e87a9dc0f05cc49095578b401ae6212ac85 Reviewed-on: https://go-review.googlesource.com/c/go/+/370274 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/dist/buildtool.go13
-rwxr-xr-xsrc/make.bash11
-rw-r--r--src/make.bat2
-rwxr-xr-xsrc/make.rc3
4 files changed, 27 insertions, 2 deletions
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index 75f04a975c..17538ad5a4 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -93,10 +93,21 @@ var ignoreSuffixes = []string{
"_test.go",
}
+var tryDirs = []string{
+ "sdk/go1.17",
+ "go1.17",
+}
+
func bootstrapBuildTools() {
goroot_bootstrap := os.Getenv("GOROOT_BOOTSTRAP")
if goroot_bootstrap == "" {
- goroot_bootstrap = pathf("%s/go1.4", os.Getenv("HOME"))
+ home := os.Getenv("HOME")
+ goroot_bootstrap = pathf("%s/go1.4", home)
+ for _, d := range tryDirs {
+ if p := pathf("%s/%s", home, d); isdir(p) {
+ goroot_bootstrap = p
+ }
+ }
}
xprintf("Building Go toolchain1 using %s.\n", goroot_bootstrap)
diff --git a/src/make.bash b/src/make.bash
index 3310692a18..9acf079c24 100755
--- a/src/make.bash
+++ b/src/make.bash
@@ -153,7 +153,16 @@ if [ "$1" = "-v" ]; then
fi
goroot_bootstrap_set=${GOROOT_BOOTSTRAP+"true"}
-export GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:-$HOME/go1.4}
+if [ -z "$GOROOT_BOOTSTRAP" ]; then
+ GOROOT_BOOTSTRAP="$HOME/go1.4"
+ for d in sdk/go1.17 go1.17; do
+ if [ -d "$HOME/$d" ]; then
+ GOROOT_BOOTSTRAP="$HOME/$d"
+ fi
+ done
+fi
+export GOROOT_BOOTSTRAP
+
export GOROOT="$(cd .. && pwd)"
IFS=$'\n'; for go_exe in $(type -ap go); do
if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
diff --git a/src/make.bat b/src/make.bat
index 8f2825b09a..6bffee050e 100644
--- a/src/make.bat
+++ b/src/make.bat
@@ -83,6 +83,8 @@ for /f "tokens=*" %%g in ('where go 2^>nul') do (
)
)
)
+if "x%GOROOT_BOOTSTRAP%"=="x" if exist "%HOMEDRIVE%%HOMEPATH%\go1.17" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\go1.17
+if "x%GOROOT_BOOTSTRAP%"=="x" if exist "%HOMEDRIVE%%HOMEPATH%\sdk\go1.17" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\sdk\go1.17
if "x%GOROOT_BOOTSTRAP%"=="x" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\Go1.4
:bootstrapset
diff --git a/src/make.rc b/src/make.rc
index ba8c5db2d9..37087d6357 100755
--- a/src/make.rc
+++ b/src/make.rc
@@ -55,6 +55,9 @@ goroot_bootstrap_set = 'true'
if(! ~ $#GOROOT_BOOTSTRAP 1){
goroot_bootstrap_set = 'false'
GOROOT_BOOTSTRAP = $home/go1.4
+ for(d in sdk/go1.17 go1.17)
+ if(test -d $home/$d)
+ GOROOT_BOOTSTRAP = $home/$d
}
for(p in $path){
if(! test -x $GOROOT_BOOTSTRAP/bin/go){