build-brintos.sh builds a curated ninja target set (clang lld opt llvm-config $BINUTILS), but $BINUTILS does not include llvm-as or llvm-dis. The glibc coro-pool build script — distros/linux-6.12-glibc-bash-coreutils/build-glibc-libc.sh in brintos/linux-in-the-browser — hard-requires both, so a clean toolchain build cannot complete the glibc libc pool.
Where they're required (build-glibc-libc.sh):
- Pass 3,
__GI_hidden-alias resolution —llvm-dis(line 307) → edit →llvm-as(line 322) round-trip. - Pass 4, dead-ABI trapping stubs —
llvm-as(line 361).
Reproduction: clean clone → build-brintos.sh (produces build/bin/ without llvm-as/llvm-dis) → make -C distros/linux-6.12-glibc-bash-coreutils glibc-libc. It configures, builds the ~1900-TU bitcode pool, and dies at Pass 4:
build-glibc-libc.sh: line 359: …/toolchains/llvm-project/build/bin/llvm-as: No such file or directory
make: *** [Makefile:296: glibc-libc] Error 1 (Error 127 from the missing binary)
Pass 3 masked it until now only because that run needed no __GI_ injections (empty loop), so Pass 4 was the first llvm-as call.
Context: HEAD 7ca439332 ("build-brintos.sh also builds the llvm binutils the kernel/distro builds invoke") added $BINUTILS for the kernel/distro builds but did not cover the two tools the glibc pool needs. Both llvm-as/llvm-dis targets are already configured by CMake — they're simply never asked for by the ninja line.
Proposed fix
--- a/build-brintos.sh
+++ b/build-brintos.sh
@@ -55 +55 @@
-BINUTILS="llvm-ar llvm-nm llvm-ranlib llvm-link llvm-objcopy llvm-strip llvm-objdump llvm-readelf"
+BINUTILS="llvm-ar llvm-nm llvm-ranlib llvm-link llvm-objcopy llvm-strip llvm-objdump llvm-readelf llvm-as llvm-dis"
Adding them to $BINUTILS also extends the post-build existence check (for t in clang wasm-ld opt llvm-config $BINUTILS), so a future regression surfaces at toolchain-build time rather than deep in the glibc pool build. Verified locally: ninja -C build llvm-as llvm-dis produces both in seconds (LLVM libs already built), after which the glibc pool completes (done: 2543 bitcode TUs, 119 native objs).
Proposed fix targets brintos/llvm-project only — no distro submodule pins moved. All distros share one lineage, so pin bumps are coordinated on merge, not per-engineer.
↳ Migrated from brintos/llvm-project-archived#3 — originally opened by @alex on 2026-07-13T13:24:23.879Z. Repo re-created to store git objects compressed (see brintos/git-edge#1).