Provided by: manpages-es_4.18.1-1_all bug

NOMBRE

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

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]]

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(1) durante la compilación.

       El  programa  ld.so  maneja  ficheros binarios con el formato a.out, un formato usado hace
       tiempo. El programa ld-linux.so* maneja el formato  ELF  (/lib/ld-linux.so.1  para  libc5,
       /lib/ld-linux.so.2  para  glibc2),  más  moderno.  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).

       Cuando se resuelven las dependencias de objetos compartidos, el enlazador dinámico empieza
       por comprobar cada dependencia para ver si contiene alguna barra (lo  cual  puede  ocurrir
       si,  al  enlazar,  definimos  una ruta que contenía alguna). Si se encuentra una barra, la
       cadena se interpreta como un nombre de ruta (puede ser absoluto o relativo) y  se  cargará
       el objeto compartido con dicha ruta.

       Si la dependencia del objeto compartido no contiene ninguna barra, ésta se buscara en este
       orden:

       (1)  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.

       (2)  Usando  la  variable  de  entorno  LD_LIBRARY_PATH,  salvo  cuando se ejecute en modo
            seguro, en cuyo caso la variable será ignorada.

       (3)  Mediante los  directorios  definidos  en  el  atributo  de  la  sección  dinámica  de
            DT_RUNPATH  del  binario, si existe. Solo se buscará en estos directorios los objetos
            requeridos en las entradas de  DT_NEEDED  (dependencias  directas)  pero  no  en  los
            descendientes  de  estos  objetos.  Éstos  últimos  deben  tener  su  propia  entrada
            DT_RUNPATH. Esto es distinto de  DT_RPATH,  que  se  usa  para  buscar  a  todos  los
            descendientes en el árbol de dependencias.

       (4)  A  partir  del fichero de caché /etc/ld.so.cache, que contiene una lista compilada de
            bibliotecas candidatas encontradas previamente en la ruta  de  bibliotecas  ampliada.
            Sin  embargo,  si  el binario fue enlazado con la opción -z nodeflib, las bibliotecas
            que se encuentran en las rutas predeterminadas son omitidas. Se prefieren los objetos
            compartidos  instalados  en directorios de capacidades de hardware (vea más adelante)
            antes que los otros.

       (5)  En las rutas por defecto: /lib y  /usr/lib (en algunas arquitecturas de 64 bits,  las
            rutas  por  defecto  para  estos  objetos  compartidos son /lib64 y /usr/lib64. Si el
            binario fue enlazado con la opción  -z nodeflib, se omite este paso.

   Token de cadena dinámica
       En varios lugares, el enlazador expandirá los tokens de cadena dinámica:

       •  En las variables de entorno LD_LIBRARY_PATH, LD_PRELOAD y LD_AUDIT,

       •  en los valores de las etiquetas de sección dinámica  DT_NEEDED,  DT_RPATH,  DT_RUNPATH,
          DT_AUDIT y DT_DEPAUDIT, también binarios ELF,

       •  en varios argumentos de la orden ld.so: --audit, --library-path y --preload, por último

       •  en el argumento del nombre de archivo de las funciones dlopen(3) y dlmopen(3).

       Los tokens sustituidos con como sigue:

       $ORIGIN (o el equivalente ${ORIGIN})
              Esto  se  expandirá  con  el  directorio  que  contiene  el  programa o los objetos
              compartidos. Por lo tanto, una aplicación que se encuentre en  /dir/app  se  podría
              compilar con

                  gcc -Wl,-rpath,'$ORIGIN/../lib'

              para  que  encuentre   el  objeto compartido en dir/lib pudiendo el directorio /dir
              estar localizado en cualquier punto del árbol de directorios. Esto  evita  que  las
              aplicaciones  deban instalarse en un directorios concreto sino que podrán acceder a
              sus objetos compartidos desde cualquier directorio.

       $LIB (o su equivalente ${LIB})
              Esto se interpretaría como lib o lib64 según la  arquitectura  (lógicamente  si  es
              x86-64 lo hará a lib64 y si es x86-32 lo hará a lib).

       $PLATFORM (o su equivalente ${PLATFORM})
              Esto  se expandirá en una cadena de texto correspondiente al tipo de procesador del
              sistema  (por ejemplo, "x86_64"). En algunas arquitecturas, el núcleo de  Linux  no
              proporciona una cadena de plataforma al enlazador dinámico. El valor de esta cadena
              se extrae de AT_PLATFORM en el vector auxiliar (consulte getauxval (3)).

       Observe que los tokens de cadena dinámicas tienen que entrecomillarse correctamente cuando
       se  definen a través de una shell para evitar que se interpreten como variables de entorno
       o de la propia shell.

OPCIONES

       --preload list (a partir de glibc 2.33)
              Define el valor string para argv[0] antes de ejecutar la aplicación.

       --audit lista
              Utilice los objetos nombrados en lista como auditores.  Los  objetos  en  list  ese
              delimitan entre si por dos puntos.

       --inhibit-cache
              No emplee /etc/ld.so.cache.

       --library-path ruta
              Emplee  path en lugar de la configuración de la variable de entorno LD_LIBRARY_PATH
              (vea más adelante). Los nombres ORIGIN, LIB y PLATFORM se entienden dirigidos a  la
              variable LD_LIBRARY_PATH.

       --inhibit-rpath lista
              Ignora  la  información  de  RPATH y RUNPATH en los nombres de objeto en list. Esta
              opción se ignora si la ejecución se realiza en modo seguro (vea más adelante).  Los
              objetos de la lista se separan mediante espacio o con dos puntos.

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

       --list-tunables (a para partir de la version 2.33 de glibc)
              Muestra los nombres y los valores de todos los ajustables junto con el intervalo de
              valores permitidos.

       --preload list (a partir de glibc 2.30)
              Carga previamente los objetos especificados en list, separados  entre  si  por  dos
              puntos  o  por  espacios. Estos objetos se cargarán previamente tal como se explica
              más adelante en la descripción de la variable LD_PRELOAD.

              Contrariamente al use de LD_PRELOAD, la opción --preload permite realizar una carga
              previa  para un solo ejecutable sin afectar a las cargas de otras procesos hijos de
              éste que ejecuten un nuevo programa.

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

ENTORNO

       Diversas variables de entorno influyen en el funcionamiento del enlazador.

   Modo de ejecución seguro
       Por  razones  de  seguridad,  cuando  el  enlazador  determina  que  un  binario tiene que
       ejecutarse en modo seguro se modificará o  anulará  el  efecto  de  algunas  variables  de
       entorno.  Es  más, estas variables se eliminan del entorno así que el programa ni siquiera
       las verá. A continuación, se describen algunas  de  estas  variables  que  afectan  a  las
       operaciones  del  propio  enlazador.  Otras  variables de entorno gestionadas de este modo
       incluyen:  GCONV_PATH,  GETCONF_DIR,  HOSTALIASES,  LOCALDOMAIN,  LOCPATH,   MALLOC_TRACE,
       NIS_PATH, NLSPATH, RESOLV_HOST_CONF, RES_OPTIONS, TMPDIR y TZDIR.

       Un  binario  se  ejecuta  en  modo  seguro  si  la entrada AT_SECURE en el vector auxiliar
       (consulte getauxval (3)) tiene un valor distinto de cero.  Esta  entrada  puede  tener  un
       valor distinto de cero por varias razones:

       •  Si difieren las ID de usuario reales y efectivas del proceso o las ID de grupo reales y
          efectivas. Esto suele ocurrir como resultado de la ejecución de una apliación  con  los
          bits activados de set-user-ID or set-group-ID.

       •  Un  proceso  ejecutado  por un usuario distinto al administrador ejecuta un binario que
          confiere alguna capacidad al mismo.

       •  Es posible que un módulo de seguridad de Linux haya definido un valor distinto de cero.

   Variables de entorno
       Las variables de entorno más relevantes son las siguientes:

       LD_ASSUME_KERNEL (a partir de glibc 2.2.3)
              Cada objeto compartido puede informar al enlazador dinámico de la versión mínima de
              ABI  del núcleo requierida. (Este requisito está codificado en una sección de notas
              ELF que se puede ver ejecutando readelf  -n marcado como  NT_GNU_ABI_TAG).  Durante
              la ejecución, el enlazador dinámico determina la versión ABI del núcleo que se está
              ejecutando y rechazará cargar objetos compartidos que necesiten una versión de  ABI
              superior.

              LD_ASSUME_KERNEL  puede  usarse  para  hacer que el enlazador dinámico asuma que se
              está ejecutando en un sistema con una versión  de  ABI  de  núcleo  diferente.  Por
              ejemplo,  la  siguiente  orden  hace  que  el  enlazador dinámico asuma que se está
              ejecutando en Linux 2.2.5 al cargar los objetos compartidos requeridos por myprog:

                  $ LD_ASSUME_KERNEL=2.2.5 ./myprog

              En sistemas que proporcionan  múltiples  versiones  de  un  objeto  compartido  (en
              diferentes  directorios  en  la  ruta de búsqueda) que tienen diferentes requisitos
              mínimos de  versión  de  ABI  del  kernel,  se  puede  usar  LD_ASSUME_KERNEL  para
              seleccionar la versión del objeto que se usa (dependiendo del orden de búsqueda del
              directorio).

              Históricamente, el uso más común de la  función  LD_ASSUME_KERNEL  era  seleccionar
              manualmente  los  antiguos  subprocesos  POSIX  de  LinuxThreads  en  sistemas  que
              proporcionaban   tanto   LinuxThreads   como   NPTL   (que   normalmente   era   el
              predeterminado); consulte pthreads (7).

       LD_BIND_NOW (desde glibc 2.1.1)
              Si  su valor es distinto de cero, hará que el enlazador dinámico resuelva todos los
              símbolos al iniciarse el programa en lugar de hacerlo la primera vez  que  se  hace
              referencia a ellos. Esto es especialmente útil cuando estamos usando un depurador.

       LD_LIBRARY_PATH
              Lista  de  directorios  donde  encontrar  librerías  ELF  durante la ejecución. Los
              componentes de la lista estarán separados entre si o bien por punto y coma  o  bien
              por  dos  puntos  no  siendo  posible  usar una secuencia de escape para ninguno de
              ellos. Si la longitud del nombre del directorio es cero, se entenderá el directorio
              actual.

              Esta variable se ignora en el modo de ejecución seguro.

              Dentro  de  los  nombres  de  ruta  especificados  en LD_LIBRARY_PATH, el enlazador
              dinámico expande los tokens $ ORIGIN, $ LIB e $ PLATFORM (o las versiones que  usan
              llaves  alrededor  de  los  nombres) como se ha descrito anteriormente en Tokens de
              cadena dinámica. Por ejemplo, para buscar una biblioteca en el subdirectorio lib  o
              lib64 dentro del directorio que contiene el programa a ejecutar:

                  $ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog

              (Observe  el  uso de comillas simples para evitar que la shell interprete $ORIGIN y
              $LIB como variables)

       LD_PRELOAD
              Una lista con una serie  adicional,  especificados  por  el  usuario,   de  objetos
              compartidos ELF para ser cargados antes que todos los demás. Esto puede usarse para
              anular en casos concretos algunas funciones en otros objetos compartidos.

              Los componentes de esta lista puede  separarse  entre  si  mediante  dos  puntos  o
              mediante punto y coma. No existe una secuencia de escape para estos dos caracteres.
              Se buscan los objetos empleando la regla definida en DESCRIPTION, se van  añadiendo
              al mapa de enlaces de izquierda a derecha según se especifica en la lista.

              En  el  modo  de  ejecución  seguro,  se ignoran los nombres de ruta de precarga si
              contienen barras. Además, los objetos  compartidos  se  precargan  solo  desde  los
              directorios de búsqueda estándar y solo si tienen habilitado el bit set-user-ID (lo
              cual no es habitual).

              Dentro de los nombres especificados en la lista LD_PRELOAD, el  enlazador  dinámico
              interpreta  los  tokens  $ ORIGIN, $ LIB e $ PLATFORM (o los equivalente con llaves
              alrededor de los nombres) como se ha descrito anteriormente  en  tokens  de  cadena
              dinámica.  (Véase  también  la  explicación  sobre el entrecomillado en el apartado
              LD_LIBRARY_PATH.)

              Existen varias formas de indicar las bibliotecas que se deben precargar,  siguiendo
              este orden:

              (1)  La variable de entorno LD_PRELOAD.

              (2)  Indicar  en  la  línea  de  órdenes  la  opción  --preload  cuando  se ejecute
                   directamente el enlazador dinámico.

              (3)  Desde el archivo /etc/ld.so.preload (explicado más adelante).

       LD_TRACE_LOADED_OBJECTS
              Si está definido (cualquiera que sea su valor)  hará  que  el  programa  liste  sus
              dependencias como si fuese ejecutado por ldd(1) en lugar de directamente.

       Hay  muchas  más  variables  más  o menos crípticas, muchas de ellas anticuadas o para uso
       interno.

       LD_AUDIT (desde glibc 2.4)
              Una lista de objetos compartidos ELF especificados por el usuario que  se  cargarán
              antes que todos los demás en un espacio de nombres de enlazador separado (es decir,
              uno que no interfiera en el enlazado de símbolos  del  proceso)  Estos  objetos  se
              pueden  usar  para auditar la operación del enlazador dinámico. Los elementos de la
              lista están separados entre si por dos puntos y  no  existe  ninguna  secuencia  de
              escape para este separador.

              Se ignora LD_AUDIT en el modo de ejecución seguro.

              El  enlazador  dinámico  notificará  a  los objetos compartidos de auditoría en los
              llamados puntos de control de auditoría, por  ejemplo,  cargando  un  nuevo  objeto
              compartido,  resolviendo  un  símbolo  o  llamando  a  un  símbolo  de  otro objeto
              compartido (llamando a una  función  apropiada  dentro  del  objeto  compartido  de
              auditoría).  Para  obtener  más información, consulte rtld-audit (7) La interfaz de
              auditoría es en gran medida compatible con la proporcionada  en  Solaris,  como  se
              describe  en  su Linker and Libraries Guide, en el capítulo Runtime Linker Auditing
              Interface.

              Dentro de los nombres especificados en la lista  LD_AUDIT,  el  enlazador  dinámico
              interpreta  los  tokens $ ORIGIN, $ LIB e $ PLATFORM (o los equivalentes con llaves
              alrededor de los nombres) como se ha descrito anteriormente  en  tokens  de  cadena
              dinámica.   (Véase  también  la  explicación  del  entrecomillado  en  el  apartado
              LD_LIBRARY_PATH.)

              A partir de la versión 2.13 de glibc, en el modo de ejecución segura,  los  nombres
              de  la  lista  de  auditoría  que  contienen barras se ignoran y solo se cargan los
              objetos compartidos en los directorios de búsqueda estándar que  tienen  habilitado
              el bit set-user-ID.

       LD_BIND_NOT (a partir de glibc 2.1.95)
              Si  esta  variable de entorno se establece en una cadena no vacía, no actualiza GOT
              (tabla de compensación global) y  PLT  (tabla  de  vinculación  de  procedimientos)
              después de resolver un símbolo de función. Si con el uso de esta variable, añadimos
              LD_DEBUG (con las categorías bindings y symbols),  se  pueden  observar  todos  los
              enlaces de funciones en tiempo de ejecución.

       LD_DEBUG (desde glibc 2.1)
              Muestra  información  detallada de depuración sobre el funcionamiento del enlazador
              dinámico. El contenido de esta variable es una o más de las siguientes  categorías,
              separadas por dos puntos, comas o (si se entrecomilla el valor) espacios:

              help        Si asignamos el valor help a esta variable, no se ejecutará el programa
                          y se mostrará un mensaje de ayuda informando acerca de  las  categorías
                          que se pueden definir en esta variable de entorno.

              all         Imprime información para la depuración (salvo statistics ni unused; vea
                          a continuación.

              bindings    Muestra información sobre la definición a la que  está  vinculado  cada
                          símbolo.

              files       Muestra el progreso del archivo de entrada.

              libs        Muestra las rutas de búsqueda de las librerias.

              reloc       Muestra el procesamiento de reubicación.

              scopes      Muestra información del alcance.

              statistics  Muestra estadísticas de reubicación.

              symbols     Muestra las rutas de búsqueda para cada búsqueda de símbolo.

              unused      Determina los DSO's sin usar.

              versions    Muestra las dependencias de esa versión.

              Desde  glibc  2.3.4,  LD_DEBUG  se ignora en el modo de ejecución segura, salvo que
              exista el archivo /etc/suid-debug (el contenido del archivo es irrelevante).

       LD_DEBUG_OUTPUT (desde glibc 2.1)
              Por defecto, la  salida  LD_DEBUG  se  escribe  a  error  estándar.  Si  se  define
              LD_DEBUG_OUTPUT,  la  salida  se  escribe  en el nombre de ruta especificado por su
              valor, con el sufijo "." (punto) seguido del ID de proceso adjunto al nombre de  la
              ruta.

              LD_DEBUG_OUTPUT se ignora en el modo de ejecución seguro.

       LD_DYNAMIC_WEAK (desde glibc 2.1.91)
              Por  defecto,  cuando  el enlazador busque una biblioteca compartida para encontrar
              algún símbolo, tomará la primera definición que encuentre.

              Las versiones de glibc anteriores a 2.2, lo hacían de otro modo:  si  el  enlazador
              encontraba un símbolo débil, seguiría buscando hasta encontrar uno más fuerte en el
              resto de bibliotecas compartidas. Si encontrase uno más fuerte, lo  usaría.En  caso
              de  no  encontrar  otro  más  fuerte,  usaría  la  definición  del  débil. Si no se
              encontrasen más simbolos, el enlazador dinámico usuará el símbolo débil  encontrado
              al inicio

              El  antiguo  comportamiento de glibc no era el estándar. (La práctica estandarizada
              es que la distinción entre símbolos débiles y fuertes  debería  tener  efecto  solo
              durante  del  enlazado  estático).  En glibc 2.2, el enlazador dinámico se modificó
              para  tener  el  comportamiento  actual,  que  era   el   comportamiento   que   ya
              proporcionaban la mayoría de las otras implementaciones.

              Si se define la variable de entorno LD_DYNAMIC_WEAK (con cualquier valor) se tendrá
              el antiguo comportamiento glibc (no estándar), mediante el cual un símbolo débil en
              una  biblioteca  compartida  puede ser anulado por un símbolo fuerte posteriormente
              descubierto en otra biblioteca compartida. (Observe que incluso cuando se establece
              esta  variable,  un  símbolo  fuerte  en  una  biblioteca compartida no anulará una
              definición débil del mismo símbolo en el programa principal).

              A partir de glibc 2.3.4, LD_DYNAMIC_WEAK se ignora en el modo de ejecución seguro.

       LD_HWCAP_MASK (desde glibc 2.1)
              Máscara para las capacidades hardware.

       LD_ORIGIN_PATH (desde glibc 2.1)
              Ruta donde se encuentra el binario.

              A partir de glibc 2.4, LD_ORIGIN_PATH se ignora en el modo de ejecución seguro.

       LD_POINTER_GUARD (glibc desde la versión 2.4 hasta la 2.22)
              Definir a 0 para deshabilitar la  protección  del  puntero.  Cualquier  otro  valor
              habilita la protección del puntero (lo hará por defecto). La protección de punteros
              es un mecanismo de seguridad mediante el cual se alteran de forma semi-aleatoria el
              código  almacenado  en  la  memoria  del  programa  grabable (devuelven direcciones
              guardads por setjmp(3) o punteros de  función  utilizados  por  varios  componentes
              internos  de  glibc) para dificultar que un atacante puede usarlos si se produce un
              desbordamiento de búfer o un ataque a la pila. Desde  la  versión  2.23  de  glibc,
              LD_POINTER_GUARD ya no se puede deshabilitar la protección de punteros.

       LD_PROFILE (a partir de glibc 2.1)
              El  nombre  de un objeto compartido (único) que se va a perfilar, especificado como
              nombre de ruta o como soname. La salida del perfilado se  agrega  al  archivo  cuyo
              nombre es: "$ LD_PROFILE_OUTPUT / $ LD_PROFILE .profile".

              A partir de glibc 2.2.5, LD_PROFILE se ignora en el modo de ejecución seguro.

       LD_PROFILE_OUTPUT (desde glibc 2.1)
              Directorio donde se debe escribir la salida de LD_PROFILE. Si esta variable no está
              definida, o está definida como una cadena vacía, se toma por defecto /var/tmp.

              LD_PROFILE_OUTPUT se ignora en el modo de ejecución segura; en su lugar, siempre se
              usa  /var/profile. (Este detalle es relevante solo en versiones anteriores de glibc
              2.2.5,  en las posteriores, LD_PROFILE también se ignora en el  modo  de  ejecución
              segura).

       LD_SHOW_AUXV (desde glibc 2.1)
              Si  esta variable de entorno está definida (con cualquier valor), muestra la matriz
              auxiliar enviada desde el núcleo (vea también getauxval (3)).

              A partir de glibc 2.3.4, LD_SHOW_AUXV se ignora en el modo de ejecución seguro.

       LD_TRACE_PRELINKING (desde glibc 2.4)
              Si se define esta variable de entorno, se hará un  seguimiento  de  la  vinculación
              previa  del  objeto  cuyo nombre está asignado a esta variable de entorno. (Utilice
              ldd (1) para ver los objetos que se pueden rastrear.)  Si no se reconoce el  nombre
              del objeto, se rastrea toda la actividad de preenlace.

       LD_USE_LOAD_BIAS (a partir de glibc 2.3.3)
              De  forma  predeterminada  (es  decir,  si  esta  variable  no  está definida), los
              ejecutables y los objetos compartidos preenlazados respetarán las direcciones  base
              de  sus objetos compartidos dependientes, pero los ejecutables independientes de la
              posición (PIE) (no vinculados previamente)  y  otros  objetos  compartidos  no  los
              respetarán.  Si  LD_USE_LOAD_BIAS  se  define con el valor 1, tanto los ejecutables
              como los PIE respetarán las direcciones base. Si LD_USE_LOAD_BIAS se define con  el
              valor 0, ni los ejecutables ni los PIE respetarán las direcciones base.

              A partir de glibc 2.3.3 se ignora esta variable en el modo de ejecución seguro.

       LD_VERBOSE (a partir de glibc 2.1)
              Si  se le asigna un valor de una cadena no vacía y si se ha establecido la variable
              de entorno LD_TRACE_LOADED_OBJECTS,  se generará información sobre la  versión  del
              símbolo sobre el programa.

       LD_WARN (desde glibc 2.1.3)
              Si  se  le  asigna  como  valor  una cadena no nula, avisará si detecta símbolos no
              resueltos.

       LD_PREFER_MAP_32BIT_EXEC (solo en x86-64 y desde glibc 2.23)
              Según la guía de optimización del software Intel Silvermont, para las  aplicaciones
              de  64  bits,  el  rendimiento  de  la  predicción  de  ramas  puede verse afectado
              negativamente cuando el objetivo de una rama está a más de 4  GB  de  distancia  de
              ella.  Si  esta  variable  de  entorno  está  configurada (con cualquier valor), el
              enlazador dinámico primero intentará mapear páginas  ejecutables  usando  mmap  (2)
              MAP_32BIT  y volverá a mapear si ese intento falla. NB: MAP_32BIT se asignará a los
              2 GB (no 4 GB) del espacio de direcciones.

              Debido a que MAP_32BIT reduce el rango de direcciones disponible para que el diseño
              del  espacio  de direcciones sea aleatorio (ASLR), LD_PREFER_MAP_32BIT_EXEC siempre
              está deshabilitado en el modo de ejecución segura.

ARCHIVOS

       /lib/ld.so
              enlazador/cargador dinmico

       /lib/ld-linux.so.{1,2}
              Enlazador/cargador dinámico ELF

       /etc/ld.so.cache
              Archivo que contiene una lista de directorios donde encontrar objetos compartidos y
              una lista ordenada de los candidatos. Consulte ldconfig(8).

       /etc/ld.so.preload
              Archivo  que  contiene  una lista de objetos compartidos ELF separados entre si por
              espacios en blanco que se cargarán antes del programa.  Vea  el  apartado  anterior
              LD_PRELOAD. Si se emplean tanto LD_PRELOAD como /etc/ld.so.preload, las bibliotecas
              especificadas por LD_PRELOAD se precargan primero. /etc/ld.so.preload tiene  efecto
              en  todo  el  sistema,  lo  que  hace  que las bibliotecas especificadas se carguen
              previamente para todos los programas que se ejecutan en el sistema. (En general, no
              suele  ser  una  opción  ideal  y por lo tanto, solo se emplea como una solución de
              emergencia,  por  ejemplo,  como  una  solución  temporal  para  un   problema   de
              configuración incorrecta de la biblioteca).

       lib*.so*
              objetos compartidos

NOTAS

   Capacidades de hardware
       Algunos  objetos  compartidos se compilan utilizando instrucciones específicas de hardware
       que no existen en todas las CPU. Estos  objetos  deben  instalarse  en  directorios  cuyos
       nombres definan las capacidades de hardware necesarias, como /usr /lib/sse2/. El enlazador
       dinámico compara estos directorios con el hardware de la máquina y selecciona  la  versión
       más  adecuada  de  un  objeto compartido dado. Los directorios de capacidad de hardware se
       pueden conectar en cascada para  combinar  funciones  de  CPU.  La  lista  de  nombres  de
       capacidad  de  hardware  admitidos  depende  de  la  CPU.  Actualmente  se  reconocen  los
       siguientes:

       Alpha  ev4, ev5, ev56, ev6, ev67

       MIPS   loongson2e, loongson2f, octeon, octeon2

       PowerPC
              4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe,  dfp,  efpdouble,  efpsingle,
              fpu,  ic_snoop,  mmu,  notb, pa6t, power4, power5, power5+, power6x, ppc32, ppc601,
              ppc64, smt, spe, ucache, vsx

       SPARC  flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2

       s390   dfp, eimm, esan3, etf3enh, g5, highgprs, hpage,  ldisp,  msa,  stfle,  z900,  z990,
              z9-109, z10, zarch

       x86 (solo 32-bit)
              acpi,  apic,  clflush,  cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx,
              mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm

VÉASE TAMBIÉN

       ld(1),  ldd(1),  pldd(1),  sprof(1),  dlopen(3),  getauxval(3),  elf(5),  capabilities(7),
       rtld-audit(7), ldconfig(8), sln(8)

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Juan Piernas
       <piernas@ditec.um.es> y Marcos Fouces <marcos@debian.org>

       Esta traducción es documentación libre; lea  la  GNU  General  Public  License  Version  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  o posterior con respecto a las condiciones de
       copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta  página  del  manual,  envíe  un  correo
       electrónico a ⟨debian-l10n-spanish@lists.debian.org⟩.