Keskuste käigus Spectre'i klassi haavatavustega seotud koodiparanduste komplekti üle selgus, et probleemi oleks võimalik elegantselt lahendada, kui tuum saaks toetada uuema versiooni C-keele standardit. Praegu peab tuuma lisatav kood vastama ANSI C (C89) spetsifikatsioonile, mis loodi juba 1989. aastal.
Spectre'iga seotud koodiprobleem tekkis, kuna eraldi defineeritud iteraatori kasutamine jätkus pärast tsüklit - seotud loendi elementide läbimiseks kasutatakse makrot, ning kuna tsükli iteraator edastatakse sellele makrole, määratakse see väljaspool tsüklit ja jääb pärast tsüklit kätte saadavaks. C99 standardi kasutamine võimaldaks tsükli muutujate määratlemist for() plokkides, mis lahendaks probleemi ilma ringteedeta.
Linus Torvalds nõustus ideega rakendada uuemate spetsifikatsioonide toetust ja pakkus välja, et tuumas 5.18 tuleks minna üle C11 standardi kasutamisele, mis avaldati 2011. aastal. Eelkontrolli käigus ei tekkinud GCC ja Clang uues režiimis kokku kukkumisi. Kui põhjalikumat testimist ei kaasne ettenägematuid probleeme, asendatakse tuuma 5.18 ehitusskriptides valik '—std=gnu89' valikuga '—std=gnu11 -Wno-shift-negative-value'. C17 standardi kasutamise võimalus kaaluti samuti, kuid sel juhul tuleks tõsta minimaalne toetatud GCC versioon. C11 toe lisamine jääb aga praeguste GCC (5.1) versiooni nõuete piiridesse.
Allikas: opennet.ru
