# musl-fts 1.2.7 — el `fts(3)` de BSD/glibc, empaquetado aparte para musl. # # POR QUÉ EXISTE: musl no trae `fts`, y `libdwfl` de elfutils lo usa en # `linux-kernel-modules.c` (recorre /lib/modules). `dwarves` necesita libdwfl, así que la cadena # entera lo arrastra. Es lo que Alpine empaqueta como `musl-fts`. Tercera pieza del frente # libdw/musl, junto a `musl-obstack` y `argp-standalone`. # # ⚠ En la práctica sus símbolos casi nunca se ENLAZAN: `dwarves` no llama a `dwfl_linux_kernel_*`, # así que ese objeto no se saca del archive. Pero el fichero tiene que COMPILAR, y para eso hace # falta un `` de verdad con los campos (`fts_namelen`, `fts_name`, `fts_info`…) y las # constantes (FTS_NOSTAT, FTS_LOGICAL, FTS_SKIP, FTS_F…). Escribir ese header a mano es fácil de # hacer MAL en silencio; traer la implementación real es más honesto. # # Se compila a mano (sin autotools), igual que musl-obstack: es UN fichero .c. name = "musl-fts" version = "1.2.7" license = "BSD-3-Clause" [source] tarball = "https://github.com/void-linux/musl-fts/archive/refs/tags/v1.2.7.tar.gz" sha256 = "49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" [build.phases] # `fts.c` hace `#include "config.h"` (con comillas, a diferencia del de obstack que usa ángulos). configure = "printf '%s\\n' '/* minimo para musl */' > config.h" compile = ''' $CC -c -O2 -fPIC -I. -D_GNU_SOURCE fts.c -o fts.o ar rcs libfts.a fts.o ''' install = ''' mkdir -p /out/usr/lib /out/usr/include cp libfts.a /out/usr/lib/ cp fts.h /out/usr/include/ test -f /out/usr/lib/libfts.a && test -f /out/usr/include/fts.h ''' [deps] build = ["binutils"]