Provided by: manpages-es_4.13-4_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:

       o  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 se ejecute en modo seguro,
          en cuyo caso la variable será ignorada.

       o  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.

       o  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.

       o  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:

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

       o  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,

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

       o  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

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

       --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  que  requiere.  (Este requisito está codificado en una sección de
              notas ELF que se puede ver ejecutando readelf  -n como  una  sección  marcada  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 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.

              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)

COLOFÓN

       Esta  página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una
       descripción del proyecto, información sobre cómo informar errores y la última  versión  de
       esta página en https://www.kernel.org/doc/man-pages/.

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 ⟨⟩.