|
|
ld.so
Section: Manuel de l'administrateur Linux (8) Updated: 25 juillet 2003 Index
Return to Main Contents
NOM
ld.so, ld-linux.so* - Chargeur et éditeur de liens dynamique.
DESCRIPTION
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
traient les binaires a.out, un format utilisé il y a bien longtemps ;
ld-linux.so*
traitent les fichiers ELF (/lib/ld-linux.so.1 for 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écessaire à un programme sont recherchées dans
différents endroits :
- o
-
(ELF seul) En utilisant 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 seul) En utilisant 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édement trouvées
dans des chemins pas 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ées.
- 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.
SYNOPSIS
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]]
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 PATH
-
Surcharge la variable d'environnement
LD_LIBRARY_PATH
(voir plus bas).
- --ignore-rpath LISTE
-
Ignorer les informations RPATH and RUNPATH dans les objets de la LISTE.
Cette oprtion a été supportée par la GlibC2 pendant environ une heure.
Puis elle a été renommée en :
- --inhibit-rpath LISTE
-
ENVIRONNEMENT
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 blancs de bibliothèques ELF spécifiques à
l'utilisateur, a 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
-
(libC 5 ; GibC 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 seul)
Si la chaine 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 seul)(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 seul)(libC5)
Supprimer les avertissement à propos des bibliothèques a.out incompatibles
avec les versions antérieure
- 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 message 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 envcoyé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 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 la sortie standard.
LD_DEBUG_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 seul)(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
- /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ées des répertoires où des bibliothèques
se trouvent.
- /etc/ld.so.preload
-
Fichier contenant une liste de librairie ELF, séparées par des espaces, à
charger avant de démarrer le programme.
- lib*.so*
-
Bibliothèques partagées.
NOTES
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
ldd(1),
ldconfig(8)
TRADUCTION
Christophe Blaess, 2003.
Index
- NOM
-
- DESCRIPTION
-
- SYNOPSIS
-
- OPTIONS EN LIGNE DE COMMANDE
-
- ENVIRONNEMENT
-
- FICHIERS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
|