OVH Cloud OVH Cloud

ldd : no version information available

14 réponses
Avatar
Doug713705
Bonjour à toutes, tous,

Sur un système 64 bits (slackware-current à jour) qui dispose du
nécessaire pour faire fonctionner des applications 32 bits, j'essaye
de faire tourner une application 32 bits mais celle ci refuse de
fonctionner à cause d'n problème de dépendence sur lequel je m'arrache
les cheveux depuis plusieurs jours.

Si je fais un simple ldd sur l'application, j'ai ce message qui
apparait :

$ ldd application
./application: /usr/lib/libcurl.so.4: no version information available
(required by ./application)

Le même message apparaît que je tente un LD_PRELOAD ou que je positionne
un LD_LIBRARY_PATH sur le répertoire contenant les librairies 32 bits
(/usr/lib)

$ LD_PRELOAD=/usr/lib/libcurl.so.4.2.0 ldd application
ERROR: ld.so: object '/usr/lib/libcurl.so.4.2.0' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib/libcurl.so.4.2.0' from LD_PRELOAD cannot be preloaded: ignored.
./application: /usr/lib/libcurl.so.4.2.0: no version information available (required by ./application)

Les autres libraries 32 bits ne semblent pas poser de problèmes et sont
vues normalement par ldd.

ldconfig voit bien les deux versions de libcurl et semble faire
correctement la différence.

# ldconfig -p | grep curl
libcurl.so.4 (libc6,x86-64) => /usr/lib64/libcurl.so.4
libcurl.so.4 (libc6) => /usr/lib/libcurl.so.4
libcurl.so (libc6,x86-64) => /usr/lib64/libcurl.so
libcurl.so (libc6) => /usr/lib/libcurl.so

J'ai lu que ce message d'erreur était souvent du à une différence de
version entre la libraires attendue par le binaire et celle du système
(binaire > système) mais celame semble étrange.

Je n'ai pas le code source de cette application mais j'ai le developpeur
(qui ne comprend pas vraiement l'origine du problème) à portée d'IRC.

Si une bonne âme arrivait à m'orienter dans ma compréhension de ce bins,
elle en serait remerciée.

A votre bon coeur.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]

4 réponses

1 2
Avatar
Doug713705
Dans fr.comp.os.linux.configuration Nicolas George nous expliquait:

Là où ça devient drole c'est que je n'ai pas de section "version
definitions", ce qui semble correspondre au message d'erreur initial (no
version information available).



- La version debian/ubuntu est patchée au point que ça ne correspond en
rien à un autre système



Le symbol versionning est effectivement un patch Debian.

Sans, tu aurais fait tourner ton programme avec une libcurl compilée avec
des options incompatible (GnuTLS au lieu d'OpenSSL) et donc risqué des
segfaults imprévisibles.



Rhââ, et on peut se sortir de là avec élégance ou suis-je condamné à
récupérer une libcurl ubuntu et probablement toutes ses dépendences pour
faire un LD_PRELOAD salvateur ?

Dois-je signaler à l'auteur de l'application qu'il serait plus sage de
compiler sur une autre machine équipée d'un autre système que Debian
(l'appli en question n'est pas libre) ?

Ca me parait complètement fou, windows-like même (!) mais je garde
encore l'espoir de t'avoir mal compris.

Par ailleurs je ne comprends pas pourquoi ce problème ne survient que
pour libcurl alors que l'application requiert d'autres dépendences qui
sont parfaitement honorées.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
Avatar
Nicolas George
Doug713705 wrote in message <hn11v6$2qa4$:
Rhââ, et on peut se sortir de là avec élégance



Tu veux des segfaults aléatoires ?

Dois-je signaler à l'auteur de l'application qu'il serait plus sage de
compiler sur une autre machine équipée d'un autre système que Debian



S'il veut que ses clients aient des segfaults aléatoires.

(l'appli en question n'est pas libre) ?



Il se passera de mon aide.

Ca me parait complètement fou, windows-like même



Dis ça aux auteurs de cURL, puisque manifestement ils n'arrivent pas à
encapsuler la bibliothèque de cryptographie qu'ils utilisent de manière à
assurer une ABI stable.
Avatar
Luc.Habert.00__arjf
Doug713705 :

Ca me parait complètement fou, windows-like même (!)



Bah pour le coup, les incompatibilités binaires, c'est très linuxesque.
Windows est infiniment meilleur de ce point de vue.
Avatar
Doug713705
Dans fr.comp.os.linux.configuration Nicolas George nous expliquait:

Doug713705 wrote in message <hn11v6$2qa4$:
Rhââ, et on peut se sortir de là avec élégance



Tu veux des segfaults aléatoires ?



Bah... faut voir la fréquence de l'aléa :-)

Dois-je signaler à l'auteur de l'application qu'il serait plus sage de
compiler sur une autre machine équipée d'un autre système que Debian



S'il veut que ses clients aient des segfaults aléatoires.



Autant je comprend que Debian ait appliqué un patch autant je suis
étonné que les autres "grandes" distributions ne l'aient pas fait (à
moins que ca soit le cas).


(l'appli en question n'est pas libre) ?



Il se passera de mon aide.



L'appli, qui tourne sur MacOSX, Windows et Linux, a au moins le mérite
d'être gratuite et de bonne qualité et je fais du lobbying pour que le
code finisse par être libéré.

Petit à petit l'oiseau fait son nid ;-)

Ca me parait complètement fou, windows-like même



Dis ça aux auteurs de cURL, puisque manifestement ils n'arrivent pas à
encapsuler la bibliothèque de cryptographie qu'ils utilisent de manière à
assurer une ABI stable.



Là ça dépasse de loin mes compétences, il faudrait que j'aies des
arguments et des preuves, un discours cohérent sur le sujet, choses que
je suis incapable de produire.

Bref, pour l'heure le baisé c'est moi :-(

Le dev devrait me fournir une version compilée sur une CentOS pour test.
Qui vivra verra.

Merci beaucoup pour ton aide.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
1 2