]> Cypherpunks repositories - gostls13.git/commitdiff
build: for default bootstrap, use Go 1.17 if present, falling back to Go 1.4
authorRuss Cox <rsc@golang.org>
Mon, 6 Dec 2021 18:36:42 +0000 (13:36 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 8 Dec 2021 16:50:04 +0000 (16:50 +0000)
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>

src/cmd/dist/buildtool.go
src/make.bash
src/make.bat
src/make.rc

index 75f04a975c92d492ef46591d10bef65ba2520b53..17538ad5a43e22cfb39ffab3dc6782a1350e3a19 100644 (file)
@@ -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)
 
index 3310692a18c4a542d0601e887937b9adf34c5cc0..9acf079c24b9141792131a35e119a6df679e594c 100755 (executable)
@@ -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
index 8f2825b09a935fe36cc6cb67baa230eeed9e5977..6bffee050eec548aed83c86659297d534fcef34b 100644 (file)
@@ -83,6 +83,8 @@ for /f "tokens=*" %%g in ('where go 2^>nul') do (
                )\r
        )\r
 )\r
+if "x%GOROOT_BOOTSTRAP%"=="x" if exist "%HOMEDRIVE%%HOMEPATH%\go1.17" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\go1.17\r
+if "x%GOROOT_BOOTSTRAP%"=="x" if exist "%HOMEDRIVE%%HOMEPATH%\sdk\go1.17" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\sdk\go1.17\r
 if "x%GOROOT_BOOTSTRAP%"=="x" set GOROOT_BOOTSTRAP=%HOMEDRIVE%%HOMEPATH%\Go1.4\r
 \r
 :bootstrapset\r
index ba8c5db2d9fe7c375ae8ed58d3ae67fde2e00ddc..37087d6357c8b868e89e7163906ec0563636bba9 100755 (executable)
@@ -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){