Provided by: manpages-fr-extra_20111118_all bug

NOM

       ld.so, ld-linux.so - Chargeur et éditeur de liens dynamique

DESCRIPTION

       Le  programme  ld.so  trouve  et  charge  les  bibliothèques  partagées
       nécessaires pour un programme, prépare son démarrage, et  le  lance.  À
       moins  que l'option -static n'ait été indiquée sur la ligne de commande
       de ld durant la compilation, un binaire Linux  n'est  pas  autonome  et
       nécessite une édition de liens dynamique pendant son lancement.

       Les bibliothèques partagées nécessaires à un programme sont recherchées
       consécutivement dans les endroits suivants :

       o      En  utilisant  la   variable   d'environnement   LD_LIBRARY_PATH
              (LD_AOUT_LIBRARY_PATH   pour   le   format   a.out),   sauf   si
              l'exécutable est un binaire setuid ou setgid,  auquel  cas  elle
              est ignorée.

       o      Depuis  le fichier cache /etc/ld.so.cache qui contient une liste
              compilée  de  bibliothèques   candidates   trouvées   lors   des
              exécutions  précédentes  dans  les  chemins  de  recherche.  Les
              bibliothèques  installées  dans  des  répertoires  de   capacité
              matérielle   (voir   ci-dessous)   sont   préférées  aux  autres
              bibliothèques.

       o      Dans les répertoires par défaut /lib, puis /usr/lib.

OPTIONS EN LIGNE DE COMMANDE

       --list Liste les dépendances et leurs résolutions.

       --verify
              Vérifie que le programme est lié dynamiquement et que  l'éditeur
              de liens peut le traiter.

       --library-path CHEMIN
              Surcharge la variable d'environnement LD_LIBRARY_PATH (voir plus
              bas).

       --ignore-rpath LISTE
              Ignorer les informations RPATH et RUNPATH dans les objets de  la
              LISTE.  Cette  option  a  été  supportée  par  la glibc2 pendant
              environ une heure. Puis elle a été renommée en :

       --inhibit-rpath LISTE

ENVIRONNEMENT

       LD_LIBRARY_PATH
              Comme la variable d'environnement PATH, cette variable  contient
              une  liste  de  répertoires  séparés  par  des  deux-points. Les
              bibliothèques au format ELF sont recherchées à l'exécution  dans
              ces répertoires.

       LD_PRELOAD
              Une  liste  de  bibliothèques  ELF  (séparées  par  des  blancs)
              spécifiques  à  l'utilisateur,  à  charger  avant   les   autres
              bibliothèques.  Ceci  permet  de  surcharger  sélectivement  les
              fonctions des autres bibliothèques partagées. Pour les  binaires
              ELF  setuid  et  setgid,  seules  les  bibliothèques  setgid des
              répertoires standards seront chargées.

       LD_TRACE_LOADED_OBJECTS
              Lorsqu'elle est présente, le  programme  liste  ses  dépendances
              dynamiques comme s'il était lancé par ldd, au lieu de s'exécuter
              normalement.

       LD_BIND_NOW
              Si elle est présente,  l'éditeur  de  liens  résoudra  tous  les
              symboles  au  démarrage  du  programme  au  lieu de repousser la
              résolution des noms de fonctions  au  moment  de  leur  première
              référence.

       LD_BIND_NOT
              Ne pas mettre à jour les tables GOT (« global offset table ») et
              PLT  (« procedure  linkage  table »)  après  une  résolution  de
              symbole.

       LD_AOUT_LIBRARY_PATH
              Comme  la variable d'environnement PATH, cette variable contient
              une liste  de  répertoires  séparés  par  des  deux-points.  Les
              bibliothèques au format a.out sont recherchées au démarrage dans
              ces répertoires.

       LD_AOUT_PRELOAD
              Le nom d'une bibliothèque a.out spécifique  à  l'utilisateur,  à
              charger   après   les   autres  bibliothèques.  Ceci  permet  de
              surcharger sélectivement les fonctions des autres  bibliothèques
              partagées.

       LD_NOWARN
              Supprimer  les  avertissements  à propos des bibliothèques a.out
              incompatibles avec les numéros de versions mineures antérieures.

       LD_WARN
              Si la chaîne est non vide,  avertir  si  un  symbole  n'est  pas
              résolu.

       LD_KEEPDIR
              Ne  pas  ignorer  le  répertoire  dans les noms de bibliothèques
              a.out. Cette option est très déconseillée.

       LD_DEBUG
              Afficher de nombreuses informations  de  débogage  de  l'éditeur
              dynamique.   Si  elle  vaut  all,  afficher  tous  les  messages
              d'information, si elle vaut help, afficher un message  d'aide  à
              propos   des   catégories  que  peuvent  valoir  cette  variable
              d'environnement.

       LD_DEBUG_OUTPUT
              Fichier où la sortie  de  LD_DEBUG  devrait  être  envoyée.  Par
              défaut,  c'est  la  sortie standard. LD_DEBUG_OUTPUT est ignorée
              pour les binaires setuid ou setgid.

       LD_VERBOSE
              S'il s'agit d'une chaîne non vide, afficher les informations sur
              la  version des objets pour lesquels on demande des informations
              sur le programme (si LD_TRACE_LOADED_OBJECTS a  été  configurée,
              ou si les options --list ou --verify ont été données à l'éditeur
              de liens dynamique).

       LD_PROFILE
              Objet partagé à profiler.

       LD_PROFILE_OUTPUT
              Fichier où la sortie de  LD_PROFILE  doit  être  redirigée.  Par
              défaut,  c'est la sortie standard. LD_PROFILE_OUTPUT est ignorée
              pour les binaires setuid ou setgid.

       LD_ASSUME_KERNEL
              Chaque objet partagé dynamiquement (ou  bibliothèque  dynamique,
              ou DSO : « Dynamic Shared Object ») peut indiquer à l'éditeur de
              liens dynamique de la glibc quelle est la  version  minimale  de
              l'ABI  du  système  est  nécessaire. Cette information est codée
              dans une section de note ELF souvent appelée  « .note.ABI-tag ».
              Ceci  permet  de  déterminer  quelle  bibliothèque charger quand
              plusieurs versions de la même bibliothèque sont  installées  sur
              le   système.   La   variable  d'environnement  LD_ASSUME_KERNEL
              surcharge la version du noyau utilisée par  l'éditeur  de  liens
              dynamique  qui  détermine  quelles  bibliothèques  doivent  être
              chargées.

EXPANSION DES VARIABLES RPATH

       L'éditeur fournit un nombre de variables  qui  peuvent  être  utilisées
       dans une spécification rpath (DT_RPATH ou DT_RUNPATH).

       $ORIGIN
              ls.so  comprend  la  chaîne  $ORIGIN  (ou de manière équivalente
              ${ORIGIN}) dans un rpath pour  signifier  le  répertoire  où  se
              trouve  l'exécutable  de  l'application.  Une application située
              dans un  répertoire  toto/app  peut  être  compilée  avec  « gcc
              -Wl,-rpath   '$ORIGIN/../lib' »   ;   elle  trouvera  alors  les
              bibliothèques partagées associées dans toto/lib  quel  que  soit
              l'emplacement du répertoire toto dans le hiérarchie de fichiers.

       $PLATFORM
              La chaîne $PLATFORM (ou de manière équivalente ${PLATFORM}) dans
              un rpath est remplacé par le type de processeur  de  la  machine
              actuelle.  Notez que sur certaines architectures, le noyau Linux
              ne fournit pas de chaînes à l'éditeur de liens.

       $LIB   La chaîne $LIB (ou de manière équivalente ${LIB}) dans un  rpath
              correspond  au  répertoire  des  bibliothèques systèmes, qui est
              /lib sur les architectures GNU/Linux compatibles FHS.

CAPACITÉS MATÉRIELLES

       Les bibliothèques peuvent être compilées en utilisant des  instructions
       spécifiques   au   matériel   qui   n'existent   pas   pour   tous  les
       microprocesseurs. Ces bibliothèques doivent être  installées  dans  des
       répertoires   dont   le  nom  définit  une  capacité  matérielle  comme
       /usr/lib/sse2/. L'éditeur de lien dynamique vérifie ces répertoires  en
       fonction  du  matériel  et sélectionne la version la mieux adaptée pour
       une bibliothèque donnée. Les répertoires de capacité matérielle peuvent
       être  imbriqués  pour combiner les caractéristiques du microprocesseur.
       Les  capacités  matérielles  dépendent  du  microprocesseur.  Les  noms
       suivants sont reconnus pour le moment.

       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 (uniquement 32 bits)
              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.

FICHIERS

       /lib/ld.so          le   chargeur/éditeur   de  liens  dynamique
                           a.out.
       /lib/ld-linux.so.*  Le chargeur/éditeur de liens dynamique ELF.
       /etc/ld.so.cache    Fichier  contenant  la  liste  compilée  des
                           répertoires     où     se    trouvent    des
                           bibliothèques, ainsi qu'une  liste  ordonnée
                           de bibliothèques candidates.
       /etc/ld.so.preload  Fichier contenant une liste de bibliothèques
                           ELF, séparées par  des  espaces,  à  charger
                           avant de démarrer le programme.
       /etc/ld.so.nohwcap  Quand  ce  fichier est présent, l'éditeur de
                           liens  dynamique  charge  la   version   non
                           optimisée  de  la  bibliothèque,  même si le
                           processeur peut gérer la version optimisée.
       lib*.so*            Bibliothèques partagées.

VOIR AUSSI

       ldd(1), ldconfig(8).

BOGUES

       Actuellement, ld.so ne peut pas enlever un  lien  existant  pour
       chercher des bibliothèques compatibles ou plus récentes.

       Les  fonctionnalités  de  ld.so ne sont disponibles que pour des
       programmes compilés avec une libc 4.4.3 ou plus  récente  (NdT :
       les  versions  actuelles ont été renommées en glibc et le numéro
       de version a été réinitialisé).

AUTEURS

       David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu,  Linus
       Torvalds,  Lars  Wirzenius  et Mitch D'Souza (pas nécessairement
       dans cet ordre).

TRADUCTION

       Cette page de manuel a été traduite par Christophe  Blaess  <ccb
       AT  club-internet  DOT  fr>  en  2003.  La version présente dans
       Debian   est   maintenue   par   les   membres   de   la   liste
       <debian-l10n-french  AT  lists  DOT  debian  DOT  org>. Veuillez
       signaler toute erreur de traduction par un rapport de bogue  sur
       le paquet manpages-fr-extra.

                                  26 mai 2007                         LD.SO(8)