Ir al Hogar Ver Índice Buscar Enlaces Acerda de nosotros
[LinuxFocus Image]
[Navegation Bar]
  Noticias   Archivos   Compañías   Consejos 

Haciendo funcionar el profile en una Alpha.

 
 
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


Páginas web mantenidas por Miguel A Sepulveda.