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

GNU                                              13 Agosto 2020                                         LD.SO(8)