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ı
|