bootstrap: builder ejecutable — toolchain con bwrap/git/curl + shim del loader
Correr el rebuild EN la VM destapó dos faltantes reales del builder (justo lo que la verificación de Stage 2 debe cazar): 1. El toolchain (variante a, desde Alpine) traía compiladores (cargo/make/zig) pero NO las herramientas de orquestación del lab — bwrap (anida el sandbox), git (git archive del mirror) y curl (tarballs). En el host las aporta el sistema; en la VM el toolchain es el único userland capaz, así que deben vivir ahí. bootstrap-devfs.sh las añade (paquete `bubblewrap`, no `bwrap`). 2. Esos binarios son Alpine *dinámicos* y no corren desde el userland Stage 1 *estático* (musl --disable-shared ⇒ no hay loader en /lib). rebuild-stage1 ahora instala un shim del loader musl (cp a /lib) + LD_LIBRARY_PATH/PATH al toolchain antes de invocar hammer; el sandbox de build sigue anidando en /toolchain. El hammer estático corre por ruta absoluta. El builder boot end-to-end ya estaba probado; esto lo hace además *capaz de reconstruirse*. 28 tests verdes. 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
4a35dfb398
commit
64894d863c
@@ -117,7 +117,11 @@ else
|
||||
# paquetes la necesitan. zig cc nativo la encuentra en /usr/include. (Lo destapó la
|
||||
# verificación de reproducibilidad de Stage 2: con el config determinista, los applets de
|
||||
# console-tools la exigen.)
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo linux-headers"
|
||||
# `bwrap git curl`: el rebuild *dentro* del builder rootfs (Stage 2 pleno, SDD 11 §7) corre
|
||||
# hammer-build con su propio toolchain. En el host estas tres las aporta el sistema, pero en la
|
||||
# VM el toolchain ES el único userland capaz, así que deben vivir aquí: `bwrap` anida el sandbox
|
||||
# de build, `git` rematerializa las fuentes git (git archive del mirror), `curl` baja tarballs.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo linux-headers bubblewrap git curl"
|
||||
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