static: pkgconf arreglada + CORRIJO el alcance del hallazgo de 756928a

756928a generalizó de más. El alcance real, medido dentro del sandbox con readelf sobre un
`int main(){return 0;}` trivial:

    zig 0.13.0:  -static                           → NEEDED=1  (dinámico)  ← el bug
    zig 0.13.0:  -target x86_64-linux-musl -static → NEEDED=0  (estático)
    zig 0.16.0:  -static                           → NEEDED=0  (estático)  ← default, sano

O sea: el -static roto es de ZIG 0.13.0, NO del framework. Con el zig default el -static que el
lab exporta por link="static" funciona ⇒ CC sin -target (sandbox.rs:415) está BIEN y NO hay que
re-hashear los 841 sellados, al revés de lo que decía 756928a. samurai lo sufría por caer en la
intersección de dos rarezas: pinea zig 0.13.0 Y no usa libtool (nada absorbía el -static).

Las otras 4 recetas con zig 0.13.0 + link=static (mtools/openssh/openssl/xorriso): auditadas,
0 mienten — usan libtool, que absorbe el -static por su cuenta.

pkgconf: el diagnóstico ORIGINAL (libtool se come el -static) era el correcto. Usaba el BuildSys
automático ⇒ fases explícitas sólo para meter -all-static en compile Y en install. Estático de
verdad (NEEDED=0).

Van 2 de 11: samurai, pkgconf.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 09:35:48 -04:00
co-authored by Claude Opus 4.8
parent 756928aa8c
commit 87e0fc331d
2 changed files with 30 additions and 11 deletions
+11
View File
@@ -19,3 +19,14 @@ sha256 = "ab89d59810d9cad5dfcd508f25efab8ea0b1c8e7bad91c2b6351f13e6a5940d8"
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# Fases explícitas SÓLO para el `-all-static` (patrón jq/parted/shadow/procps-ng/expat). Con el
# BuildSys automático el `LDFLAGS=-static` que el lab exporta por `link = "static"` pasa por LIBTOOL,
# que lo lee como "preferí mis .a", NO como flag al linker ⇒ el binario salía DINÁMICO (NEEDED:
# libc.so) jurando ser estático. El único flag de libtool para un binario 100% estático es
# `-all-static`, y va en `make` Y en `make install` (libtool RELINKEA al instalar; sólo en compile no
# basta). Nunca en configure: ahí rompe los tests de link de autotools.
[build.phases]
configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-shared --enable-static'
compile = 'make LDFLAGS="-all-static -no-pie" -j"$(nproc)"'
install = 'make DESTDIR=/out install LDFLAGS="-all-static -no-pie"'