From [email protected] Fri Dec 19 15:35:35 1997
Date: 19 Nov 1997 11:55:52 +0200
From: "Harvey J. Stein"
To: Miguel A Sepulveda
Cc: [email protected]
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
[email protected]
Les 3 patches uuencod�s.
|