]> Cypherpunks repositories - gostls13.git/commitdiff
build: add `go env GOROOT` as default GOROOT_BOOTSTRAP value
authorWei Congrui <crvv.mail@gmail.com>
Tue, 22 Aug 2017 05:36:19 +0000 (13:36 +0800)
committerIan Lance Taylor <iant@golang.org>
Fri, 25 Aug 2017 05:36:27 +0000 (05:36 +0000)
This change also added the same check in make.bash to make.rc,
which makes sure $GOROOT_BOOTSTRAP != $GOROOT.

Fixes #14339

Change-Id: I2758f4a845bae42ace02492fc6a911f6d6247d26
Reviewed-on: https://go-review.googlesource.com/57753
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/make.bash
src/make.rc

index 71e75318f2e564241aea93c87107ddbd87f7f7ad..3804b46b03663cf02a603a85b82d38ae833fea20 100755 (executable)
@@ -119,7 +119,15 @@ rm -f ./runtime/runtime_defs.go
 echo '##### Building Go bootstrap tool.'
 echo cmd/dist
 export GOROOT="$(cd .. && pwd)"
-GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:-$HOME/go1.4}
+export GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:-$HOME/go1.4}
+for go_exe in $(type -ap go); do
+       if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
+               goroot=$(GOROOT='' $go_exe env GOROOT)
+               if [ "$goroot" != "$GOROOT" ]; then
+                       GOROOT_BOOTSTRAP=$goroot
+               fi
+       fi
+done
 if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
        echo "ERROR: Cannot find $GOROOT_BOOTSTRAP/bin/go." >&2
        echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." >&2
index ba3554cd764304de9746809b41dc249476e96ed2..604e4a89c90a4c8207a68e9044bed4aeec1f162f 100755 (executable)
@@ -46,11 +46,26 @@ echo cmd/dist
 GOROOT = `{cd .. && pwd}
 if(! ~ $#GOROOT_BOOTSTRAP 1)
        GOROOT_BOOTSTRAP = $home/go1.4
+for(p in $path){
+       if(! test -x $GOROOT_BOOTSTRAP/bin/go){
+               if(go_exe = `{path=$p whatis go}){
+                       goroot = `{GOROOT='' $go_exe env GOROOT}
+                       if(! ~ $goroot $GOROOT){
+                               GOROOT_BOOTSTRAP = $goroot
+                       }
+               }
+       }
+}
 if(! test -x $GOROOT_BOOTSTRAP/bin/go){
        echo 'ERROR: Cannot find '$GOROOT_BOOTSTRAP'/bin/go.' >[1=2]
        echo 'Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.' >[1=2]
        exit bootstrap
 }
+if(~ $GOROOT_BOOTSTRAP $GOROOT){
+       echo 'ERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOT' >[1=2]
+       echo 'Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.' >[1=2]
+       exit bootstrap
+}
 rm -f cmd/dist/dist
 GOROOT=$GOROOT_BOOTSTRAP GOOS='' GOARCH='' $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist