Estoy experimentando con RUNPATH
la variable ELF para dependencias dinámicas. En el camino obtuve una copia del bash
binario con change RUNPATH
y ldd
al ejecutarlo devuelve:
$ ldd ./bash
linux-vdso.so.1 => (0x00007ffe6bdf9000)
libtinfo.so.5 (0x00007fbf8b97c000)
libdl.so.2 (0x00007fbf8b776000)
libc.so.6 (0x00007fbf8b3a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbf8bba7000)
- ¿Por qué no hay rutas a las dependencias (de mi costumbre RUNPATH
) o not found
qué significa?
Mi suposición sería:
ldd
no puedo encontrar los archivos, pero están en la memoria (los números entre paréntesis son las direcciones) y ldd
puedo saberlo de alguna manera, a través de algún mecanismo de efectivo, ¿es correcto? Pero entonces ¿por qué ldd
no encuentra archivos? Si no puede recuperarlos RUNPATH
, debería proceder a los directorios estándar, ¿verdad?
Actualizar
Hoy encuentra los archivos (¿entonces eran los cobros ayer?):
$ cd dir_chroot2/
$ ldd ./bash
linux-vdso.so.1 => (0x00007ffed3530000)
libtinfo.so.5 => /home/.../dir_chroot2/./libtinfo.so.5 (0x00007f72c14a8000)
libdl.so.2 => /home/.../dir_chroot2/./libdl.so.2 (0x00007f72c12a1000)
libc.so.6 => /home/.../dir_chroot2/./libc.so.6 (0x00007f72c0ed0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f72c16d4000)
- pero ld-linux-x86-64.so.2
todavía se obtiene del directorio del sistema, aunque bash
el binario y todas las bibliotecas superiores tienen RUNPATH=$ORIGIN/
. ¿Por que es esto entonces? ¿ linux-vdso.so.1
Lo vincula de alguna manera?