Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  News   Archives

Enabling Profile on an 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  writes: 
 
> Hi Everyone, 
>  
> I am trying to profile and program of mine under my Alpha platform 
> Kenerl 2.0.30. 
>  
> I compiled the sources with -g2 -pg, then run the executable. After the 
> executable finishes it is suppose to generate a gmon.out, instead the 
> program crash and dump a core. The program is fine because without 
> the -pg option it works just fine. 
 
I've had to do a few things with Redhat 4.2 to get profiling working. 
 
There are two patches that have been submitted to this list which fix 
problems in gcc.  The first (rth-gcc-2.7.2-970921.diff.gz) fixes a 
problem with large stack frames.  The second 
(gcc-alpha-profiling-patch-2.7.2.1-toon-971001) is said to fix some 
gcc profiling problems, but I haven't proved to myself that it was 
actually necessary. 
 
In any case, here they are, along with an RPM Spec file for building 
gcc.  You should get gcc-2.7.2.1-2.src.rpm, unpack it, replace the 
spec file in /usr/src/redhat/SPECS with the one given here, add the 
patches to the SOURCES directory, and recompile gcc.  Then you can 
install gcc-2.7.2.1-2c.alpha.rpm.  I'm appending a tarred, gzipped, 
uuencoded file (gcc-new-patches.tar.gz.uue) containing the 2 patches & 
the spec file. 
 
You also need to patch gprof.  The same procedure applies, but this 
time to binutils-2.7.0.2-4.src.rpm.  However, the binutils package 
includes files which conflict with the libc headers, so your best bet 
is to just replace gprof by hand after rebuilding.  I'm also appending 
binutils-new-patches.tar.gz.uue. 
 
Finally, you need to patch some libraries.  I believe this is actually 
the most important part.  The patch is in the mailing list archive:  
 
   http://www.redhat.com/support/mailing-lists/archives/axp-list/1997-March/0464.html 
 
For convenience, I'm including the patch here (pg-fixes.tar.gz.uue), 
as well as an excerpt from the above message by David Mosberger-Tang 
(well, actually, most of the message) about how to apply it: 
 
   Some of you reported problems with profiling under RH4.1. Here is a 
   uuencoded file of three fixed object files. The md5sum output is: 
 
   0854f6609580506aeea2595d7729e27b gmon.po 
   e2e3cdbace223a162efe90048e0ed661 ieee_get_fp_control.po 
   8340b52dc581956131e038d3946ba81b ieee_set_fp_control.po 
 
   After extracting these files, replace them in your libc_p.a. E.g.: 
 
   ar rv /usr/lib/libc_p.a gmon.po ieee_{s,g}et_fp_control.po 
 
   and then profiling should work again. Note that the binutils-2.7 
   gprof has a bug that sometimes causes a SIGFPE. See my earlier mail 
   for a patch that fixes this. 
 
   Finally, there is still a problem with mixing profiling and dynamic 
   linking. E.g., with dynamic linking, adding -lm will cause a binary 
   that segfaults. Adding the -static flag should fix this problem for 
   now (until a real solution is found). 
 
Good luck, 
 
--  
Harvey J. Stein 
Berger Financial Research 
[email protected] 
  
Patch file

This website is mantained by Miguel A Sepulveda.