# musl libc 1.2.5 — libc del target para el userland mínimo del Stage 1 (SDD 11 §3).
#
# Se compila estática con `zig cc` cross al target. El artefacto aporta headers + libc.a (y el
# loader, para uso dinámico futuro) al rootfs sellado. Tarball release pinned por sha256: igual de
# fuerte que un commit git para reproducibilidad (ADR 0006).

name    = "musl"
version = "1.2.5"

[source]
tarball = "https://musl.libc.org/releases/musl-1.2.5.tar.gz"
sha256  = "a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
link     = "static"

[deps]
build = ["make"]

[build.phases]
# El sandbox exporta CC="zig cc", DESTDIR=/out y PREFIX=/usr. musl trae su propio `configure`.
# Sólo estático: los componentes Rust se compilan crt-static + no-PIE (autocontenidos, ET_EXEC sin
# interpreter), así que el rootfs no necesita el loader/shared de musl. Ver runbooks §8.
configure = "./configure --prefix=/usr --disable-shared --enable-static"
compile   = "make -j\"$(nproc)\""
install   = "make install"
