[Gelistirici] Build sırasında hataları otomatik yalama [gcc undefined signed overflow optimization]

Ismail Dönmez ismail at pardus.org.tr
15 Ara 2007 Cmt 14:39:18 EET


Selamlar,

C standardinda signed integer'ların overflow'u undefined olduğu için gcc 
4.3 -O2 ile derlerken bunu optimize ediyor. Bu şu ana kadar iki yerde karşıma 
çıktı pyhon [0] ve autoconf [1] .

Python'u düzelttim ama autoconf'u düzeltmek bir mana ifade etmiyor çünkü 
autoconf tarafından önceden oluşturulmuş binlerce configure dosyası var. Bu 
hatayı yakalamak için C(XX)FLAGS'a -Wstrict-overflow ekledim.

Bu şöyle bir uyarıya neden oluyor :

[~]> gcc -O2  -Wstrict-overflow -o mktime mktime.c
mktime.c: In function 'main':
mktime.c:145: warning: assuming signed overflow does not occur when 
simplifying conditional to constant

*** 0 errors, 1 warnings

Şimdi bunun çözümü için şöyle bir sistem lazım;

pisi config.log ve build log içinde bazı tehlikeli warningleri arıyacak 
burada "assuming signed overflow does not occur" ve otomatik olarak paketin 
sahibine ve bir listeye mail atıcak. Bizde eğer sorun configure dosyasında 
ise elle autotools.autoconf() çağırarak (çünkü depodaki autoconf artık 
düzgün), ya da kod içinde bunu düzelticez.

Bunu buildfarm'a entegre etmemiz lazım 2008 için, böyle birşeyi yapmak isteyen 
var mı? Bu arada bunun basit bir hata gibi gözüktüğüne bakmayın Python'daki 
tüm güvenlik kontrollerinin optimize edilmesine neden oluyordu.

[0] http://bugs.python.org/issue1608 
[1] http://osdir.com/ml/sysutils.autoconf.patches/2006-12/msg00100.html

-- 
Never learn by your mistakes, if you do you may never dare to try again.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi