ld.so   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel de l'administrateur Linux (8)
Updated: 18 avril 2008
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
ld.so, ld-linux.so* - Chargeur et éditeur de liens dynamique  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
L'éditeur de lien dynamique peut être lançé indirectement en démarrant un programme lié dynamiquement ou une bibliothèque (dans ce cas, aucune option en ligne de commande ne peut être transmise, et avec ELF, l'éditeur indiqué dans la section .interp du programme est exécuté), ou directement en lançant : /lib/ld-linux.so.* [OPTIONS] [PROGRAMME [ARGUMENTS]]  



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Les programmes ld.so et ld-linux.so* trouvent et chargent les bibliothèques partagées nécessaires pour un programme, préparent son démarrage, et le lancent.

Les binaires Linux nécessitent une édition de liens dynamique (au démarrage) sauf si l'option -static a été indiquée sur la ligne de commande de ld durant la compilation.

Le programme ld.so traite les binaires a.out, un format utilisé il y a bien longtemps ; ld-linux.so* traitent les fichiers ELF (/lib/ld-linux.so.1 pour libc5, /lib/ld-linux.so.2 pour glibc2), que tout le monde utilise depuis des années. Autrement, les deux programmes ont le même comportement et utilisent les fichiers et programmes ldd(1), ldconfig(8) et /etc/ld.so.conf.

Les bibliothèques partagées nécessaires à un programme sont recherchées dans l'ordre suivant :

o
(ELF seulement) En utilisant les répertoires indiqués dans l'attribut de section dynamique DT_RPATH du fichier binaire s'il est présent, et l'attribut DT_RUNPATH sinon. L'utilisation de DT_RPATH est déconseillée.
o
En utilisant la variable d'environnement LD_LIBRARY_PATH. Sauf si l'exécutable est un binaire Set-UID ou Set-GID, auquel cas elle est ignorée.
o
(ELF seulement) En utilisant les répertoires indiqués dans l'attribut de section dynamique DT_RUNPATH du fichier binaire s'il est présent.
o
Depuis le fichier cache /etc/ld.so.cache qui contient une liste compilée de bibliothèques précédemment trouvées dans des chemins par défaut. Si toutefois le fichier binaire a été lié avec l'option -z nodeflib de l'éditeur de liens, les chemins par défaut sont ignorés.
o
Dans le répertoire par défaut /lib, puis /usr/lib. Si le binaire a été lié avec l'option -z nodeflib de l'éditeur de lien, cette étape est sautée.
 



$ORIGIN et rpath   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

ld.so comprend la chaîne $ORIGIN (ou de manière équivalente ${ORIGIN}) dans une spécification rpath (DT_RPATH ou DT_RUNPATH) comme indiquant le répertoire contenant l'exécutable de l'application. Ainsi, une application située dans un_répertoire/app peut être compilée avec gcc -Wl,-rpath,'$ORIGIN/../lib' de sorte qu'elle trouvera un bibliothèque partagée associée dans un_répertoire/lib où que soit situé un_répertoire dans la hiérarchie du répertoire.

Cela facilite la création d'applications « prêtes à utiliser » qui n'ont pas besoin d'être installées dans un répertoire particulier mais au contraire être installées dans n'importe qul répertoire et toujours trouver leurs propres bibliothèques partagées.  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
--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 PATH
Surcharge la variable d'environnement LD_LIBRARY_PATH (voir plus bas).
--inhibit-rpath LISTE
Ignorer les informations RPATH et RUNPATH dans les objets de la LISTE.
 



ENVIRONNEMENT   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Il y a quatre variables d'environnement importantes.
LD_LIBRARY_PATH
Une liste de répertoires séparés par des points-virgules, dans lesquels les bibliothèques sont recherchées au démarrage. Comme la variable d'environnement PATH.
LD_PRELOAD
Une liste, séparée par des espaces, de bibliothèques ELF 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 Set-UID/Set-GID, seules les bibliothèques Set-UID des répertoires standards seront chargées.
LD_BIND_NOW
(libc5 ; glibc depuis 2.1.1) Si la chaîne est non-vide, l'éditeur de lien résoudra tous les symboles au démarrage du programme plutôt que repousser la résolution des noms de fonctions au moment où elles sont référencées en premier. Ceci est utile dans un débogueur.
LD_TRACE_LOADED_OBJECTS
(ELF seulement) Si la chaîne est non-vide, le programme liste ses dépendances dynamiques comme s'il était lancé par ldd(1), au lieu du lancement normal.

Il existe de nombreuses autres variables plus ou moins obscures, certaines obsolètes, ou résevées pour un usage interne.

LD_WARN
(ELF seulement)(glibc depuis 2.1.3) Si la chaîne est non-vide, avertir si un symbole n'est pas résolu.
LD_NOWARN
(a.out seulement)(libc5) Supprimer les avertissements à propos des bibliothèques a.out incompatibles avec les versions antérieures.
LD_BIND_NOT
(glibc depuis 2.1.95) Ne pas mettre à jour les tables GOT (global offset table) et PLT (procedure linkage table) après résolution d'un symbole.
LD_DEBUG
(glibc depuis 2.1) Afficher de nombreuses informations de débogage de l'éditeur dynamique. Si elle contient all, afficher tous les messages d'information, si elle contient help, afficher un message d'aide à propos des catégories de messages pour cette variable d'environnement.
LD_DEBUG_OUTPUT
(glibc depuis 2.1) 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 Set-UID/Set-GID.
LD_VERBOSE
(glibc depuis 2.1) S'il s'agit d'une chaîne non vide, afficher les informations sur la version des objets sur lesquels on demande des informations sur le programme (si LD_TRACE_LOADED_OBJECTS a été configuré, ou si les options --list ou --verify ont été données à l'éditeur de liens dynamiques).
LD_PROFILE
(GlicC depuis 2.1) Activer le suivi des objets partagés.
LD_PROFILE_OUTPUT
(glibc depuis 2.1) Fichier où la sortie de LD_PROFILE est envoyée. Par défaut, c'est la sortie standard. LD_PROFILE_OUTPUT est ignoré pour les binaires Set-UID/Set-GID.
LD_AOUT_LIBRARY_PATH
(LibC5) Version de LD_LIBRARY_PATH pour les binaire a.out seulement. Les anciennes versions de ld-linux.so.1 supportent LD_ELF_LIBRARY_PATH.
LD_AOUT_PRELOAD
(LibC5) Version de LD_PRELOAD pour les binaires a.out seulement. Les anciennes versions de ld-linux.so.1 supportent LD_ELF_PRELOAD.
LD_SHOW_AUXV
(glibc depuis 2.1) Afficher les tables auxiliaires passées au noyau.
LD_HWCAP_MASK
(glibc depuis 2.1) Masque des capacités matérielles.
LD_ORIGIN_PATH
(glibc depuis 2.1) Chemin du fichier binaire (pour les programmes non Set-UID).
LD_DYNAMIC_WEAK
(glibc depuis 2.1.91) Autorise la surcharge des symboles faibles (retour à l'ancien comportement).
LD_KEEPDIR
(a.out seulement)(LibC5) Ne pas ignorer le répertoire dans les noms de bibliothèques a.out. Cette option est très déconseillée.
LDD_ARGV0
(LibC5) argv[0] à utiliser par ldd(1) si aucun n'est présent.
 



FICHIERS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
/lib/ld.so
Le chargeur/éditeur de lien a.out.
/lib/ld-linux.so.{1,2}
Le chargeur/éditeur de liens ELF.
/etc/ld.so.cache
Fichier contenant la liste compilée des répertoires où des bibliothèques se trouvent.
/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.
lib*.so*
Bibliothèques partagées.
 



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Les fonctionnalités ld.so sont disponibles pour les exécutables compilés à partir de la libc version 4.4.3 et ultérieures. Les fonctionnalités ELF sont disponibles depuis 1.1.52 et la libc5.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
ldd(1), ldconfig(8)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 25 juillet 2003 et révisée le 22 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 ld.so ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
$ORIGIN et rpath
OPTIONS
ENVIRONNEMENT
FICHIERS
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
--inhibit-rpath LISTEOPTIONS
--library-path PATHOPTIONS
--listOPTIONS
--verifyOPTIONS
LD_AOUT_LIBRARY_PATHENVIRONNEMENT
LD_AOUT_PRELOADENVIRONNEMENT
LD_BIND_NOTENVIRONNEMENT
LD_BIND_NOWENVIRONNEMENT
LD_DEBUGENVIRONNEMENT
LD_DEBUG_OUTPUTENVIRONNEMENT
LD_DYNAMIC_WEAKENVIRONNEMENT
LD_HWCAP_MASKENVIRONNEMENT
LD_KEEPDIRENVIRONNEMENT
LD_LIBRARY_PATHENVIRONNEMENT
LD_NOWARNENVIRONNEMENT
LD_ORIGIN_PATHENVIRONNEMENT
LD_PRELOADENVIRONNEMENT
LD_PROFILEENVIRONNEMENT
LD_PROFILE_OUTPUTENVIRONNEMENT
LD_SHOW_AUXVENVIRONNEMENT
LD_TRACE_LOADED_OBJECTSENVIRONNEMENT
LD_VERBOSEENVIRONNEMENT
LD_WARNENVIRONNEMENT
LDD_ARGV0ENVIRONNEMENT



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:09, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional