HomeMapIndexSearchNewsarchivesLinksabout LF
[Top Bar]
[Bottom Bar]
[Tux Stamp]
Harvey J. Stein, LinuxFocus Leser

Tip: Aktivieren von Profile auf einem Alpha PC


 
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: 
 
> Hallo allerseits,  
> Ich versuche auf meiner Alpha (Kernel 2.0.30) eines meiner Programme
> zu profilen. 
> Ich kompilierte die Quelltexte mit -g2 -pg und startete dann das Programm.
> Nach Beendigung sollte eine Datei gmon.out erzeugt worden sein, stattdessen
> stürzt das Programm mit einem Coredump ab. Das Programm selbst ist
> in Ordnung, ohne die Option -pg läuft es einwandfrei.

Ich mußte Einiges tun, bevor ich das Profiling mit Redhat 4.2
zum Laufen bekam.
 
Es gibt dazu zwei Patches, die ich dieser Liste zugänglich gemacht
habe und welche einige Probleme mit gcc beheben. Der erste Patch
(rth-gcc-2.7.2-970921.diff.gz) korrigiert ein Problem mit großen
Stack Frames, der zweite (gcc-alpha-profiling-patch-2.7.2.1-toon-971001)
soll einige Probleme von gcc mit Profiling lösen, allerdings habe
ich selbst nicht getestet, ob dies notwendig war.
 
Auf jeden Fall kommen sie mit dieser Mail mit, inklusive einer RPM
SPECS Datei, für das Übersetzen von gcc. Man sollte die
Datei gcc-2.7.2.1-2.src.rpm entpacken, die SPECS Datei in /usr/src/redhat
durch die beiligende Datei ersetzen, den Patch dem SOURCES Verzeichnis
hinzufügen und gcc neu kompilieren. Dann kann gcc-2.7.2.1-2c.alpha.rpm
installiert werden. Ich füge die Datei gcc-new-patches.tar.gz.uue 
bei (getarred, gezipped und uuencoded), die beide Patches und die 
SPECS Datei enthält.

gprof muß ebenfalls gepatched werden. Selbige Prozedur, allerdings
dieses Mal mit  binutils-2.7.0.2-4.src.rpm. Allerdings enthält das
binutils Paket Include Dateien, welche mit denen der libc einen Konflikt
erzeugen, deswegen sollte gprof nach der Neuübersetzung per Hand
ersetzt werden. binutils-new-patches.tar.gz.uue füge ich ebenfalls bei.
 
Zum Schluß müssen einige Bibliotheken gepatched werden. Dies
dürfte der wichtigste Teil sein. Der Patch ist im Archive der
Mailing Liste zu finden:

    http://www.redhat.com/support/mailing-lists/archives/axp-list/1997-March/0464.html 
 
Aus Bequemlichkeit wird er beigefügt (pg-fixes.tar.gz.uue), sowie
ein Auszug der oben genannten Nachricht von  David Mosberger-Tang 
(eigentlich ein großer Teil der Nachricht), der beschreibt,
wie der Patch angwendet wird:
 
   Einige Leute haben Probleme mit Profiling unter RH4.1 gemeldet.
   Hier ist eine Datei (uuencoded), welche drei modifizierte Objektdateien
   beinhaltet. Die md5sum Werte sind:
 
   0854f6609580506aeea2595d7729e27b gmon.po 
   e2e3cdbace223a162efe90048e0ed661 ieee_get_fp_control.po 
   8340b52dc581956131e038d3946ba81b ieee_set_fp_control.po 
 
   Nachdem diese Dateien ausgepackt worden sind, sollten sie in der
   jeweiligen libc_p.a ersetzt werden, zum Beispiel:
 
   ar rv /usr/lib/libc_p.a gmon.po ieee_{s,g}et_fp_control.po 
 
   Dananch sollte Profiling wieder funktionieren. Man sollte beachten,
   daß gprof des binutils-2.7 einen Bug hat, der manchmal einen
   SIGFPE Fehler auslöst. In einer früheren Nachricht von mir
   findet man einen Patch für dieses Problem.
 
   Zum Schluß sollte erwähnt werden, daß es noch immer
   ein Problem mit Profiling in Verbindung mit dynamischen Binden gibt,
   zum Beispiel wird ein Programm, dynamisch gelinkt, durch Hinzufügen
   von -lm später mit Segmentation Faults abstürzen. Fürs
   erste sollte das -static Flag dieses Problem umgehen, bis ein Lösung
   gefunden worden ist.

Viel Glück, 
 
--  
Harvey J. Stein 
Berger Financial Research 
[email protected] 
  
Patch file
Übersetzung: Harald Radke

This website is maintained by Miguel Angel Sepulveda
LinuxFocus 1998