Re: Probleme Dynamic Linker

Page principale

Répondre à ce message
Auteur: Francois-Xavier 'FiX' KOWALSKI
Date:  
À: Frederic Cazenave
CC: guilde
Sujet: Re: Probleme Dynamic Linker


Frederic Cazenave wrote:

>Bonjour,
>
>    J ai un executable qui tourne sur une veille
>machine sous redhat 5.1 noyau 2.0.35. Je cherche a faire
>tourner ce programme dont je n'ai pas les sources sur une
>machine sous redhat 7.X mais la il semble qu'un lien dynamique
>manque. Sous gdb j'obtient le message suivant :

>
>
>>run
>>
>>
>Starting program: /home/cazenave/frog.d/bin.d/./FrogServer
>/bin/bash: /home/cazenave/frog.d/bin.d/./FrogServer: No such file or
>directory
>


Commence par donner les sorties des commandes suivantes:

    *


file /home/cazenave/frog.d/bin.d/FrogServer

>ldd
>/bin/bash: /home/cazenave/frog.d/bin.d/./FrogServer: No such file or
>directory
>


A vue de nez, il te manque peut-etre les librairies de compatibilite ou
de vieilles libc. Pour eviter ce type de soucis, j'installe toujours sur
ma RH les packages de compatibilite binaires:

    * libc-5.3.12-31 (RH 2.0 -> RH 4.2)
    * compat-glibc-6.2-2.1.3.2 (RH 6.2 & 7.0)


Tiens-tiens: rien sur les RH 5.x...

>Program exited with code 01.
>warning: Unable to find dynamic linker breakpoint function.
>GDB will be unable to debug shared library initializers
>and track explicitly loaded dynamic code.
>You can't do that without a process to debug.
>
>Quelqu'un peut il me dire comment faire tourner ce code
>sur ma machine?
>


Probleme interressant... Je vais regarder ce que je trouve sur le sujet....

<http://www.ping.be/~pin19314/libc5.shtml
<http://www.ping.be/%7Epin19314/libc5.shtml>> Donne ceci:


      My ldd doesn't work


    Yes, the *ldd* that comes with glibc is a simple shell script that
    only handles glibc binaries, if you have libc5 or a.out it is
    useless. You need to either get the *ld.so* soruces, recompile them
    and get the *ldd* from there; or you can download a precompiled
    *ldd* from here <http://www.ping.be/%7Epin19314/ldd.gz>, uncompress
    it, make it executable, and copy it in */usr/bin/ldd* (don't forgot
    to reinstall it after each upgrade of glibc)
    Then you will have an *ldd* that will correctly report the right
    info for all Linux executables: glibc, libc5 and even a.out.


Essaie donc le ldd qui est fourni de maniere binaire (evidement pas en
tant que root...).

FiX

--
François-Xavier 'FiX' KOWALSKI