Fun story from my work: Vopšem, specifiskas arhitektūras kernelis izkompilēts ar jauno kompilātora versiju nestrādā. Kas izrādās, jaunais kompilātors prot atpazīt ciklus kuros tiek veikta baitu kopēšana un aizstāt tos ar memcpy, bet kernelī pašā ir memcpy implementācijas, kas optimizētas specifiski katrai arhitektūrai un tam-tam-tā, tās protams satur baitu kopēšanas, kuras tiek aizstātas ar callu uz pašu memcpy un tiek uztaisīts infinīti rekursīvs loops. Bļin, nedēļu ar šito nopisos, jo protams, ka printk arī izmanto memcpy, beigu beigās viss fikss bija viens vienīgs "-fno-builtin".
(Lasīt komentārus)
Nopūsties: