man ld.so (Administration système) - Chargeur et éditeur de liens dynamiques.
NOM
ld.so, ld-linux.so - Chargeur et éditeur de liens dynamiques.
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 trouvées lors des exécutions précédentes.
- o
- Dans les répertoires par défaut /usr/lib, puis /lib.
ENVIRONNEMENT
- LD_LIBRARY_PATH
- Comme la variable d'environnement PATH, cette variable contient une liste de répertoires séparés par des points-virgules. Les bibliothèques au format ELF sont recherchées au démarrage dans ces répertoires.
- LD_PRELOAD
- Une liste séparée par des blancs 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 setuid et setgid, seules les bibliothèques setgid des répertoires standards seront chargées.
- LD_TRACE_LOADED_OBJECTS
- Si la chaîne est non-vide, le programme ne s'exécute pas normalement, mais liste ses dépendances dynamiques comme s'il était lancé par ldd(1).
- LD_BIND_NOW
- Si la chaîne est non-vide, 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 où elles sont référencées en premier. Ndt : ceci est utile dans un débogueur.
- LD_AOUT_LIBRARY_PATH
- Comme la variable d'environnement PATH, cette variable contient une liste de répertoires séparés par des points-virgules. 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 versions antérieures.
- LD_KEEPDIR
- Ne pas ignorer le répertoire dans les noms de bibliothèques a.out. Cette option est très déconseillée.
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.
- lib*.so*
- Bibliothèques partagées.
VOIR AUSSI
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
Christophe Blaess, 2003. Denis Barbier, 2004.