ld-linux vs readelf

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Dani
Linux 3.x
Linux 3.x
Messaggi: 1447
Iscritto il: mer apr 26, 2006 1:52
Desktop: gnome
Distribuzione: arch

ld-linux vs readelf

Messaggioda Dani » mar apr 15, 2008 16:10

Come mai su alcuni eseguibili i due programmi in oggetto danno risultati diversi ?
Ad esempio sul mio sistema i comandi "/lib/ld-2.5.so --list /usr/bin/mplayer" e "readelf -d /usr/bin/mplayer" danno risultati diversi, o meglio il primo comprende il secondo ma non viceversa.
In breve mi trovo davanti due possibili situazioni differenti (dipende dagli eseguibili esaminati):
- Nel primo caso ld e readelf mostrano le stesse identiche librerie necessarie, e fin qui ok.
- Nel secondo caso ld mostra le librerie che vede anche readelf, ma a queste ne aggiunge altre !
Dove le va a pescare queste librerie aggiuntive ? Chi le richiede ?

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom mag 15, 2005 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Re: ld-linux vs readelf

Messaggioda absinthe » mer apr 16, 2008 13:16

mmm... potresti postare un esempio? l'iunica cosa che so è che readelf è crossplatform ed interroga direttamente l'eseguibile, ld invece si basa sul linker quandi anche su ld.so.conf

M

Dani
Linux 3.x
Linux 3.x
Messaggi: 1447
Iscritto il: mer apr 26, 2006 1:52
Desktop: gnome
Distribuzione: arch

Re: ld-linux vs readelf

Messaggioda Dani » mer apr 16, 2008 14:16

Su mplayer,

readelf:

Codice: Seleziona tutto

bt ~ # readelf -d /usr/bin/mplayer | grep 'Shared' | awk '{print $5}' | sed s/\\[// | sed s/\\]//
libgtk-x11-2.0.so.0
libgdk-x11-2.0.so.0
libatk-1.0.so.0
libgdk_pixbuf-2.0.so.0
libm.so.6
libpangocairo-1.0.so.0
libpango-1.0.so.0
libcairo.so.2
libgobject-2.0.so.0
libgmodule-2.0.so.0
libdl.so.2
libglib-2.0.so.0
libmad.so.0
libtheora.so.0
libogg.so.0
libpng.so.3
libz.so.1
libjpeg.so.62
libasound.so.2
libpthread.so.0
libmp3lame.so.0
libncurses.so.5
libcdda_interface.so.0
libcdda_paranoia.so.0
libungif.so.4
libsmbclient.so.0
libfribidi.so.0
libfontconfig.so.1
libfreetype.so.6
libGL.so.1
libXv.so.1
libXxf86vm.so.1
libXinerama.so.1
libXext.so.6
libX11.so.6
libartsc.so.0
libgthread-2.0.so.0
librt.so.1
libc.so.6
bt ~ #     


ldd:

Codice: Seleziona tutto

bt ~ # /lib/ld-linux.so.2 --list /usr/bin/mplayer | awk '{print $1}'
linux-gate.so.1
libgtk-x11-2.0.so.0
libgdk-x11-2.0.so.0
libatk-1.0.so.0
libgdk_pixbuf-2.0.so.0
libm.so.6
libpangocairo-1.0.so.0
libpango-1.0.so.0
libcairo.so.2
libgobject-2.0.so.0
libgmodule-2.0.so.0
libdl.so.2
libglib-2.0.so.0
libmad.so.0
libtheora.so.0
libogg.so.0
libpng.so.3
libz.so.1
libjpeg.so.62
libasound.so.2
libpthread.so.0
libmp3lame.so.0
libncurses.so.5
libcdda_interface.so.0
libcdda_paranoia.so.0
libungif.so.4
libsmbclient.so.0
libfribidi.so.0
libfontconfig.so.1
libfreetype.so.6
libGL.so.1
libXv.so.1
libXxf86vm.so.1
libXinerama.so.1
libXext.so.6
libX11.so.6
libartsc.so.0
libgthread-2.0.so.0
librt.so.1
libc.so.6
libXfixes.so.3
libXrender.so.1
libXi.so.6
libXrandr.so.2
libXcursor.so.1
/lib/ld-linux.so.2
libpangoft2-1.0.so.0
libpng12.so.0
libcrypt.so.1
libresolv.so.2
libnsl.so.1
libldap-2.3.so.0
liblber-2.3.so.0
libexpat.so.1
libgcc_s.so.1
libXau.so.6
libxcb-xlib.so.0
libxcb.so.1
libsasl2.so.2
libssl.so.0
libcrypto.so.0
libXdmcp.so.6
bt ~ #       


Fino a libc.so sono entrambi "sincronizzati", dopo ldd trova altre librerie necessarie mentre readelf non le mostra affatto #-o


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti