From [email protected] Fri Dec 19 15:35:35 1997 Date: 19 Nov 1997 11:55:52 +0200 From: "Harvey J. Stein" <[email protected]> To: Miguel A Sepulveda <[email protected]> Cc: [email protected] Subject: Re: Profiling under Linux Alpha ? Miguel A Sepulveda <[email protected]> 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 (article11-atach.txt)
Webpages maintained by the LinuxFocus Editor team
© FDL LinuxFocus.org |
Translation information:
|