Re: un bug ?

Page principale

Répondre à ce message
Auteur: guilde
Date:  
À: guilde
Sujet: Re: un bug ?

On 30-May-99 Edgar Bonet Orozco wrote:
> Salut !
>
> Je n'ai pas la solution à ton problème, mais je peux peut-être t'aider à
> la trouver toi même.
>
>> /usr/lib/libdl.a(dlsym.o): In function `doit.2':
>> dlsym.o(.text+0x22): undefined reference to `_dl_default_scope'
>
> D'après ce message d'erreur, _dl_default_scope est un symbole qui est
> utilisé par /usr/lib/libdl.a mais qui n'est défini nulle part. Dans mon
> système (RedHat 5.2), ce symbole est défini dans /lib/ld-linux.so.2, et
> tous les programmes sont liés par défaut à cette bibliothèque. Il
> faudrait que tu voies ce qu'il en est chez toi.
>
> Pour voir quelles sont les bibliothèques liées par défaut à tout
> programme, tape la commande
>       echo "main(){}" > a.c ; cc a.c ; ldd a.out
> et montre nous le résultat. Chez moi ça donne
>               libc.so.6 => /lib/libc.so.6 (0x40005000)
>               /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)


chez moi ça donne :
libc.so.6 => /lib/libc.so.6 (0x40018000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

> ce qui veut dire que tous les programmes que j'écris sont liés par
> défaut à /lib/libc.so.6 et à /lib/ld-linux.so.2, en plus des autres
> bibliothèques que je pourrai préciser avec les options -l.
>
> Ensuite, avec la commande nm, tu peux voir quels symboles sont utilisés
> et définis dans les bibliothèques :
>       $ nm /usr/lib/libdl.a | grep _dl_default_scope
>                U _dl_default_scope
>                U _dl_default_scope

J' ai la meme chose que toi.

>       $ nm /lib/libc.so.6 | grep _dl_default_scope
>                U _dl_default_scope


Par contre , je n' ai aucune réponse a cette commande.
>       $ nm /lib/ld-linux.so.2 | grep _dl_default_scope
>       0000a190 D _dl_default_scope


Celle ci non plus, rien de semblable.

> Ceci veut dire que le symbole en question est utilisé mais non défini
> (U = undefined) dans /usr/lib/libdl.a et /lib/libc.so.6. Il est défini
> comme donnée (D = initialized data) dans /lib/ld-linux.so.2. Pour
> comprendre ce qu'affiche nm, il faut voir info binutils : la page de man
> de nm est malheureusement très imcomplète.
>
> Fais ces petits test sur ton système et montre nous ce que ça donne.
> Peut-être que ça aidera à cerner le problème.
>

Bon maintenant , c' est quoi le bleme ? les librairies mal linkées ?
----------------------------------
E-Mail: shaddai@???
Date: 01-Jun-99
Time: 20:05:56

This message was sent by XFMail
----------------------------------