Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  Duyumlar   Belgelikler   Kuruluşlar  Öğütler  

Teknik Öğütler: Alpha üzerinde Profillemenin Sağlanması

Çeviri: Emre Demiralp


Bu çeviride elektronik gönderi yazılımına özgı olan ve daha çok iletiyi ve de göndericiyi kimliklendirmek için kullanılan kesim, özgünlüğü korumak açısından, çevrilmeksizin olduğu gibi bırakılmıştır. E.D.

 
 
 
From hjstein@bfr.co.il Fri Dec 19 15:35:35 1997 
Date: 19 Nov 1997 11:55:52 +0200 
From: "Harvey J. Stein"  
To: Miguel A Sepulveda  
Cc: axp-list@redhat.com 
Subject: Re: Profiling under Linux Alpha?
 
Miguel A Sepulveda  yazıyor: 
 
> Herkese merhaba, 
>  
> Benim bir programımı benim Alpha ortamım (Çekirdek: 2.0.30)
> altında profillemeye çabalıyorum.
>  
> Kaynak programı -g2 -pg ile derledim ve çalıştırılabilir dosyayı
> çalıştırdım. Çalıştırılabilir dosya görevini bitirince gmon.out
> adlı bir dosya üretmeliydi. Ama öyle olmadı, program göçtü ve
> core dosyası oluşturdu. Program bence sorunsuz. Çünkü -pg seçeneksiz
> gayet güzel çalışıyor.
 
Profillemenin işleyebilmesi için Redhat 4.2 ile bir kaç şey yapmak
zorunda kalmıştım.

Bu listeye sunulan ve gcc'deki sorunları gideren iki tane yama
bulunmaktadİr. Birincisi (rth-gcc-2.7.2-970921.diff.gz) olup
büyük yığıt yapılarıyla ilgili sorunları gidermektedir. İkincisi
(gcc-alpha-profiling-patch-2.7.2.1-toon-971001) olup bazı gcc profilleme
sorunlarını giderebildiği söylenmektedir. Ancak, bu ikincisinin,
gerçekten de gerekli olduğunu kanıtlayabilmiş değilim.

Hangi durum olursa olsun gcc'yi yapılandırabilmek için bu dosyalar
RPM Spec dosyası aracılığıyla elimizde bulunmaktadır. Önce 
gcc-2.7.2.1-2.src.rpm'i bulmalı ve paketi açmalısınız. Sonra, 
/usr/src/redhat/SPECS içindeki spec dosyasını burada verilenle
değiştirmeli, kaynak dizinine yamalamalı ve gcc'yi yeniden
derlemelisiniz. tar'lanmış, zip'lenmiş ve uuencode'lanmış 
dosyayı, yani o iki yamayı ve spec dosyasını içeren 
(gcc-new-patches.tar.gz.uue) dosyasını ekte veriyorum.
 
Aynı zamanda gprof adlı yamaya da gereksiniminiz olacaktır.
Aynı işlemler burada da uygulanacaktır. Ama bu kez
binutils-2.7.0.2-4.src.rpm dosyası devrede olacaktır.
binutils paketi libc başlıklarıyla çelişkili olan dosyalar
içermektedir, dolayısıyla yapabileceğiniz en iyi şey yapılanma
sonrasında gprof'u elle değiştirmektir. binutils-new-patches.tar.gz.uue.
dosyasını da ekte sunuyorum. 

Sonunda bazı kitaplıkları yamalamanız gerekecektir. Bu kesimin en
önemli parça olduğuna inanıyorum.
 
Yamanın bulunduğu haberleşme listesi arşivini belirtiyorum:
 
   http://www.redhat.com/support/mailing-lists/archives/axp-list/1997-March/0464.html 
 
Uygunluk açısından, yamayı, (pg-fixes.tar.gz.uue) dosyasını,  burada 
vermekteyim. Aynı zamanda yukarıdaki David Mosberger-Tang'a ait iletiden
uygulamanın nasıl yapılacağını anlatan bir alıntıyı da (gerçekte, iletinin 
büyük bir kesimi) sunuyorum:
 

   Bazılarınız RH4.1 altında profilleme ile ilgili sorunlar rapor
   etmişlerdi. İşte sizlere Sorunsuzlaştırılmış üç nesne dosyasının 
   uuencode'lanmış dosyası. md5sum çıktısı şu biçimdedir:
 
   0854f6609580506aeea2595d7729e27b gmon.po 
   e2e3cdbace223a162efe90048e0ed661 ieee_get_fp_control.po 
   8340b52dc581956131e038d3946ba81b ieee_set_fp_control.po 
 
   
   Bu dosyaları çekip çıkardıktan sonra libc_p.a. içindekilerle
   değiştirin. Sözgelimi
 
   ar rv /usr/lib/libc_p.a gmon.po ieee_{s,g}et_fp_control.po 
 
   yapın. Bundan sonra profillemenin işlemesi gerekir. Bu arada
   binutils-2.7 gprof'ın zaman zaman SIGFPE'ye neden olan bir yanlışı
   bulunduğunu gözardı etmeyin. Bu yanlışı gideren bir yamayla ilgili
   daha önceki iletimi okuyun.

   Sonuç olarak, profilleme ve dinamik bağlamanın karıştırılmasıyla
   ilgili hala bir sorun bulunmaktadİr. Sözgelimi, dinamik bağlamayla,
   -lm parametresinin verilmesi segmanlama yanlışı bulunan bir ikitabanlı
   dosya üretmektedir. Gerçekçi bir çözüm bulunanan dek -static
   parametresinin verilmesi bu sorunu gidermekte kullanılabilecektir.
 
İyi şanslar. 
--  
Harvey J. Stein 
Berger Financial Research 
hjstein@bfr.co.il 
  
Yama dosyası

© 1998 Miguel Angel Sepúlveda
Bu sanalyörenin bakımı Miguel A Sepulveda tarafından yapılmaktadır.