recipes/elfutils: de-Alpinizar libelf (último build-dep Alpine del kernel)
tools/objtool del kernel enlaza -lelf (libelf+gelf.h); venía de `apk add elfutils-dev`. Ahora recipes/elfutils.toml construye SÓLO libelf (0.194, lo que objtool necesita — no libdw/libdwfl/src) desde fuente, wired como deps.build del kernel. Con esto NINGÚN build-dep del kernel viene de Alpine: el camino del kernel es 100% hammer-from-source. elfutils es glibc-céntrico; musl no trae <error.h>/<argp.h>/<libintl.h>/fts/ obstack/rawmemchr. En vez del parche completo de Alpine, shims mínimos en compat/ (vía CPPFLAGS/-include): error.h y argp.h (sólo los usan color.c/printversion.c, cuyos .o van en libeu.a pero objtool NO referencia ⇒ basta que compilen); libintl no-op (+ --disable-nls); rawmemchr inline; y libargp/libfts/libobstack.a stubs para pasar los AC_SEARCH_LIBS del configure (símbolos inertes para libelf). CC=gcc. bootstrap-devfs.sh: elfutils-dev fuera del NEEDED. Validado: purgué elfutils-dev del devfs, rebuild → objtool linkea el libelf hammer (sin gelf.h Alpine), y HAMMER_KERNEL=1 verify → ✓ REPRODUCIBLE bit a bit, DRIVER_RC=0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -132,14 +132,14 @@ else
|
||||
# un compilador C++. (zlib-dev quedará reemplazado por recipes/zlib.toml cuando el frente avance.)
|
||||
# `flex bison`: build-deps del kernel (lexer/parser de kconfig). También hay recipes/{flex,bison}.toml
|
||||
# hammer-built; aquí en el devfs base son el arranque (frente kernel-from-source).
|
||||
# `elfutils-dev`: aporta libelf + gelf.h, que `tools/objtool` del kernel necesita (en x86_64 las
|
||||
# mitigaciones seleccionan CONFIG_OBJTOOL aunque se use frame-pointer unwinder). Build-tool de
|
||||
# arranque (mismo status que g++/zlib-dev; no se enlaza en nada enviado, no afecta of_tree del 4/4);
|
||||
# quedará reemplazado por recipes/elfutils.toml (libelf desde fuente) cuando el frente kernel avance.
|
||||
# NOTA: `elfutils-dev` YA NO va aquí — de-Alpinizado a recipes/elfutils.toml (sólo libelf, con shims
|
||||
# musl argp/error/libintl/fts/obstack/rawmemchr), deps.build del kernel. objtool enlaza el libelf
|
||||
# hammer desde la capa overlay. (El runtime libelf.so.1 de Alpine, si algún otro tool lo necesita,
|
||||
# es la misma versión 0.194 ABI-compatible.)
|
||||
# NOTA: `openssl-dev` YA NO va aquí — de-Alpinizado a recipes/openssl.toml (libcrypto estática,
|
||||
# deps.build del kernel). El host-tool certs/extract-cert lo enlaza desde la capa overlay hammer.
|
||||
# El runtime libcrypto3/libssl3 (que curl/git necesitan) lo trae Alpine aparte, no es openssl-dev.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev flex bison elfutils-dev rust cargo linux-headers bubblewrap git curl kmod"
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev flex bison rust cargo linux-headers bubblewrap git curl kmod"
|
||||
missing=""
|
||||
for pkg in $NEEDED; do
|
||||
# apk info -e devuelve el paquete si está instalado, vacío si no.
|
||||
|
||||
Reference in New Issue
Block a user