Skip to content

Commit ea5c927

Browse files
new
Change-Id: Iab695472bee8188ce6b0b21894b0e18badb2ab4e
1 parent c2cea55 commit ea5c927

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

src/cmd/dist/buildtool.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ package main
1313

1414
import (
1515
"fmt"
16+
"go/version"
1617
"os"
1718
"path/filepath"
1819
"regexp"
@@ -123,8 +124,6 @@ var tryDirs = []string{
123124
"go1.22.6",
124125
}
125126

126-
var minBootStrapVersion [3]string = [3]string{"1", "22", "6"}
127-
128127
func bootstrapBuildTools() {
129128
goroot_bootstrap := os.Getenv("GOROOT_BOOTSTRAP")
130129
if goroot_bootstrap == "" {
@@ -139,16 +138,12 @@ func bootstrapBuildTools() {
139138

140139
// check bootstrap version.
141140
ver := run(pathf("%s/bin", goroot_bootstrap), CheckExit, pathf("%s/bin/go", goroot_bootstrap), "version")
142-
_, after, _ := strings.Cut(ver, "go1")
143-
if after != "" {
144-
v := strings.Split(after, ".")
145-
// if go version output is go1.22.6 goos/goarch
146-
// v is ["","22","6 goos/aoarch"].
147-
if len(v) == 3 {
148-
if v[1] < minBootStrapVersion[1] || strings.Split(v[2], " ")[0] < minBootStrapVersion[2] {
149-
fatalf("requires Go 1.%s.%s or later for bootstrap", minBootStrapVersion[1], minBootStrapVersion[2])
150-
}
151-
}
141+
// if go1.22.6,
142+
// go version output go version 1.22.6 goos/aoarch,
143+
// so split(ver," ")[2].
144+
ver = strings.Split(ver, " ")[2]
145+
if version.Compare(ver, tryDirs[1]) == -1 {
146+
fatalf("requires %s or later for bootstrap", tryDirs[1])
152147
}
153148

154149
xprintf("Building Go toolchain1 using %s.\n", goroot_bootstrap)

0 commit comments

Comments
 (0)