cmd/dist: enforce the lowest bootstrap version

The go1.24 release notes say that go1.22.6 is the
minimum bootstraps required,
the go team also use go1.22.6 bootstraps in testing,
so if there's a problem with using an older version,
automated testing won't uncover it.

Now enforce this in dist to avoid
release notes that do not match reality, which can be confusing.

For #64751

Change-Id: Icd2f8a47b2bbb2d7c3dab9be9a228f43b9630063
GitHub-Last-Rev: 425cd7f03c
GitHub-Pull-Request: golang/go#69168
Reviewed-on: https://go-review.googlesource.com/c/go/+/609762
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
This commit is contained in:
qiulaidongfeng 2024-09-24 12:53:21 +00:00 committed by Gopher Robot
parent 80143607f0
commit 607975cfa1
1 changed files with 14 additions and 2 deletions

View File

@ -13,6 +13,7 @@ package main
import (
"fmt"
"go/version"
"os"
"path/filepath"
"regexp"
@ -118,9 +119,11 @@ var ignoreSuffixes = []string{
"~",
}
const minBootstrap = "go1.22.6"
var tryDirs = []string{
"sdk/go1.22.6",
"go1.22.6",
"sdk/" + minBootstrap,
minBootstrap,
}
func bootstrapBuildTools() {
@ -134,6 +137,15 @@ func bootstrapBuildTools() {
}
}
}
// check bootstrap version.
ver := run(pathf("%s/bin", goroot_bootstrap), CheckExit, pathf("%s/bin/go", goroot_bootstrap), "env", "GOVERSION")
// go env GOVERSION output like "go1.22.6\n" or "devel go1.24-ffb3e574 Thu Aug 29 20:16:26 2024 +0000\n".
ver = ver[:len(ver)-1]
if version.Compare(ver, version.Lang(minBootstrap)) > 0 && version.Compare(ver, minBootstrap) < 0 {
fatalf("%s does not meet the minimum bootstrap requirement of %s or later", ver, minBootstrap)
}
xprintf("Building Go toolchain1 using %s.\n", goroot_bootstrap)
mkbuildcfg(pathf("%s/src/internal/buildcfg/zbootstrap.go", goroot))