aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-07-30 00:16:57 +0900
committerOphestra <cat@gensokyo.uk>2026-07-30 00:18:22 +0900
commit6487b41d922f56d46167802780fcde62d1f27095 (patch)
treea17e76fcb4cd790c3396a26960d45430672c0637 /cmd
parent7908fb9583cb6af84345508390ec9ea9fc986763 (diff)
internal/rosa: remove legacy exec helper
This change also adds a fourth stage to the bootstrap machinery, offering more correct toolchain validation that works around LLVM dynamic linking flaws. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/mbf/main.go18
1 files changed, 14 insertions, 4 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 6df5d741..d464fd54 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -616,7 +616,7 @@ func main() {
{
c.NewCommand(
- "stage3",
+ "stage4",
"Check for toolchain 3-stage non-determinism",
func(args []string) (err error) {
var (
@@ -636,21 +636,31 @@ func main() {
if err = cm.Do(func(cache *pkg.Cache) (err error) {
_, llvm := rosa.Native().New(rosa.Std - 1).Load(_llvm)
- pathname, checksum[0], err = cache.Cure(llvm)
+ pathname, _, err = cache.Cure(llvm)
return
}); err != nil {
return
}
log.Println("stage2:", pathname)
+
if err = cm.Do(func(cache *pkg.Cache) (err error) {
_, llvm := rosa.Native().New(rosa.Std).Load(_llvm)
- pathname, checksum[1], err = cache.Cure(llvm)
+ pathname, checksum[0], err = cache.Cure(llvm)
return
}); err != nil {
return
}
log.Println("stage3:", pathname)
+ if err = cm.Do(func(cache *pkg.Cache) (err error) {
+ _, llvm := rosa.Native().New(rosa.Stage3).Load(_llvm)
+ pathname, checksum[1], err = cache.Cure(llvm)
+ return
+ }); err != nil {
+ return
+ }
+ log.Println("stage4:", pathname)
+
if checksum[0] != checksum[1] {
err = &pkg.ChecksumMismatchError{
Got: checksum[0].Value(),
@@ -658,7 +668,7 @@ func main() {
}
} else {
log.Println(
- "stage2 is identical to stage3",
+ "stage3 is identical to stage4",
"("+pkg.Encode(checksum[0].Value())+")",
)
}