From b37f11b666ab7fbef09b864c008daada667ac943 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 19 Jun 2026 14:47:57 -0400 Subject: [PATCH] kernel-from-source: de-Alpinizar flex/bison (recetas reales, no eclipsadas) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit flex/bison estaban en el devfs base (apk) Y como recipes/{flex,bison}.toml en deps.build del kernel — pero las capas de deps van BAJO el rootfs, así que el Alpine flex/bison eclipsaba a los hammer y las recetas eran decorativas. Quito flex/bison del devfs/bootstrap-devfs.sh; ahora el kernel los toma de deps.build (hammer). Validado: rebuild en store fresco → kconfig compila con flex/bison hammer (lexer.lex.o/parser.tab.o), HAMMER_KERNEL=1 verify → ✓ REPRODUCIBLE. (El bzImage difiere en 1 byte del Alpine-flex/bison build: el timestamp embebido UTS_VERSION, no flex/bison; el kernel no es input del of_tree del 4/4.) m4 (que bison invoca) se deja en el base como tool autotools general. Con esto los build-deps ESPECIALIZADOS del kernel (flex/bison/openssl/elfutils) son todos hammer-from-source; sólo quedan las libs base/runtime (m4, libz/libzstd de libelf, gcc) como capa de arranque, igual status que libc. Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/bootstrap-devfs.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap-devfs.sh b/scripts/bootstrap-devfs.sh index be123bba..0159368c 100755 --- a/scripts/bootstrap-devfs.sh +++ b/scripts/bootstrap-devfs.sh @@ -130,8 +130,9 @@ else # toolchain traía libstdc++ runtime pero no cc1plus/headers ni zlib-dev. Son compiladores/libs de # arranque (mismo status que make/zig/gcc); el veto purista es sobre un *rustc* prebuilt, no sobre # 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). + # NOTA: `flex bison` YA NO van aquí — de-Alpinizados a recipes/{flex,bison}.toml (deps.build del + # kernel). Sólo el kernel los usa (kconfig); el overlay de deps los provee. (m4, que bison invoca en + # runtime, sigue en el base como tool autotools general.) # 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, @@ -139,7 +140,7 @@ else # 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 rust cargo linux-headers bubblewrap git curl kmod" + NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev 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.