bootstrap: fixes de la primera corrida real de Stage 1 (musl+busybox ✓ con zig cc)
Primera ejecución del runbook en el host. El userland C builda end-to-end; el camino Rust queda bloqueado por una decisión de toolchain. Hallazgos verificados: recipes/busybox.toml — tres incompatibilidades GNU-toolchain ↔ zig, resueltas: - gcc hardcodeado (CC/HOSTCC = gcc con `=` ignora el env): pasar CC='zig cc' HOSTCC='zig cc' en línea de comando de make - flags GNU-ld que zig cc valida y rechaza (--warn-common, -Map, --verbose): quitarlos de scripts/trylink con sed Con esto musl 1.2.5 y busybox 1.36.1 compilan, linkean y se sellan. scripts/bootstrap-devfs.sh — añade rust+cargo al rootfs (las recetas Cargo corren cargo en el sandbox), con CAVEAT: el rust de Alpine es x86_64-alpine-linux-musl pero BuildSys::Cargo pide x86_64-unknown-linux-musl (no instalado, sin rustup) → bloquea hammerd/arje-zero. Decisión de toolchain abierta (plan C.2). docs/runbooks/stage1-vm-boot.md §8 — bitácora con la tabla de etapas, los fixes y las opciones para resolver el triple Rust. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
56af1b5748
commit
5a1088d5ce
@@ -106,7 +106,14 @@ if [[ $SKIP_APK -eq 1 ]]; then
|
||||
else
|
||||
# `binutils` aporta ld/ar/ranlib/nm/strip: configure de autotools los inspecciona
|
||||
# incluso cuando el compilador real es zig cc.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils"
|
||||
#
|
||||
# `rust cargo`: las recetas Cargo (hammerd, arje-zero) corren `cargo build` DENTRO del
|
||||
# sandbox. CAVEAT (primera corrida 2026-06-11): el rust de Alpine tiene host triple
|
||||
# `x86_64-alpine-linux-musl`, pero `BuildSys::Cargo` pide `--target x86_64-unknown-linux-musl`
|
||||
# y Alpine no trae ese std (no hay rustup). Falta resolver el toolchain Rust del lab (plan C.2)
|
||||
# — ver docs/runbooks/stage1-vm-boot.md §8. Hasta entonces, los componentes C (musl, busybox)
|
||||
# sí construyen end-to-end.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo"
|
||||
missing=""
|
||||
for pkg in $NEEDED; do
|
||||
# apk info -e devuelve el paquete si está instalado, vacío si no.
|
||||
|
||||
Reference in New Issue
Block a user