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)