internal/rosa: pass stage alongside state

This cleans up many function signatures.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-17 16:44:13 +09:00
parent 30eb0d6a61
commit 38bc2c7508
89 changed files with 563 additions and 558 deletions

View File

@@ -7,9 +7,9 @@ import (
)
// newGoBootstrap returns the Go bootstrap toolchain.
func (s *S) newGoBootstrap(t Toolchain) pkg.Artifact {
func (t Toolchain) newGoBootstrap() pkg.Artifact {
const checksum = "8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23"
return s.New(t, "go1.4-bootstrap", 0, s.AppendPresets(t, nil,
return t.New("go1.4-bootstrap", 0, t.Append(nil,
Bash,
), nil, []string{
"CGO_ENABLED=0",
@@ -28,18 +28,17 @@ chmod -R +w ..
}
// newGo returns a specific version of the Go toolchain.
func (s *S) newGo(
t Toolchain,
func (t Toolchain) newGo(
version, checksum string,
env []string,
script string,
extra ...pkg.Artifact,
) pkg.Artifact {
name := "all"
if s.opts&OptSkipCheck != 0 {
if t.opts&OptSkipCheck != 0 {
name = "make"
}
return s.New(t, "go"+version, 0, s.AppendPresets(t, extra,
return t.New("go"+version, 0, t.Append(extra,
Bash,
), nil, slices.Concat([]string{
"CC=cc",
@@ -66,27 +65,27 @@ ln -s \
)))
}
func (t Toolchain) newGoLatest(s *S) (pkg.Artifact, string) {
func (t Toolchain) newGoLatest() (pkg.Artifact, string) {
var (
bootstrapEnv []string
bootstrapExtra []pkg.Artifact
finalEnv []string
)
switch s.arch {
switch t.arch {
case "amd64":
bootstrapExtra = append(bootstrapExtra, s.newGoBootstrap(t))
bootstrapExtra = append(bootstrapExtra, t.newGoBootstrap())
case "arm64", "riscv64":
bootstrapEnv = append(bootstrapEnv, "GOROOT_BOOTSTRAP=/system")
bootstrapExtra = s.AppendPresets(t, bootstrapExtra, gcc)
bootstrapExtra = t.Append(bootstrapExtra, gcc)
finalEnv = append(finalEnv, "CGO_ENABLED=0")
default:
panic("unsupported target " + s.arch)
panic("unsupported target " + t.arch)
}
go119 := s.newGo(t,
go119 := t.newGo(
"1.19",
"9_e0aFHsIkVxWVGsp9T2RvvjOc3p4n9o9S8tkNe9Cvgzk_zI2FhRQB7ioQkeAAro",
append(bootstrapEnv, "CGO_ENABLED=0"), `
@@ -102,13 +101,13 @@ echo \
os/rawconn_test.go
`, bootstrapExtra...)
go121 := s.newGo(t,
go121 := t.newGo(
"1.21.13",
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
crypto/tls/handshake_client_test.go \
@@ -120,23 +119,23 @@ echo \
`, go119,
)
go123 := s.newGo(t,
go123 := t.newGo(
"1.23.12",
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
`, go121,
)
go125 := s.newGo(t,
go125 := t.newGo(
"1.25.10",
"TwKwatkpwal-j9U2sDSRPEdM3YesI4Gm88YgGV59wtU-L85K9gA7UPy9SCxn6PMb",
[]string{"CGO_ENABLED=0"}, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
os/root_unix_test.go \
@@ -148,13 +147,13 @@ rm \
version = "1.26.3"
checksum = "lEiFocZFnN5fKvZzmwVdqc9pYUjAuhzqZGbuiOqxUP4XdcY8yECisKcqsQ_eNn1N"
)
return s.newGo(t,
return t.newGo(
version,
checksum,
finalEnv, `
sed -i \
's,/lib/ld-musl-`+s.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+s.arch+`/obj.go
's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
sed -i \
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
internal/runtime/gc/scan/scan_amd64.go