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: Profiling under Linux Alpha ?
Miguel A Sepulveda escribe:
> Hola a todos.
>
> Estoy tratando de perfilar un programa hecho por mi en un Alpha
> con el kernel 2.0.30.
>
> Compilo los fuentes con -g2 -pg, y entonces ejecuto el programa.
> Cuando la ejecuci�n finaliza, se supone que debe generar un fichero
> gmon.out. Sin embargo, el programa peta y genera un fichero coredump.
> El programa es correcto, porque sin la opci�n -pg funciona bien.
Yo tuve que hacer unas cuantas cosas con Redhat 4.2 para que funionara
el "profiling".
Existen dos parches que se han enviado a esta lista que arreglan problemas
del gcc. El primero (rth-gcc-2.7.2-970921.diff.gz) corrige un problema con
stack frames muy grandes. Parece ser que el segundo
(gcc-alpha-profiling-patch-2.7.2.1-toon-971001) arregla algunos problemas
con el profiling, pero yo no he comprobado que sea realmente necesario.
En cualquier caso, aqu� est�n. Tambi�n est� un fichero RPM Spec para
construir el gcc. Deber�as obtener gcc-2.7.2.1-2.src.rpm, descomprimirlo,
sustituir el fichero spec de /usr/src/redhat/SPECS por el que incluyo,
a�adir los parches al directorio SOURCES, y recompilar gcc. Entonces
ya puedes instalar gcc-2.7.2.1-2c.alpha.rpm. Incluyo aqui un fichero
empaquetado ( tar | gzip | uuencode ) llamado gcc-new-patches.tar.gz.uue
que contiene los dos parches y el fichero spec.
Tambi�n necesitar�s parchear el gprof. El procedimiento es el mismo
que antes, pero ahora con binutils-2.7.0.2-4.src.rpm. Sin embargo,
el package de binutils incluye ficheros que dan problemas con los
ficheros de headers de la libc. Lo mejor es reemplazar el fichero
gprof manualmente despu�s de compilarlo. A�ado tambi�n el fichero
binutils-new-patches.tar.gz.uue.
Finalmente, tienes que parchear algunas librer�as. Creo que esto es
lo m�s importante. El parche est� en el mailing list archive:
http://www.redhat.com/support/mailing-lists/archives/axp-list/1997-March/0464.html
Te incluyo el parche aqu� (pg-fixes.tar.gz.uue), as� como un extracto
del mensaje de David Mosberger-Tang sobre c�mo aplicarlo (bueno,
realmente casi todo el mensaje):
Algunos de vosotros hab�is avisado de problemas con el profiling
en RH4.1. Aqu� est� un fichero uuencoded con tres ficheros objeto.
La salida del md5sum es:
0854f6609580506aeea2595d7729e27b gmon.po
e2e3cdbace223a162efe90048e0ed661 ieee_get_fp_control.po
8340b52dc581956131e038d3946ba81b ieee_set_fp_control.po
Despu�s de extraer los ficheros, sustituirlos en vuestra libc_p.a.
Por ejemplo:
ar rv /usr/lib/libc_p.a gmon.po ieee_{s,g}et_fp_control.po
y entonces el profiling funcionar� de nuevo. Atenci�n con el gprof
del binutils-2.7, que tiene un bug que a veces causa un SIGFPE. Mirad
mi mail anterior para un parche que lo arregla.
Finalmente, hay a�n un problema al juntar profiling con enlace
din�mico. Por ejemplo, con enlace din�mico, a�adir -lm crear� un
binario que dar� el error: Segmentation fault. Mientras no se
encuentre una verdadera soluci�n, deberemos a�adir la opci�n -static.
Buena suerte,
--
Harvey J. Stein
Berger Financial Research
[email protected]
Fichero de Patch
|