Skip to content

Commit ec34195

Browse files
committed
fix: restore the project's toolchain default, and stop assuming it is installed
mcpp.toml's `[toolchain] default` went from gcc@16.1.0 to llvm@22.1.8 in the previous commit. Not deliberate -- a local experiment wrote it and `git add -A` carried it along. The whole repository then built with llvm, and five CI jobs failed on assertions that name gcc: toolchain: gcc (cold self-host) grep -q "Resolved gcc@16.1.0" toolchain: musl + llvm sed expects `default = "gcc@16.1.0"` integration / e2e 1-2 (linux) `gcc@16.1.0 is not installed` Verified back to exactly one difference from main: the version. The e2e job's failure had a second cause worth fixing on its own. It runs `toolchain default gcc@16.1.0` without ever installing gcc, so it depends on the sandbox cache happening to carry one from an earlier run. That is not a property any job should rely on, and this branch's xlings pin bump moved the whole cache-key prefix, so every shard started cold and hit it. Now installed explicitly; warm runs pay a lookup. 67 unit tests; e2e 201/86/29/103/179/200 under the restored gcc default.
1 parent b87a438 commit ec34195

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

.github/workflows/ci-linux-e2e.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,16 @@ jobs:
7878
"$MCPP" self config
7979
# Pin the global default so test 28 (default-toolchain path) gets a
8080
# deterministic GNU answer instead of an auto-install pick.
81+
#
82+
# Installed explicitly, not assumed. `toolchain default` requires the
83+
# toolchain to be present, and nothing in this job puts it there:
84+
# building mcpp above uses whatever first-run picks (llvm). It worked
85+
# only because the sandbox cache happened to carry a gcc some earlier
86+
# run had installed -- so the moment the cache key changed (an xlings
87+
# pin bump moves the whole prefix), every e2e shard failed with
88+
# `gcc@16.1.0 is not installed` before running a single test.
89+
# Warm runs re-install nothing; this costs a lookup.
90+
"$MCPP" toolchain install gcc 16.1.0
8191
"$MCPP" toolchain default gcc@16.1.0
8292
# Warm musl once so fresh-home e2e tests inherit the payload.
8393
"$MCPP" toolchain install gcc 16.1.0-musl

mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ default-profile = "release"
1717
include_dirs = ["src/libs/json"]
1818

1919
[toolchain]
20-
default = "llvm@22.1.8"
20+
default = "gcc@16.1.0"
2121
macos = "llvm@22.1.8"
2222
windows = "llvm@20.1.7"
2323

0 commit comments

Comments
 (0)