Provided by: manpages-es_1.55-10_all bug

NOMBRE

       ld.so, ld-linux.so* - enlazador/cargador dinámico

DESCRIPCIÓN

       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 dinámico (enlace en tiempo de ejecución) a menos  que  se
       dé la opción -static a ld durante la compilación.

       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 años.  Por lo demás, ambos tienen el mismo comportamiento y usan
       los mismos ficheros de configuración y programas ldd(1), ldconfig(8) y /etc/ld.so.conf.

       Las bibliotecas compartidas que necesita un programa se buscan en varios lugares:

       o      (sólo para ELF) Usando el atributo dinámico de sección DT_RPATH del binario si está 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      (sólo para ELF) Usando el atributo dinámico de sección DT_RUNPATH del binario si está presente.

       o      A partir del fichero caché /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  opción  -z  nodeflib,  las  bibliotecas  que  se  encuentran  en las rutas
              predeterminadas son omitidas.

       o      En la ruta predeterminada /lib, y después en /usr/lib.  Si el binario fue enlazado con  la  opción
              -znodeflib, se omite este paso.

SINOPSIS

       El enlazador dinámico puede ejecutarse bien indirectamente, al ejecutar un programa o biblioteca enlazado
       dinámicamente (en cuyo caso no pueden pasarse opciones en la línea de órdenes al enlazador dinámico y, en
       el  caso  del  formato  ELF,  se  ejecuta el enlazador dinámico que se encuentra almacenado en la sección
       .interp del programa), bien directamente ejecutando:

       /lib/ld-linux.so.*  [OPCIONES] [PROGRAMA [ARGUMENTOS]]

OPCIONES DE LA LÍNEA DE ÓRDENES

       --list Lista todas las dependencias y cómo se resuelven.

       --verify
              Comprueba que el programa está enlazado dinámicamente y que el enlazador dinámico puede tratarlo.

       --library-path PATH
              Sobreescribe la variable de entorno LD_LIBRARY_PATH (vea más abajo).

       --ignore-rpath LIST
              Ignora la información de RPATH y RUNPATH en los nombres  de  objeto  en  LIST.   Esta  opción  fue
              soportada por glibc2 aproximadamente durante una hora.  Después se renombró 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 ejecución.  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, sólo se cargan las biliotecas en los directorios de búsqueda estándares que también tienen
              activo el bit setuid.

       LD_BIND_NOW
              (libc5;  glibc  desde  la  versión 2.1.1) Si su valor no es la cadena vacía, el enlazador dinámico
              resuelve todos los símbolos al comienzo del programa, en lugar de aplazar  la  resolución  de  las
              llamadas  a  funciones  hasta el punto donde son referenciadas por primera vez.  Es útil cuando se
              utiliza un depurador.

       LD_TRACE_LOADED_OBJECTS
              (sólo para ELF) Si su valor no es  la  cadena  vacía,  el  programa  produce  un  listado  de  las
              bibliotecas  dinámicas  de  las  que depende, como si se hubiera ejecutado con ldd(1), en lugar de
              ejecutar el programa normalmente.

       También hay un montón de variables más o menos oscuras, muchas obsoletas o sólamente para uso interno.

       LD_WARN
              (sólo para ELF)(glibc desde la versión 2.1.3) Si su valor no es la cadena vacía, avisa  sobre  los
              símbolos sin resolver.

       LD_NOWARN
              (sólo  para  a.out)(libc5)  Suprime  los avisos sobre las bibliotecas a.out con números de versión
              menor incompatibles.

       LD_BIND_NOT
              (glibc  desde  la  versión  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)
              después de resolver un símbolo.

       LD_DEBUG
              (glibc desde la versión 2.1) Produce abundante información  de  depuración  acerca  del  enlazador
              dinámico.  Si se le asigna el valor all imprime toda la información de depuración que posee, si se
              le asigna el valor help imprime un mensaje de ayuda con las categorías que pueden especificarse en
              esta variable de entorno.

       LD_DEBUG_OUTPUT
              (glibc desde la versión 2.1) Fichero donde irá a parar la salida de LD_DEBUG, si no se  especifica
              se asume la salida estándar.  LD_DEBUG_OUTPUT se ignora para los binarios con el bit setuid/setgid
              activo.

       LD_VERBOSE
              (glibc  desde  la  versión  2.1)  Si su valor no es la cadena vacía, muestra información sobre las
              versiones de los símbolos cuando se está solicitando información sobre el programa  (es  decir,  o
              bien  se  ha  activado  LD_TRACE_LOADED_OBJECTS, o bien se ha dado al enlazador dinámico la opción
              --list o --verify).

       LD_PROFILE
              (glibc desde la versión 2.1) Objeto compartido para el que se desea obtener el perfil.

       LD_PROFILE_OUTPUT
              (glibc desde la versión 2.1) Fichero donde  irá  a  parar  la  salida  de  LD_PROFILE,  si  no  se
              especifica  se  asume  la salida estándar.  LD_DEBUG_OUTPUT se ignora para los binarios con el bit
              setuid/setgid activo.

       LD_AOUT_LIBRARY_PATH
              (libc5) Versión de LD_LIBRARY_PATH sólo para los binarios a.out. Las versiones anteriores  de  ld-
              linux.so.1 también soportaban LD_ELF_LIBRARY_PATH.

       LD_AOUT_PRELOAD
              (libc5)  Versión  de  LD_PRELOAD  sólo  para  los  binarios a.out. Las versiones anteriores de ld-
              linux.so.1 también soportaban LD_ELF_PRELOAD.

       LD_SHOW_AUXV
              (glibc desde la versión 2.1) Muestra el array auxiliar que se pasa desde el núcleo.

       LD_HWCAP_MASK
              (glibc desde la versión 2.1) Máscara para las capacidades hardware.

       LD_ORIGIN_PATH
              (glibc desde la versión 2.1) Ruta donde se encuentra el binario (para programas con el bit  setuid
              desactivado).

       LD_DYNAMIC_WEAK
              (glibc desde la versión 2.1.91) Permite que los símbolos débiles se puedan sobrescribir (volviendo
              al antiguo comportamiento de glibc).

       LD_KEEPDIR
              (sólo  para  a.out)(libc5) No ignora el directorio en los nombres de las bibliotecas a.out que son
              cargadas.  El uso de esta opción está fuertemente desaconsejado.

       LDD_ARGV0
              (libc5) argv[0] a ser usado por ldd(1) cuando no hay ninguno.

FICHEROS

       /lib/ld.so
              enlazador/cargador dinámico
       /lib/ld-linux.so.{1,2}
              enlazador/cargador dinámico 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 está disponible para ejecutables compilados usando la  versión  4.4.3  de  libc  o
       posterior.  La funcionalidad ELF está disponible desde la versión 1.1.52 de Linux y libc5.

VÉASE TAMBIÉN

       ldd(1), ldconfig(8)

                                                16 diciembre 2001                                       ld.so(8)