Provided by: manpages-es_1.55-9_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)