Forum Programmation.autre Édition de liens : comment lister tous les lien ?

Posté par  .
Étiquettes :
0
8
avr.
2009
Bonjour,

je développe un programme en fortran (compilateur=gfortran) et je suis actuellement en train de le scinder en deux :
- un noyau (compilation statique) contenant lecture des données et traitement de celles-ci,
- une librairie dynamique pour assurer le post-traitement et l'écriture de fichiers.

Afin de vérifier que j'ai proprement réalisé cette séparation, j'aimerais maintenant afficher exhaustivement les liens existants entre le noyau et la librairie (en pratique, je veux m'assurer que le noyau ne va utiliser la librairie qu'au travers d'une seule routine).

ld fait sûrement ça, mais je n'ai alors pas compris comment l'utiliser !

Par avance merci de vos suggestions,
Cédric.

PS : je réalise l'édition des liens via gfortran, et non ld.
  • # ldd

    Posté par  . Évalué à 2.

    Tu peux utiliser 'ldd' pour visualiser une partie de ce que tu souhaites. Mais tu n'auras pas le nom des fonctions appelées. Uniquement le noms de dépendances.
  • # objdump

    Posté par  (site web personnel) . Évalué à 1.

    objdump avec l'option -T affiche les symboles dynamiques.
    • [^] # Re: objdump

      Posté par  . Évalué à 1.

      Merci de vos réponses, mais cela ne répond pas encore à ce que je recherche.

      'objdump', tout comme 'nm' si j'ai bien compris, va me donner la liste des symboles contenus dans ma librairie. Pour fixer les idées, ça me liste toutes les 'subroutines' fortran qui ont été intégrées à ma librairie.

      Ce que je souhaiterais avoir est plutôt une liste des 'call' fortran contenu dans mon noyau et qui pointent vers un symbole de la librarie (et j'ai pas envie de me lancer dans des 'grep' de sources !).

      Partant du constat qu'à l'édition de lien cette information doit bien être connue, je pense qu'on doit pouvoir retrouver ça avec un outil...

      Cédric.
      • [^] # Re: objdump

        Posté par  . Évalué à 2.

        Tu pourrais contourner ton problème en faisant en sorte de ne pas exporter tout tes symboles (bonne pratique à mon avis). Ton fichier objet ne contiendrait donc que les rares symboles nécessaires pour les appels depuis l'extérieur. Les divers outils te donneraient alors la preuve que tu n'as qu'un seul symbole exporté.
      • [^] # Re: objdump

        Posté par  (site web personnel) . Évalué à 1.

        objdump peut aussi être appliqué au programme appelant la bibliothèque et donnera la liste des symboles qu'il importe.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.