[Linux] Re: GCC -02

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Berk Demir (berk@linux.org.tr)
Date: Fri 20 Jul 2001 - 19:21:39 EEST


Burak DAYIOGLU wrote:
>
> > makefile dosyasinda "CFLAGS= -g -02" satirindaki "-g -02" yi kaldirinca
> > derliyor. Bunun bir cozumu varmı veya bir zararı?!
>
> Siradan bir kullanici icin zarari olacagini dusunmuyorum. Cok CPU gucu
> gerektiren bir program ise (belki) eniyilestirme yapilmamasi nedeni ile
> azicik daha yavas calisabilir ama ortalama bir programda bunu
> hissedemezsiniz bile...
>

GCC 2.X 'de optimizasyon her zaman hatasiz yapilamiyor.
Yakin bir zamana kadar, linux.org.tr makinesi icin derledigimiz
iptables yazilimi -O2 parametresi ile derlendiginde tamamen hatali
bir davranis sergilerken, hic optimizasyon olmadan derlenen iptables
ise beklenildigi gibi calisiyordu.
Bu durum sadece iptables'da degil, diger bir cok program da da
basima geldi. (UPX, prelxml, k4xsltd, links, synapticsd)

-Os parametresi ile derleme yaptiginizda, basiniza cok daha
ilginc seyler gelebiliyor. Programin bazi yerleri atlaniyor, ya da
tamamen ilgisiz bir yerde program sonlaniyor. (status code donmuyor.)
( -0s, cikan objenin boyutunun kucultulmesini sagliyor. )

Daha ilginc bir ornek; Red Hat 7.1 ile gelen glibc'deki sorunlarin
buyuk kismi hala cozulemedi (bkz : bugzilla.redhat.com/bugzilla).
Gayet basit bir program icinde kullanilan realloc() fonksiyonu
istenildigi gibi davranis sergilemezken, -O1 ve daha ustu bir
optimizasyon seviyesi ile derlenince program istenildigi calisiyor.

Thread kullanan bir yazilimi optimizasyon ile derlemek buyuk
olasilik ile husran ile sonuclaniyor (bkz : Red Hat Linux 7.1 Bug
#43752)
GCC 3.0 da bir cok optimizasyon rutininin bastan yazildigi ve hatali
calistigi bilinen bazi optimizasyon seceneklerinin ise su anda hic
bir etki yaratmayacak sekilde ayarlandigi belirtiliyor.
Bu rutinler zaman icinde guvenilir hale geldikce GCC'ye yeniden
eklenecek.

Saygilarimla,

Berk Demir
-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.

Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.