• [^] # Re: Euh ... moi je ne vois que des avantages :-)

    Posté par (site web personnel) . En réponse au journal Fonctionnement du linker dynamic sous linux. Évalué à 3.

    Tiens, salut phh :-)

    >> Un binaire ne contient plus aucun nom lorsqu'il est exécuté.
    > Je sais pas trop:
    > Quand tu change de version de librairies les adresses changent
    > La seule chose à laquelle tu peux te référencer c'est alors le nom

    Oui, je suis allé un peu vite. J'étais dans le rush cette après-midi, mais mon rapport sur les brevets logiciels est imprimé. Ouf.

    Je voulais dire, un binaire ("strippé") après avoir été chargé par /lib/ld-linux.so.2 ne contient que des adresses mémoire, pas de symbole. Par contre, une fichier ELF contient la liste des symboles (chaînes de caractères donc) dont il a besoin pour chaque librairie :
    $ nm prog | grep U
    U fgets@@GLIBC_2.0
    U __libc_start_main@@GLIBC_2.0
    U printf@@GLIBC_2.0
    U puts@@GLIBC_2.0
    U sleep@@GLIBC_2.0


    Bon, apparement il n'y a de lien entre le nom du symbole et le nom de la librairie.

    >> Donc tu peux avoir plusieurs toto sans que ça pose de problème (je vais pas entrer dans les détails).
    > Ca dépend des cas...
    > En fait y a des librairies qui font exprès de prendre la place d'autres symboles (en vrac: libfaketime, chkinstall, euh bon le reste me vient plus enfin bref l'idée est la)

    Ok, autant pour moi. C'est vrai que j'avais déjà vu passer un librairie qui remplaçait les fonctions d'accès aux fichiers/répertoires pour mettre les fichiers ~/.* dans le répertoire ~/etc/*. Elle s'utilisait en préchargeant cette librairie à l'aide de LD_LIBRARY_PATH.

    --

    Les librairies dynamiques, y'a plein de chose à dire dessus :)

    @+ Haypo