From fbe265e405a68fc8a4fc0258aee469da25176367 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 31 Aug 2026 15:28:22 +0000 Subject: [PATCH] =?UTF-8?q?e2fsprogs:=20el=20`$(RDYNAMIC)`=20de=20e2fsck?= =?UTF-8?q?=20=E2=80=94=20por=20eso=20eran=204=20de=2031=20y=20no=2031?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `e2fsck/Makefile.in:119` enlaza con `$(RDYNAMIC)` y es el UNICO de las 31 herramientas que lo hace (`configure.ac:109` lo pone en `-rdynamic`; ningun otro Makefile.in del arbol lo menciona). El wrapper de cc del lab (`sandbox.rs:597`) tira el `-static` inyectado ante `-rdynamic`, asi que e2fsck —y sus tres alias fsck.ext{2,3,4}— salian dinamicos mientras las otras 27 herramientas del mismo build salian estaticas. Eso explica exactamente el «4 de 31» que reporto el audit estricto. Upstream pide `-rdynamic` para simbolizar el backtrace del manejador de senales fatales, no para enlazar. Con estatico el backtrace pierde nombres, que es lo que `link = "static"` ya pedia. `RDYNAMIC=` va en compile Y en install (install relinkea). Control: NEEDED=0 en los cuatro, los 149 ficheros del artefacto intactos, y prueba funcional real — mke2fs crea un ext4 de 16M y e2fsck lo recorre las cinco pasadas limpio. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih --- recipes/e2fsprogs.toml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/e2fsprogs.toml b/recipes/e2fsprogs.toml index d39c0695..dfcfdcd1 100644 --- a/recipes/e2fsprogs.toml +++ b/recipes/e2fsprogs.toml @@ -41,14 +41,21 @@ _abuild_phase() { --disable-libblkid \ --disable-fuse2fs \ --disable-nls - make + # `RDYNAMIC=`: e2fsck es el ÚNICO de las 31 herramientas que enlaza con `$(RDYNAMIC)` + # (`e2fsck/Makefile.in:119`, y `configure.ac:109` lo pone en `-rdynamic`), y por eso era el + # único dinámico — con sus tres alias `fsck.ext{2,3,4}`, de ahí «4 de 31». El wrapper de cc + # del lab (`sandbox.rs:597`) tira el `-static` inyectado ante `-rdynamic`, así que `-static` + # se ponía y se quitaba. Upstream lo pide para simbolizar el backtrace del manejador de + # señales fatales, no para enlazar: con estático el backtrace pierde nombres, que es + # exactamente lo que `link = "static"` ya pedía. + make RDYNAMIC= } _abuild_phase ''' # de package() de Alpine (traducido $pkgdir→/out): install = ''' _abuild_phase() { -make -j1 DESTDIR="/out" install install-libs +make -j1 DESTDIR="/out" install install-libs RDYNAMIC= mkdir -p "/out"/sbin/ local i; for i in e2fsck mke2fs mkfs.* fsck.*; do mv "/out"/usr/sbin/$i "/out"/sbin/