Provided by:
manpages-es_1.55-10_all 
NOMBRE
ld.so, ld-linux.so* - enlazador/cargador dinamico
DESCRIPCI'ON
Los programas ld.so y ld-linux.so* encuentran y cargan las bibliotecas
compartidas requeridas por un programa, preparan al programa para
ejecutarse y lo ejecutan.
Los ficheros binarios en Linux requieren enlace dinamico (enlace en
tiempo de ejecucion) a menos que se de la opcion -static a ld durante
la compilacion.
El programa ld.so maneja ficheros binarios con el formato a.out, un
formato usado hace tiempo; ld-linux.so* maneja el formato ELF (/lib/ld-
linux.so.1 para libc5, /lib/ld-linux.so.2 para glibc2), que es el que
se lleva usando desde hace unos anos. Por lo demas, ambos tienen el
mismo comportamiento y usan los mismos ficheros de configuracion y
programas ldd(1), ldconfig(8) y /etc/ld.so.conf.
Las bibliotecas compartidas que necesita un programa se buscan en
varios lugares:
o (solo para ELF) Usando el atributo dinamico de seccion DT_RPATH
del binario si esta presente y el atributo DT_RUNPATH no existe.
No se aconseja el uso de DT_RPATH.
o Usando la variable de entorno LD_LIBRARY_PATH, salvo cuando el
ejecutable tiene activo el bit setuid/setgid, en cuyo caso se
ignora.
o (solo para ELF) Usando el atributo dinamico de seccion
DT_RUNPATH del binario si esta presente.
o A partir del fichero cache /etc/ld.so.cache, que contiene una
lista compilada de bibliotecas candidatas encontradas
previamente en la ruta de bibliotecas ampliada. Si, sin embargo,
el binario fue enlazado con la opcion -z nodeflib, las
bibliotecas que se encuentran en las rutas predeterminadas son
omitidas.
o En la ruta predeterminada /lib, y despues en /usr/lib. Si el
binario fue enlazado con la opcion -znodeflib, se omite este
paso.
SINOPSIS
El enlazador dinamico puede ejecutarse bien indirectamente, al ejecutar
un programa o biblioteca enlazado dinamicamente (en cuyo caso no pueden
pasarse opciones en la linea de ordenes al enlazador dinamico y, en el
caso del formato ELF, se ejecuta el enlazador dinamico que se encuentra
almacenado en la seccion .interp del programa), bien directamente
ejecutando:
/lib/ld-linux.so.* [OPCIONES] [PROGRAMA [ARGUMENTOS]]
OPCIONES DE LA L'INEA DE 'ORDENES
--list Lista todas las dependencias y como se resuelven.
--verify
Comprueba que el programa esta enlazado dinamicamente y que el
enlazador dinamico puede tratarlo.
--library-path PATH
Sobreescribe la variable de entorno LD_LIBRARY_PATH (vea mas
abajo).
--ignore-rpath LIST
Ignora la informacion de RPATH y RUNPATH en los nombres de
objeto en LIST. Esta opcion fue soportada por glibc2
aproximadamente durante una hora. Despues se renombro a:
--inhibit-rpath LIST
ENTORNO
Hay cuatro variables de entorno relevantes.
LD_LIBRARY_PATH
Una lista de directorios separados por dos puntos en los que se
buscan las bibliotecas ELF en tiempo de ejecucion. Similar a la
variable de entorno PATH.
LD_PRELOAD
Una lista adicional de biliotecas compartidas ELF especificadas
por el usuario y separadas por blancos que se cargan antes que
el resto. Puede ser utilizada para sobreescribir funciones en
otras bibliotecas compartidas de manera selectiva. Para
binarios ELF con el bit setuid/setgid activo, solo se cargan las
biliotecas en los directorios de busqueda estandares que tambien
tienen activo el bit setuid.
LD_BIND_NOW
(libc5; glibc desde la version 2.1.1) Si su valor no es la
cadena vacia, el enlazador dinamico resuelve todos los simbolos
al comienzo del programa, en lugar de aplazar la resolucion de
las llamadas a funciones hasta el punto donde son referenciadas
por primera vez. Es util cuando se utiliza un depurador.
LD_TRACE_LOADED_OBJECTS
(solo para ELF) Si su valor no es la cadena vacia, el programa
produce un listado de las bibliotecas dinamicas de las que
depende, como si se hubiera ejecutado con ldd(1), en lugar de
ejecutar el programa normalmente.
Tambien hay un monton de variables mas o menos oscuras, muchas
obsoletas o solamente para uso interno.
LD_WARN
(solo para ELF)(glibc desde la version 2.1.3) Si su valor no es
la cadena vacia, avisa sobre los simbolos sin resolver.
LD_NOWARN
(solo para a.out)(libc5) Suprime los avisos sobre las
bibliotecas a.out con numeros de version menor incompatibles.
LD_BIND_NOT
(glibc desde la version 2.1.95) No actualiza el GOT (global
offset table - tabla de desplazamientos global) ni el PLT
(procedure linkage table - tabla de enlace de procedimientos)
despues de resolver un simbolo.
LD_DEBUG
(glibc desde la version 2.1) Produce abundante informacion de
depuracion acerca del enlazador dinamico. Si se le asigna el
valor all imprime toda la informacion de depuracion que posee,
si se le asigna el valor help imprime un mensaje de ayuda con
las categorias que pueden especificarse en esta variable de
entorno.
LD_DEBUG_OUTPUT
(glibc desde la version 2.1) Fichero donde ira a parar la salida
de LD_DEBUG, si no se especifica se asume la salida estandar.
LD_DEBUG_OUTPUT se ignora para los binarios con el bit
setuid/setgid activo.
LD_VERBOSE
(glibc desde la version 2.1) Si su valor no es la cadena vacia,
muestra informacion sobre las versiones de los simbolos cuando
se esta solicitando informacion sobre el programa (es decir, o
bien se ha activado LD_TRACE_LOADED_OBJECTS, o bien se ha dado
al enlazador dinamico la opcion --list o --verify).
LD_PROFILE
(glibc desde la version 2.1) Objeto compartido para el que se
desea obtener el perfil.
LD_PROFILE_OUTPUT
(glibc desde la version 2.1) Fichero donde ira a parar la salida
de LD_PROFILE, si no se especifica se asume la salida estandar.
LD_DEBUG_OUTPUT se ignora para los binarios con el bit
setuid/setgid activo.
LD_AOUT_LIBRARY_PATH
(libc5) Version de LD_LIBRARY_PATH solo para los binarios a.out.
Las versiones anteriores de ld-linux.so.1 tambien soportaban
LD_ELF_LIBRARY_PATH.
LD_AOUT_PRELOAD
(libc5) Version de LD_PRELOAD solo para los binarios a.out. Las
versiones anteriores de ld-linux.so.1 tambien soportaban
LD_ELF_PRELOAD.
LD_SHOW_AUXV
(glibc desde la version 2.1) Muestra el array auxiliar que se
pasa desde el nucleo.
LD_HWCAP_MASK
(glibc desde la version 2.1) Mascara para las capacidades
hardware.
LD_ORIGIN_PATH
(glibc desde la version 2.1) Ruta donde se encuentra el binario
(para programas con el bit setuid desactivado).
LD_DYNAMIC_WEAK
(glibc desde la version 2.1.91) Permite que los simbolos debiles
se puedan sobrescribir (volviendo al antiguo comportamiento de
glibc).
LD_KEEPDIR
(solo para a.out)(libc5) No ignora el directorio en los nombres
de las bibliotecas a.out que son cargadas. El uso de esta
opcion esta fuertemente desaconsejado.
LDD_ARGV0
(libc5) argv[0] a ser usado por ldd(1) cuando no hay ninguno.
FICHEROS
/lib/ld.so
enlazador/cargador dinamico
/lib/ld-linux.so.{1,2}
enlazador/cargador dinamico ELF
/etc/ld.so.cache
Fichero que contiene una lista compilada de directorios en los
que buscar biliotecas y una lista ordenada de bibliotecas
candidatas.
/etc/ld.so.preload
Fichero que contiene una lista de bibliotecas compartidas ELF
separadas por blancos que son cargadas antes que el programa.
lib*.so*
bibliotecas compartidas
OBSERVACIONES
La funcionalidad ld.so esta disponible para ejecutables compilados
usando la version 4.4.3 de libc o posterior. La funcionalidad ELF esta
disponible desde la version 1.1.52 de Linux y libc5.
V'EASE TAMBI'EN
ldd(1), ldconfig(8)
16 diciembre 2001 ld.so(8)