From 85e2f28b0c52760e5b285d207c2924eaa43fecba Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Tue, 16 Jun 2026 17:33:25 +0100 Subject: [PATCH] ci: expose vendored QBE to the compiler via BLAISE_QBE The compiler shells out to 'qbe' and resolves it via the BLAISE_QBE env var, then PATH (uToolchain.ResolveQBE). The QBE= make variable passed by rolling-bootstrap.sh only covers the script's own direct qbe calls, not the compiler's internal invocation when building the RTL. On the runner qbe is built at vendor/qbe/qbe but not on PATH, so the RTL build failed with 'qbe error (exit 127)' on the very first replay step. Set BLAISE_QBE (and prepend vendor/qbe to PATH) after building QBE so all subsequent steps can find it. --- .github/workflows/bootstrap.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 896ecd4..a0942c6 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -59,6 +59,19 @@ jobs: - name: Build QBE run: make -C vendor/qbe + # -------------------------------------------------------------------- + # 3b. Make the freshly-built QBE discoverable by the *compiler itself*. + # The compiler shells out to `qbe` and resolves it via the BLAISE_QBE + # env var first, then PATH (see uToolchain.ResolveQBE). The QBE= make + # variable only covers rolling-bootstrap.sh's direct qbe calls, NOT + # the compiler's internal invocation when building the RTL — so + # without this the RTL build fails with "qbe error (exit 127)". + # -------------------------------------------------------------------- + - name: Expose QBE to the compiler + run: | + echo "BLAISE_QBE=$PWD/vendor/qbe/qbe" >> "$GITHUB_ENV" + echo "$PWD/vendor/qbe" >> "$GITHUB_PATH" + # -------------------------------------------------------------------- # 4. Restore the carry-forward cache: the previous successful master run # stashes its -pre binary + a marker file recording the commit SHA it