[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