Mata gcc para 5 de las 7 recetas que lo forzaban, vía una escotilla nueva:
- hammer-core/hammer-build: campo `[build].zig_version` por receta. Cuando se
fija, el lab resuelve ese zig (hermano del por defecto, `zig-x86_64-linux-<v>`)
en vez del global, y entra al hash SÓLO si está presente (baseline 9adefb82
intacto). `effective_zig_dir` lo aplica en ensure_layout + Sandbox.
- Causa: BISECT con oráculo flex (reproducido sólo vía lab: musl DINÁMICO) — el
miscompile es una REGRESIÓN de zig 0.14; 0.13.0 compila limpio, 0.14/0.15/0.16
fallan. Es C/musl-dinámico, NO afecta C++.
- Flip a zig_version="0.13.0" (quitando CC=gcc): flex, openssl, elfutils,
binutils, python3. Verificados: `as` 2.45.1 corre, python3 3.12.10 corre
(deepfreeze OK), libcrypto/libelf sellan. Todas son tools (no inputs del 4/4).
cmake queda en gcc: su segfault es C++ (libc++/musl), bug distinto que 0.13 NO
arregla (ni con -static). El kernel queda pendiente de verificar.
Tests: hammer-core/hammer-build verdes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Última pieza del toolchain hammer-from-source (variante b). Misma versión que
Alpine 3.23.4 (binutils-2.45.1-r0). INERTE para el of_tree del 4/4: el lab usa
`zig cc` (ensamblador interno + lld + zig ar/ranlib/objcopy), así que las
recetas del 4/4 no invocan el ld/as de binutils ⇒ el swap no cambia
of_tree(stage1'). Existe para completar la provenance (builder 100%
reconstruible desde fuente), sin flag SWAP_* dedicado (vía SWAPS= como
patch/m4/pkgconf).
CC=gcc/CXX=g++ (NO zig), igual que python3/cmake: zig 0.16 miscompila binarios
musl grandes ⇒ binutils con zig cc segfaultea al correr (as: "Internal error
(Segmentation fault)"). gcc nativo (como Alpine) los produce funcionales.
link=dynamic: libtool descarta el -static del exe final; gcc dinámico enlaza
contra el musl del toolchain, idéntico al binutils de Alpine.
Validado: ld/as/ar/strip/objcopy/nm/objdump/ranlib/readelf reportan 2.45.1 y
pasan smoke funcional (as ensambla, ar archiva, nm lee símbolos, strip reduce,
objdump desensambla).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>