e2fsprogs: el $(RDYNAMIC) de e2fsck — por eso eran 4 de 31 y no 31
`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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
This commit is contained in:
@@ -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/
|
||||
|
||||
Reference in New Issue
Block a user