internal/rosa/llvm: migrate runtimes and clang
All checks were successful
Test / Create distribution (push) Successful in 1m56s
Test / ShareFS (push) Successful in 8m1s
Test / Sandbox (race detector) (push) Successful in 8m31s
Test / Hakurei (race detector) (push) Successful in 9m57s
Test / Sandbox (push) Successful in 2m13s
Test / Hakurei (push) Successful in 3m17s
Test / Flake checks (push) Successful in 1m38s

This eliminates most newLLVM family of functions.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-04-14 02:06:08 +09:00
parent eeffefd22b
commit e97f6a393f
4 changed files with 117 additions and 114 deletions

View File

@@ -396,24 +396,27 @@ func main() {
rosa.SetGentooStage3(flagGentoo, checksum)
}
_, stage1 := (t - 2).NewLLVM()
_, stage2 := (t - 1).NewLLVM()
_, stage3 := t.NewLLVM()
var (
pathname *check.Absolute
checksum [2]unique.Handle[pkg.Checksum]
)
if pathname, _, err = cache.Cure(stage1); err != nil {
if pathname, _, err = cache.Cure(
(t - 2).Load(rosa.LLVMClang),
); err != nil {
return err
}
log.Println("stage1:", pathname)
if pathname, checksum[0], err = cache.Cure(stage2); err != nil {
if pathname, checksum[0], err = cache.Cure(
(t - 1).Load(rosa.LLVMClang),
); err != nil {
return err
}
log.Println("stage2:", pathname)
if pathname, checksum[1], err = cache.Cure(stage3); err != nil {
if pathname, checksum[1], err = cache.Cure(
t.Load(rosa.LLVMClang),
); err != nil {
return err
}
log.Println("stage3:", pathname)
@@ -565,7 +568,7 @@ func main() {
"shell",
"Interactive shell in the specified Rosa OS environment",
func(args []string) error {
presets := make([]rosa.PArtifact, len(args))
presets := make([]rosa.PArtifact, len(args)+3)
for i, arg := range args {
p, ok := rosa.ResolveName(arg)
if !ok {
@@ -573,25 +576,20 @@ func main() {
}
presets[i] = p
}
base := rosa.LLVMClang
if !flagWithToolchain {
base = rosa.Musl
}
presets = append(presets,
base,
rosa.Mksh,
rosa.Toybox,
)
root := make(pkg.Collect, 0, 6+len(args))
root = rosa.Std.AppendPresets(root, presets...)
if flagWithToolchain {
boot := rosa.Std - 1
runtimes, clang := boot.NewLLVM()
root = append(root,
boot.Load(rosa.Musl),
boot.Load(rosa.LLVMCompilerRT),
runtimes, clang,
)
} else {
root = append(root, rosa.Std.Load(rosa.Musl))
}
root = append(root,
rosa.Std.Load(rosa.Mksh),
rosa.Std.Load(rosa.Toybox),
)
if _, _, err := cache.Cure(&root); err == nil {
return errors.New("unreachable")
} else if !pkg.IsCollected(err) {