756928ageneralizó 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ía756928a. 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>
33 lines
1.7 KiB
TOML
33 lines
1.7 KiB
TOML
# pkgconf 2.5.1 — herramienta del toolchain hammer-from-source (variante b, SDD 11 §7.2b).
|
|
#
|
|
# Provee `pkgconf` (+ el symlink `pkg-config`): resuelve flags de compilación/enlace de libs vía sus
|
|
# `.pc`. Es la pieza que LEE los `usr/lib/pkgconfig/*.pc` que la materialización de build-deps deja en
|
|
# el sandbox (ver hammer-build materialize_build_deps); cualquier receta que dependa de una lib y use
|
|
# `pkgconf --cflags/--libs` lo necesita. Reemplaza el `pkgconf` de Alpine. Tool, no input: build vainilla.
|
|
#
|
|
# Tarball release de distfiles.ariadne.space (configure ya generado ⇒ AutoconfReady, NO el archive de
|
|
# github que pediría autogen). Estático musl, zig cc.
|
|
|
|
name = "pkgconf"
|
|
version = "2.5.1"
|
|
|
|
[source]
|
|
tarball = "https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.gz"
|
|
sha256 = "ab89d59810d9cad5dfcd508f25efab8ea0b1c8e7bad91c2b6351f13e6a5940d8"
|
|
|
|
[build]
|
|
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"'
|