[gcc] masquage de bibliothèque

Résolu/Fermé
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 8 déc. 2011 à 12:15
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 8 déc. 2011 à 14:21
Bonjour,
voilà mon souci, j'essai de faire tourner gcc avec graphite afin de générer un parallelsation automatique d'un code. Pour cela j'ai fais une version locale de gcc.
ça ne fonctionne pas : la parallelisation n'est pas effective lors de l'exécution.
Je pense que c'est un problème de liaison dynamique, en effet, le lien se fait (ou devrait se faire) avec la bibliothèque gcc-local/lib64/libgomp.so, mais lorsque j'utilise ldd, il me dit que l'exécutable va chercher /usr/lib64/libgomp.so
Comment lui dire d'aller chercher la version locale lors de l'exécution ? (je n'ai pas les droits root)
Je précise que j'ai mis gcc-loval/lib64 dans la variable LD_LIBRARY_PATH

Merci de vos réponses.


3 réponses

Bonjour,

Tu as compilé avec le flag -Lgcc-local/lib64 ?

Essaie aussi de mettre un chemin absolu dans LD_LIBRARY_PATH.

Tu as aussi essayé avec LD_PRELOAD ?

Sinon pour les histoires de précédence etc, ça me semble une lecture intéressante :
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 déc. 2011 à 14:12
Bonjour,
Merci de ta réponse.
alors oui pour -Lgcc-local/lib64 et pour le chamin absolu.

LD_PRELOAD, je ne connais pas. Je viens de parcourir ton liens. C'est intéressant. Je vais tester ça.
merci.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 déc. 2011 à 14:21
LD_PRELOAD=gcc-local/lib64/libgomp.so
fonctionne très bien, ça va chercher la bibliothèque locale. Mais ça ne me résout pas mon problème de parallélisation. Je met en résolu vis à vis du titre et de ma demande principale (masquage)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 déc. 2011 à 12:22
hello
Je précise que j'ai mis gcc-loval/lib64 dans la variable LD_LIBRARY_PATH
en premier ?
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 déc. 2011 à 12:44
non, mais de toute façon, il n'y a pas /usr/lib64 dans la variable. J'avoue que je ne comprend pas très bien ces histoires de répertoires par défaut et de précédence.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
8 déc. 2011 à 12:24
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 déc. 2011 à 12:56
merci, mais les manipulations qui sont faites dans ton lien écrivent dans le fichier racine, et je ne suis pas root. :-(
Après réflexion, le problème doit être plus profond car lorsque j'utilise une directive de précompilateur, openMP lance bien le programme sur plusieurs processeurs. C'est vraiment la parallelisation automatique qui merde à un moment donner.
Je crois que je vais me tourner vers les forum GCC, car là c'est vraiment pointu.
0