.\" -*- coding: UTF-8 -*- .\" %%%LICENSE_START(PUBLIC_DOMAIN) .\" This is in the public domain .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH LD.SO 8 "2 août 2019" GNU "Manuel du programmeur Linux" .SH NOM ld.so, ld\-linux.so – Chargeur et éditeur de liens dynamiques .SH SYNOPSIS L'éditeur de liens dynamiques peut être lancé indirectement en démarrant un programme lié dynamiquement ou un objet partagé (dans ce cas, aucune option en ligne de commande ne peut être transmise, et avec ELF, l'éditeur indiqué dans la section \fB.interp\fP du programme est exécuté), ou directement en lançant\ : .PP \fB/lib/ld\-linux.so.*\fP [OPTIONS] [PROGRAMME [ARGUMENTS]] .SH DESCRIPTION Les programmes \fBld.so\fP et \fBld\-linux.so*\fP trouvent et chargent les objets partagés (bibliothèques partagées) nécessaires pour un programme, préparent son démarrage et le lancent. .PP Les binaires Linux nécessitent une édition de liens dynamiques (au démarrage) sauf si l'option \fB\-static\fP a été indiquée sur la ligne de commande de \fBld\fP(1) durant la compilation. .PP Le programme \fBld.so\fP traite les binaires a.out, un format utilisé il y a bien longtemps. Le programme \fBld\-linux.so*\fP (\fI/lib/ld\-linux.so.1\fP pour libc5, \fI/lib/ld\-linux.so.2\fP pour glibc2) traite les binaires qui sont au format ELF plus moderne. Les deux programmes ont le même comportement et utilisent les mêmes fichiers d’aide et mêmes programmes (\fBldd\fP(1), \fBldconfig\fP(8) et \fI/etc/ld.so.conf\fP). .PP Lors de la résolution des dépendances d’objets partagés, l'éditeur de liens dynamiques inspecte d'abord chaque chaîne de dépendance à la recherche d'une barre oblique (cela peut arriver si un chemin d’objet partagé contenant des barres obliques a été indiqué au moment de la liaison). Si une barre oblique est trouvée, alors la chaîne de dépendance est interprétée comme un chemin (relatif ou absolu) et l’objet partagé est chargé en utilisant ce chemin. .PP Si une dépendance d’objet partagé ne contient pas de barre oblique, alors elle est recherchée dans l'ordre suivant\ : .IP \fBo\fP 3 En utilisant les répertoires indiqués dans l'attribut de la section dynamique DT_RPATH du fichier binaire s'il est présent et si l'attribut DT_RUNPATH n'existe pas. L'utilisation de DT_RPATH est déconseillée. .IP \fBo\fP En utilisant la variable d'environnement \fBLD_LIBRARY_PATH\fP, sauf si l’exécutable est utilisé dans le mode d’exécution sécurisée (consulter ci\-dessous), auquel cas elle est ignorée. .IP \fBo\fP En utilisant les répertoires indiqués dans l’attribut de la section dynamique DT_RUNPATH du binaire s’il est présent. De tels répertoires sont recherchés uniquement pour trouver ces objets requis par les entrées DT_NEEDED (dépendances directes) et ne s’appliquent pas aux enfants des objets qui doivent eux\-mêmes avoir leurs propres entrées DT_RUNPATH. Cela est différent de DT_RPATH, qui est appliqué aux recherches pour tous les enfants dans l’arbre de dépendances. .IP \fBo\fP Depuis le fichier cache \fI/etc/ld.so.cache\fP, qui contient une liste compilée des objets partagés candidats précédemment trouvés dans le chemin élargi de bibliothèque. Si toutefois le fichier binaire a été lié avec l'option \fB\-z nodeflib\fP de l'éditeur de liens, les objets partagés dans les chemins par défaut sont ignorés. Les objets partagés installés dans les répertoires de capacité matérielle (consulter ci\-dessous) sont préférés aux autres objets partagés. .IP \fBo\fP Dans le chemin par défaut \fI/lib\fP, puis \fI/usr/lib\fP (Sur certaines architectures 64\ bits, les chemins par défaut pour les objets partagés 64\ bits sont \fI/lib64\fP et puis \fI/usr/lib64\fP.) Si le binaire a été lié avec l'option \fB\-z\ nodeflib\fP de l'éditeur de liens, cette étape est sautée. .SS "Développement des mots\-clés rpath" .PP L’éditeur de liens dynamiques interprète certaines chaînes de mots\-clés dans une spécification rpath (DT_RPATH ou DT_RUNPATH). Ces chaines sont substituées ainsi\ : .TP \fI$ORIGIN\fP (ou de manière équivalente \fI${ORIGIN}\fP) Cela développe le répertoire contenant le programme ou l’objet partagé. Ainsi, une application située dans \fIun_répertoire/app\fP peut être compilée avec .IP gcc \-Wl,\-rpath,\(aq$ORIGIN/../lib\(aq .IP de sorte qu'elle trouvera un objet partagé associé dans \fIun_répertoire/lib\fP où que soit situé \fIun_répertoire\fP dans la hiérarchie de répertoires. Cela facilite la création d'applications «\ prêtes à l'emploi\ » qui n'ont pas besoin d'être installées dans un répertoire particulier mais peuvent au contraire être installées dans n'importe quel répertoire et toujours trouver leurs propres objets partagés. .TP \fI$LIB\fP (ou de manière équivalente \fI${LIB}\fP) Cela se développe en \fIlib\fP ou \fIlib64\fP en fonction de l'architecture (par exemple \fIlib64\fP pour x86\-64 ou \fIlib\fP pour x86\-32). .TP \fI$PLATFORM\fP (ou de manière équivalente \fI${PLATFORM}\fP) .\" To get an idea of the places that $PLATFORM would match, .\" look at the output of the following: .\" .\" mkdir /tmp/d .\" LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d .\" .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN; .\" Don't do this!! Cela se développe en une chaîne correspondant au type de processeur du système hôte (par exemple «\ x86_64\ »). Pour certaines architectures, le noyau Linux ne fournit pas de chaîne de plateforme à l'éditeur de liens dynamiques. La valeur de cette chaîne est issue de la valeur \fBAT_PLATFORM\fP du vecteur auxiliaire (consulter \fBgetauxval\fP(3)). .SH OPTIONS .TP \fB\-\-audit\fP \fIliste\fP Utiliser les objets nommés dans \fIliste\fP comme vérificateurs. Les objets sont délimités par des deux\-points. .TP \fB\-\-inhibit\-cache\fP Ne pas utiliser \fI/etc/ld.so.cache\fP. .TP \fB\-\-library\-path\fP \fIchemin\fP Utiliser \fIchemin\fP au lieu du réglage de la variable d’environnement \fBLD_LIBRARY_PATH\fP (consulter ci\-dessous). Les noms \fIORIGIN\fP, \fILIB\fP et \fIPLATFORM\fP sont interprétés comme pour la variable d’environnement \fBLD_LIBRARY_PATH\fP. .TP \fB\-\-inhibit\-rpath\fP \fIliste\fP Ignorer les informations de RPATH et RUNPATH dans les noms d’objet dans \fIliste\fP. Cette option est ignorée dans le mode d’exécution sécurisée (voir ci\-dessous). Les objets dans \fIliste\fP sont séparés par des deux\-points ou des espaces. .TP \fB\-\-list\fP Lister les dépendances et la manière de les résoudre. .TP \fB\-\-preload\fP \fIliste\fP (depuis la glibc 2.30) Précharger les objets indiqués dans \fIliste\fP. Ces objets sont délimités par des deux\-points ou des espaces. Les objets sont préchargés comme c’est expliqué dans la description de la variable d’environnement \fBLD_PRELOAD\fP ci\-dessous. .IP Au contraire avec \fBLD_PRELOAD\fP, l’option \fB\-\-preload\fP fournit une façon de réaliser le préchargement pour un exécutable unique sans affecter le préchargement réalisé par un processus enfant qui exécute un nouveau programme. .TP \fB\-\-verify\fP Vérifier que le programme est lié dynamiquement et que l'éditeur de liens peut le traiter. .SH ENVIRONNEMENT .\" Diverses variables d’environnement influencent les opérations de l’éditeur de liens dynamiques. .SS "Mode d’exécution sécurisée" Pour des raisons de sécurité, si l’éditeur de liens dynamiques détermine qu’un binaire devrait être exécuté dans un mode d’exécution sécurisée, les effets de quelques variables d’environnement sont annulés ou modifiés, et en outre ces variables d’environnement sont enlevées de l’environnement de telle façon que le programme ne puisse même pas voir les définitions. Certaines de ces variables d’environnement affectent les opérations de l’éditeur de liens dynamiques lui\-même et sont décrites ci\-dessous. Les autres variables d’environnement traitées de cette manière incluent \fBGCONV_PATH\fP, \fBGETCONF_DIR\fP, \fBHOSTALIASES\fP, \fBLOCALDOMAIN\fP, \fBLOCPATH\fP, \fBMALLOC_TRACE\fP, \fBNIS_PATH\fP, \fBNLSPATH\fP, \fBRESOLV_HOST_CONF\fP, \fBRES_OPTIONS\fP, \fBTMPDIR\fP et \fBTZDIR\fP. .PP Un binaire est exécuté dans le mode d’exécution sécurisée si l’entrée \fBAT_SECURE\fP dans le vecteur auxiliaire (consulter \fBgetauxval\fP(3)) à une valeur différente de zéro. Cette entrée peut avoir une valeur différente de zéro pour différentes raisons, dont\ : .IP * 3 Les ID utilisateur réels et effectifs du processus diffèrent ou les ID de groupe réels et effectifs diffèrent. Cela se produit classiquement lors de l’exécution d’un programme set\-user\-ID ou set\-group\-ID\ ; .IP * Un processus avec un ID utilisateur non superutilisateur a exécuté un binaire qui conférait des capacités au processus\ ; .IP * .\" Une valeur différente de zéro pouvait avoir été réglée par un module de sécurité de Linux. .SS "Variables d'environnement" Parmi les variables d'environnement importantes, on trouve\ : .TP \fBLD_ASSUME_KERNEL\fP (depuis la glibc 2.2.3) Tout objet partagé peut informer l'éditeur de liens dynamiques de la version minimale requise de l'ABI du noyau. (Cette exigence est enregistrée dans une section de note ELF, qui peut être lue avec \fIreadelf\ \-n\fP sous le nom \fBNT_GNU_ABI_TAG\fP.) Lors de l'exécution, l'éditeur de liens dynamiques détermine la version d'ABI du noyau exécutée et rejettera le chargement de tout objet partagé qui spécifie une version minimale d'ABI supérieure. .IP \fBLD_ASSUME_KERNEL\fP peut être utilisé afin que l'éditeur de liens dynamiques considère qu'il est exécuté sur un système disposant d'une version différente de l'ABI du noyau. Par exemple, la commande suivante permet de considérer la version\ 2.2.5 du noyau Linux lors du chargement des objets partagés utilisés par \fImonprogamme\fP: .IP .in +4n .EX $ \fBLD_ASSUME_KERNEL=2.2.5 ./monprogamme\fP .EE .in .IP Lorsque plusieurs versions d’un même objet partagé (dans des répertoires différents du chemin de recherche) spécifient des versions minimales d'ABI du noyau différentes, \fBLD_ASSUME_KERNEL\fP permet de sélectionner la version de l’objet à utiliser (ce qui dépend de l'ordre de recherche des répertoires). .IP Historiquement, \fBLD_ASSUME_KERNEL\fP était surtout utilisée pour sélectionner l'ancienne mise en œuvre des threads POSIX par LinuxThreads sur les systèmes fournissant LinuxThreads et NPTL (ce dernier étant généralement activé par défaut)\ ; consulter \fBpthreads\fP(7). .TP \fBLD_BIND_NOW\fP (depuis la glibc 2.1.1) Si la chaîne est non vide, l'éditeur de liens 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. Cela est utile dans un débogueur. .TP \fBLD_LIBRARY_PATH\fP Une liste de répertoires de recherche pour les bibliothèques ELF au moment de l'exécution. Les éléments de la liste sont séparés par des deux\-points ou des points\-virgules et aussi il n’existe aucune protection des séparateurs. .IP Cette variable est ignorée dans le mode d’exécution sécurisée. .IP À l’intérieur des noms de chemin indiqués dans \fBLD_LIBRARY_PATH\fP, l’éditeur de liens dynamiques développe les mots\-clés \fI$ORIGIN\fP, \fI$LIB\fP et \fI$PLATFORM\fP (ou les versions utilisant des accolades autour des noms) comme cela est décrit ci\-dessus dans \fIDéveloppement des mots\-clés rpath\fP. Par conséquent, par exemple, ce qui suit provoquera la recherche d’une bibliothèque dans les sous\-répertoires \fIlib\fP ou \fIlib64\fP en dessous du répertoire contenant le programme à exécuter\ : .IP .in +4n .EX $ \fBLD_LIBRARY_PATH='$ORIGIN/$LIB' prog\fP .EE .in .IP Remarquez l’utilisation de guillemets simples empêchant le développement de \fI$ORIGIN\fP et \fI$LIB\fP en tant que variables d’interpréteur. .TP \fBLD_PRELOAD\fP Une liste complémentaire, spécifiée par l’utilisateur, d’objets partagés ELF à charger avant tous les autres objets. Cela permet de surcharger sélectivement les fonctions dans les autres objets partagés. .IP Les éléments de la liste peuvent être séparés par des deux\-points ou des espaces et il n’existe aussi aucune protection des séparateurs. Les objets sont recherchés en utilisant les règles précisées dans DESCRIPTION et sont ajoutés dans le mappage de liens dans l’ordre de droite à gauche indiqué dans la liste. .IP Dans le mode d’exécution sécurisée, le préchargement de noms de chemin contenant des barres obliques est ignoré. Par ailleurs, les objets partagés sont préchargés seulement à partir des répertoires de recherche standard et seulement si le bit de mode set\-user\-ID est activé (ce qui n’est pas habituel). .IP .\" Tested with the following: .\" .\" LD_PRELOAD='$LIB/libmod.so' LD_LIBRARY_PATH=. ./prog .\" .\" which will preload the libmod.so in 'lib' or 'lib64', using it .\" in preference to the version in '.'. À l’intérieur des noms indiqués dans \fBLD_PRELOAD\fP, l’éditeur de liens dynamiques développe les mots\-clés \fI$ORIGIN\fP, \fI$LIB\fP et \fI$PLATFORM\fP (ou les versions utilisant des accolades autour des noms) comme cela est décrit ci\-dessus dans \fIDéveloppement des mots\-clés rpath\fP. (Voir aussi le point sur la mise entre parenthèses dans la description de \fBLD_LIBRARY_PATH\fP). .IP Il existe diverses méthodes pour préciser les bibliothèques à précharger, et celles\-ci sont gérées dans l’ordre suivant\ : .RS .IP (1) 4 La variable d’environnement \fBLD_PRELOAD\fP. .IP (2) L’option \fB\-\-preload\fP de ligne de commande lors de l’invocation directe de l’éditeur de liens dynamiques. .IP (3) Le fichier \fI/etc/ld.so.preload\fP (décrit ci\-dessous). .RE .TP \fBLD_TRACE_LOADED_OBJECTS\fP Si la chaîne est non vide, le programme liste ses dépendances dynamiques comme s'il était lancé par \fBldd\fP(1), au lieu du lancement normal. .PP Il existe de nombreuses autres variables plus ou moins obscures, certaines obsolètes ou réservées pour un usage interne. .TP \fBLD_AUDIT\fP (depuis la glibc 2.4) Une liste d'objets partagés ELF spécifiés par l'utilisateur à charger avant tous les autres à l'intérieur d'un espace distinct de nommage de l'éditeur de liens (c'est\-à\-dire qu'il n'y aura pas d'interférence avec les liaisons sur les symboles normaux qui auront lieu pendant le processus). Ces objets peuvent être utilisés pour contrôler les opérations effectuées par l'éditeur de liens dynamiques. Les éléments de la liste sont séparés par des deux\-points et il n’existe aucune protection des séparateurs. .IP \fBLD_AUDIT\fP est ignorée dans le mode d’exécution sécurisée. .IP L'éditeur de liens dynamiques notifiera les objets partagés de contrôle aux endroits précis de contrôle (par exemple au chargement d'un nouvel objet partagé, à la résolution d'un symbole, à l'appel d'un symbole depuis un autre objet partagé \(em\ en appelant la fonction adéquate dans l’objet partagé de contrôle. Pour des informations plus détaillées, consultez \fBrtld\-audit\fP(7). L'interface de contrôle est largement compatible avec celle disponible sur Solaris, décrite dans le \fILinker and Libraries Guide\fP, au chapitre \fIRuntime Linker Auditing Interface\fP. .IP À l’intérieur des noms indiqués dans \fBLD_AUDIT\fP, l’éditeur de liens dynamiques développe les mots\-clés \fI$ORIGIN\fP, \fI$LIB\fP et \fI$PLATFORM\fP (ou les versions utilisant des accolades autour des noms) comme cela est décrit ci\-dessus dans \fIDéveloppement des mots\-clés rpath\fP. (Voir aussi le point sur la mise entre parenthèses dans la description de \fBLD_LIBRARY_PATH\fP.) .IP .\" commit 8e9f92e9d5d7737afdacf79b76d98c4c42980508 Depuis la glibc\ 2.13, dans le mode d’exécution sécurisée, les noms dans la liste de contrôle contenant des barres obliques sont ignorés et seulement les objets partagés des répertoires de recherche standard ayant le bit de mode set\-user\-ID activé sont chargés. .TP \fBLD_BIND_NOT\fP (depuis la glibc 2.1.95) Si cette variable d’environnement est réglée à une valeur non vide, ne pas mettre à jour les tables GOT (global offset table) et PLT (procedure linkage table) après la résolution d’un symbole de fonction. En combinant l’utilisation de cette variable avec \fBLD_DEBUG\fP (avec les catégories \fIbindings\fP et \fIsymbols\fP), les liaisons de fonctions d’exécution peuvent être observées. .TP \fBLD_DEBUG\fP (depuis la glibc 2.1) Produire une information détaillée de débogage dans l’éditeur de liens dynamiques. Le contenu de cette variable est composée d’une ou de plusieurs des catégories suivantes, séparées par des deux\-points, des virgules ou (si la valeur est entre guillemets) par des espaces\ : .RS .TP 12 \fIhelp\fP Indiquer \fIhelp\fP dans la valeur de cette variable fait que le programme n’est pas exécuté et qu’un message est affiché sur les catégories pouvant être indiquées dans cette variable d’environnement. .TP \fIall\fP Afficher toutes les informations de débogage (exceptées \fIstatistics\fP et \fIunused\fP\ ; consulter ci\-dessous). .TP \fIbindings\fP Afficher des informations sur la définition à laquelle chaque symbole est lié. .TP \fIfiles\fP Afficher l’avancement pour le fichier d’entrée. .TP \fIlibs\fP Afficher les chemins de recherche de bibliothèque. .TP \fIreloc\fP Afficher le traitement de relocalisation .TP \fIscopes\fP Afficher des informations de portée. .TP \fIstatistics\fP Afficher des statistiques de relocalisation. .TP \fIsymbols\fP Afficher les chemins de recherche pour chaque consultation de symbole. .TP \fIunused\fP Identifier les objets partagés dynamiques non utilisés. .TP \fIversions\fP Afficher les dépendances de version. .RE .IP Depuis la glibc\ 2.3.4, \fBLD_DEBUG\fP est ignorée dans le mode d’exécution sécurisée à moins que le fichier \fI/etc/suid\-debug\fP existe (le contenu du fichier est non pertinent). .TP \fBLD_DEBUG_OUTPUT\fP (depuis la glibc 2.1) Par défaut, la sortie de \fBLD_DEBUG\fP est écrite sur la sortie d’erreur standard. Si \fBLD_DEBUG_OUTPUT\fP est définie, alors la sortie est écrite selon le chemin défini dans sa valeur avec le suffixe «\ .\ » (point) suivi par l’ID du processus ajouté au chemin. .IP \fBLD_DEBUG_OUTPUT\fP est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_DYNAMIC_WEAK\fP (depuis la glibc 2.1.91) Par défaut, lors de la recherche de bibliothèques partagées pour résoudre une référence de symbole, l’éditeur de liens dynamiques résoudra la première définition qu’il trouvera. .IP Les anciennes versions de la glibc (avant la version\ 2.2) procuraient un comportement différent. Si l’éditeur de liens trouvait un symbole faible, il se souvenait de ce symbole et continuait à chercher parmi les bibliothèques partagées restantes. S’il trouvait une définition forte du même symbole, il utilisait plutôt cette définition. (Si aucune n’était trouvée, alors l’éditeur de liens dynamiques utilisait le symbole faible précédemment trouvé.) .IP .\" More precisely 2.1.92 .\" See weak handling .\" https://www.sourceware.org/ml/libc-hacker/2000-06/msg00029.html .\" To: GNU libc hacker .\" Subject: weak handling .\" From: Ulrich Drepper .\" Date: 07 Jun 2000 20:08:12 -0700 .\" Reply-To: drepper at cygnus dot com (Ulrich Drepper) L’ancien comportement de la glibc n’était pas normalisé. (La pratique normalisée consiste à ce que la distinction entre les symboles faibles et forts intervient seulement au moment de la liaison statique.) Dans la glibc\ 2.2, l’éditeur de liens dynamiques a été modifié pour fournir le comportement actuel (qui était le comportement fourni par la plupart des autres implémentations à ce moment là). .IP Définir la variable d’environnement \fBLD_DYNAMIC_WEAK\fP (à n’importe quelle valeur) conduit à l’ancien comportement de la glibc non normalisé, selon lequel un symbole faible dans une bibliothèque partagée peut être écrasé par un symbole fort trouvé ultérieurement dans une autre bibliothèque partagée. Remarquez que même si cette variable est définie, un symbole fort dans une bibliothèque partagée n’écrasera pas une définition faible du même symbole dans le programme principal.) .IP Depuis la glibc\ 2.3.4, \fBLD_DYNAMIC_WEAK\fP est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_HWCAP_MASK\fP (depuis la glibc 2.1) Masque des capacités matérielles. .TP \fBLD_ORIGIN_PATH\fP (depuis la glibc 2.1) .\" Used only if $ORIGIN can't be determined by normal means .\" (from the origin path saved at load time, or from /proc/self/exe)? Chemin où le binaire est trouvé. .IP Depuis la glibc\ 2.4, \fBLD_ORIGIN_PATH\fP est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_POINTER_GUARD\fP (dans la glibc depuis 2.4 jusqu’à 2.22) .\" commit a014cecd82b71b70a6a843e250e06b541ad524f7 Mettre à zéro pour supprimer la protection sur les pointeurs. Toute autre valeur active cette protection, ce qui est le comportement par défaut. La protection sur les pointeurs est un mécanisme de sécurité où certains pointeurs vers du code stocké dans la zone mémoire accessible en écriture (comme les adresses de retour conservées par \fBsetjmp\fP(3), ou des pointeurs de fonctions utilisés par diverses fonctions internes de glibc) sont modifiés semi\-aléatoirement pour rendre plus difficile une utilisation malveillante par un intrus, qui utiliserait par exemple un dépassement de tampon ou de la pile. Depuis la glibc\ 2.23, \fBLD_POINTER_GUARD\fP ne peut plus être utilisée pour désactiver cette protection, qui est toujours activée. .TP \fBLD_PROFILE\fP (depuis la glibc 2.1) Le nom d'un (seul) objet partagé à profiler, spécifié par un chemin ou par un \fIsoname\fP. Le résultat du profilage est écrit dans un fichier dont le nom est «\ \fI$LD_PROFILE_OUTPUT\fP/\fI$LD_PROFILE\fP.profile\ ». .IP Depuis la glibc\ 2.2.5, \fBLD_PROFILE\fP est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_PROFILE_OUTPUT\fP (depuis la glibc 2.1) Répertoire où sera écrit le résultat de \fBLD_PROFILE\fP. Si cette variable n'est pas définie, ou si elle est définie à une valeur vide, le défaut est \fI/var/tmp\fP. .IP \fBLD_PROFILE_OUTPUT\fP est ignorée dans le mode d’exécution sécurisée. À la place \fI/var/profile\fP est toujours utilisé. (Ce détail est pertinent seulement depuis la glibc\ 2.2.5, puisque dans les versions postérieures , \fBLD_PROFILE\fP est aussi ignorée dans le mode d’exécution sécurisée.) .TP \fBLD_SHOW_AUXV\fP (depuis la glibc 2.1) Si cette variable d’environnement est définie (à n’importe quelle valeur), afficher le tableau auxiliaire transmis à partir du noyau (consulter aussi \fBgetauxval\fP(3)). .IP Depuis la glibc\ 2.3.4, \fBLD_SHOW_AUXV\fP est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_TRACE_PRELINKING\fP (depuis la glibc 2.4) .\" (This is what seems to happen, from experimenting) Si cette variable d’environnement est définie, tracer la pré\-liaison de l’objet dont le nom est assigné à cette variable d’environnement. (Utiliser \fBldd\fP(1) pour obtenir une liste des objets pouvant être tracés.) Si le nom d’objet n’est pas reconnu, alors l’activité de pré\-liaison est tracée. .TP \fBLD_USE_LOAD_BIAS\fP (depuis la glibc 2.3.3) .\" http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html .\" Subject: [PATCH] Support LD_USE_LOAD_BIAS .\" Jakub Jelinek Par défaut, c'est\-à\-dire si cette variable n'est pas définie, les exécutables et les objets partagés pré\-liés (\fIprelink\fP) respectent les adresses de base des objets partagés dont ils dépendent, alors que les exécutables PIE (\fIposition\-independent executables\fP) non pré\-liés et les autres objets partagés ne les respectent pas. Si \fBLD_USE_LOAD_BIAS\fP est définie à la valeur\ \fB1\fP, les exécutables et les PIE vont respecter les adresses de base. Si \fBLD_USE_LOAD_BIAS\fP est définie à\ \fB0\fP, ni les exécutables, ni les PIE ne respecteront les adresses de base. .IP Depuis la glibc\ 2.3.3, cette variable est ignorée dans le mode d’exécution sécurisée. .TP \fBLD_VERBOSE\fP (depuis la glibc 2.1) S'il s'agit d'une chaîne non vide, afficher les informations sur la version des symboles du programme si la variable d'environnement \fBLD_TRACE_LOADED_OBJECTS\fP a été définie. .TP \fBLD_WARN\fP (depuis la glibc 2.1.3) Si la chaîne est non vide, avertir si un symbole n'est pas résolu. .TP \fBLD_PREFER_MAP_32BIT_EXEC\fP (x86\-64 seulement\ ; depuis la glibc 2.23) Selon le guide d’optimisation logicielle de Silvermont d’Intel, pour les applications 64\ bits, les performances de prédiction de branchement peuvent être détériorées quand la cible d’un branchement est située à plus de 4\ GB du branchement. Si cette variable d’environnement est définie (à n’importe quelle valeur), l’éditeur de liens dynamiques essaie de mapper les pages d’exécutables en utilisant l’indicateur \fBMAP_32BIT\fP de \fBmmap\fP(2) et de revenir à un mappage sans cet indicateur si cet essai échoue. NB\ : MAP_32BIT mappera avec les 2\ GB bas (pas 4\ GB) de l’espace d’adressage. .IP Parce que \fBMAP_32BIT\fP réduit l’éventail d’adressage pour la distribution aléatoire de l’espace d’adressage (ASLR), \fBLD_PREFER_MAP_32BIT_EXEC\fP est toujours désactivée dans le mode d’exécution sécurisée. .SH FICHIERS .PD 0 .TP \fI/lib/ld.so\fP Le chargeur et éditeur de liens dynamiques a.out. .TP \fI/lib/ld\-linux.so.\fP{\fI1\fP,\fI2\fP} Le chargeur et éditeur de liens dynamiques ELF. .TP \fI/etc/ld.so.cache\fP Fichier contenant la liste compilée des répertoires dans lesquels rechercher les objets partagés et une liste d’objets partagés candidats. Consulter \fBldconfig\fP(8). .TP \fI/etc/ld.so.preload\fP Fichier contenant une liste d’objets partagés ELF, séparés par des virgules, à charger avant le programme. Consultez le point à propos de \fBLD_PRELOAD\fP ci\-dessus. Si \fBLD_PRELOAD\fP et \fI/etc/ld.so.preload\fP sont employés, la bibliothèque indiquée par \fBLD_PRELOAD\fP est préchargée en premier. \fI/etc/ld.so.preload\fP a un effet sur tout le système, faisant que les bibliothèques indiquées sont préchargées pour tous les programmes exécutés sur le système. (Cela est habituellement indésirable et employé uniquement comme remède d’urgence, par exemple, comme contournement temporaire d’un problème de mauvaise configuration de bibliothèque.) .TP \fIlib*.so*\fP Objets partagés. .PD .SH NOTES .SS "Capacités matérielles" .\" Presumably, this info comes from sysdeps/i386/dl-procinfo.c and .\" similar files Certains objets partagés sont compilés en utilisant des instructions spécifiques au matériel qui n'existent pas sur tous les processeurs. Ces objets devraient être installés dans des répertoires dont les noms définissent les capacités matérielles nécessaires, comme \fI/usr/lib/sse2/\fP. L'éditeur de liens dynamiques compare ces répertoires au matériel de la machine et sélectionne la version la mieux adaptée pour un objet partagé donné. Les répertoires de capacité matérielle peuvent être imbriqués pour combiner les caractéristiques du microprocesseur. La liste des noms de capacité matérielle pris en charge dépend du microprocesseur. Les noms suivants sont reconnus pour le moment. .TP \fBAlpha\fP ev4, ev5, ev56, ev6, ev67 .TP \fBMIPS\fP loongson2e, loongson2f, octeon, octeon2 .TP \fBPowerPC\fP 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 .TP \fBSPARC\fP flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2 .TP \fBs390\fP dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, z990, z9\-109, z10, zarch .TP \fBx86 (32\ bits seulement)\fP 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 .SH "VOIR AUSSI" .\" .SH AUTHORS .\" ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus .\" Torvalds, Lars Wirzenius and Mitch D'Souza .\" ld\-linux.so: Roland McGrath, Ulrich Drepper and others. .\" .\" In the above, (libc5) stands for David Engel's ld.so/ld\-linux.so. \fBld\fP(1), \fBldd\fP(1), \fBpldd\fP(1), \fBsprof\fP(1), \fBdlopen\fP(3), \fBgetauxval\fP(3), \fBelf\fP(5), \fBcapabilities\fP(7), \fBrtld\-audit\fP(7), \fBldconfig\fP(8), \fBsln\fP(8) .SH COLOPHON Cette page fait partie de la publication\ 5.04 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Paul Guillonneau . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .