Sommaire Index Rechercher Liens A Propos
[LinuxFocus Image]
[Barre de Navigation]
  Nouveautés   Archives

Activer le Profilage sur Alpha

 
 
 
From hjstein@bfr.co.il Fri Dec 19 15:35:35 1997 
Date: 19 Nov 1997 11:55:52 +0200 
From: "Harvey J. Stein"  
To: Miguel A Sepulveda  
Cc: axp-list@redhat.com 
Subject: Re: Profilage avec Linux Alpha ? 
 
Miguel A Sepulveda  a écrit: 
 
> Salut à tous, 
>  
> J'essaye de profiler un de mes programmes sur ma plate-forme Alpha
> Noyau 2.0.30. 
>  
> J'ai compilé les sources avec -g2 -pg, puis lancé l'exécutable. Après
> avoir fini, cet exécutable est sensé généré un gmon.out, au lieu de
> cela, le programme se plante et vide un "core". Le programme est 
> correct car sans l'option -pg il fonctionne bien.
 
J'ai du faire quelques trucs avec Redhat 4.2 pour faire marcher le
profilage.
 
Il y deux patches qui ont été envoyés à cette liste et qui résolvent
le problème dans gcc. Le premier (rth-gcc-2.7.2-970921.diff.gz) répare
un problème associé aux piles de grandes dimensions. Le second
(gcc-alpha-profiling-patch-2.7.2.1-toon-971001) est supposé réglé
certains problèmes de profilage avec gcc, mais je ne suis pas convaincu
qu'il soit vraiment nécessaire.
 
En tous cas, les voici avec un fichier Spec RPM pour construire gcc.
Il vous faut gcc-2.7.2.1-2.src.rpm, décompactez le, remplacez le 
fichier dans in /usr/src/redhat/SPECS avec celui fournit ici, ajoutez
le patch aux répertoires SOURCES et recompilez gcc. Vous pouvez alors
installer gcc-2.7.2.1-2c.alpha.rpm. Je joins un fichier compacté avec
tar, gzip et uuencode (gcc-new-patches.tar.gz.uue) qui contient les
2 patches et le fichier spec.

Il vous faudra aussi patcher gprof. La même procédure s'applique, mais
cette fois à binutils-2.7.0.2-4.src.rpm.  Toutefois, le lot (package)
binutils comprend des fichiers qui entre en conflit avec des entêtes
de libc, le meilleur compromis, consiste donc à remplacer à la main
gprof après l'avoir reconstruit. Je joint aussi
binutils-new-patches.tar.gz.uue. 
 
Finalement, vous devrez patcher certaines bibliothèques. Je crois que
c'est le point le plus important. Le patch se trouve dans les archives
de la liste de diffusion:
 
   http://www.redhat.com/support/mailing-lists/archives/axp-list/1997-March/0464.html 
 
Pour des raisons pratiques, je joins aussi ici le patch 
(pg-fixes.tar.gz.uue), ainsi qu'un extrait du message ci-dessus de
David Mosberger-Tang (en fait, presque tout le message) qui explique
comment l'appliquer:
 
   Quelques un d'entre vous ont signalé des problèmes avec le profilage
   sous RH4.1. Voici un fichier uuencodé de trois fichiers objets
   corrigés. Le test MD5 donne:
 
   0854f6609580506aeea2595d7729e27b gmon.po 
   e2e3cdbace223a162efe90048e0ed661 ieee_get_fp_control.po 
   8340b52dc581956131e038d3946ba81b ieee_set_fp_control.po 
 
   Après avoir extrait ces fichiers, remplacez les dans libc_p.a. 
   par exemple:
 
   ar rv /usr/lib/libc_p.a gmon.po ieee_{s,g}et_fp_control.po 
 
   le profilage devrait alors de nouveau fonctionner. Remarquez que
   dans les binutils-2.7 gprof à un bogue qui créé parfois un SIGFPE.
   voir mes courriers précédents pour un patch qui corrige cela. 

   Finalement, il y a toujours un problème avec le mélange du
   profilage et de l'édition de lien dynamique. Par exemple, avec 
   l'édition de lien dynamique, l'ajout de -lm créera un fichier
   binaire qui produit une faute de segmentation. L'ajout de l'option
   -static devrait corriger ce problème pour l'instant (en attendant
   une vrai solution).
 
Bonne chance,
 
--  
Harvey J. Stein 
Berger Financial Research 
hjstein@bfr.co.il 

Les 3 patches uuencodés.
 

Traduit par John Perr

Ce site Web est maintenu par Miguel A Sepulveda.