tag:linuxfr.org,2005:/users/grollumLinuxFr.org : les contenus de grollum2005-06-12T19:52:02+02:00/favicon.pngtag:linuxfr.org,2005:Diary/184882005-06-12T19:52:02+02:002005-06-12T19:52:02+02:00Fonctionnement du linker dynamic sous linuxcher journal, <br />
<br />
je me pose quelques questions sur le fonctionnement du linker dynamique sous linux.<br />
<br />
Déja je voudrais etre sur de bien comprendre le principe. Alors je repete un peu ce que j'ai deja dit :<br />
<br />
De ce que j'ai compris/experimenté :<br />
<br />
Cas 1:<br />
Soit un .so contenant une fonction toto() qui appelle tata()<br />
Un executable charge ce .so. A ce moment la le systeme fait sa tambouille au niveau des liens et s'apercoit qu'il ne connait pas tata => relocation error<br />
<br />
Question 1 : je vois en gros l'interet du link dynamique (vraiment, de loin et en gros), mais les defauts me semble tellement nombreux qu'en fait, non, je vois pas. Les defauts sont notamment qu'on a aucune verif au moment de la compilation/link de la presence/absence des symboles, et que donc faut faire des tests intensif pour etre sur que sur tous les "codepath" de l'apli qu'il n'y'ait pas de relocation error<br />
<br />
Cas 2:<br />
Soit un so avec une fonction toto, tata, toto appelant tata<br />
Soit un exe avec AUSSI une fonction tata, exe chargeant le .so precedent<br />
<br />
au chargement du .so, le systeme va voir qu'il connait deja un tata (cui de l'exe) et va donc utiliser ce symbole plutot que cui du so. Donc, notre so, au lieu d'appeler le tata qu'il contient va appeler celui de l'exe.<br />
<br />
Question 2: bon la je pense que faire la liste des defauts est trop longue (et aussi evidente), donc meme question : pourquoi pareil tambouille ? Y'a un truc que j'ai pas pigé ?<div><a href="https://linuxfr.org/users/grollum/journaux/fonctionnement-du-linker-dynamic-sous-linux.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/45037/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/grollum/journaux/fonctionnement-du-linker-dynamic-sous-linux#comments">ouvrir dans le navigateur</a>
</p>
grollumhttps://linuxfr.org/nodes/45037/comments.atom