Linux kernel 5.18 e rera ho lumella tšebeliso ea maemo a C11 a puo

Ha ho ntse ho buisanoa ka sete ea lipache ho lokisa mathata a amanang le Specter lethathamong le hokahantsoeng la khoutu, ho ile ha hlaka hore bothata bo ka rarolloa ka mosa haholoanyane haeba khoutu ea C e lumellanang le mofuta o mocha oa maemo e ka lumelloa ho kena kernel. Hajoale, khoutu e kenyellelitsoeng ea kernel e tlameha ho latela litlhaloso tsa ANSI C (C89), tse thehiloeng morao koana ka 1989.

Bothata bo amanang le Specter khoutu bo bakiloe ke ts'ebeliso e tsoelang pele ea iterator e hlalositsoeng ka thoko ka mor'a loop-macro e sebelisetsoa ho pheta-pheta likarolo tsa lenane le hokahaneng, mme hobane loop iterator e fetisetsoa ho macro eo, ho joalo. e hlalosoang ka ntle ho loop ka boeona mme e lula e fumaneha ka mor'a lupu. Ho sebelisa maemo a C99 ho ka lumella li-loop variables ho hlalosoa ka for() block, e neng e tla rarolla bothata ntle le ho tla le li-workaround.

Linus Torvalds o lumellane le mohopolo oa ho kenya ts'ehetso bakeng sa litlhaloso tse ncha mme a etsa tlhahiso ea ho tsamaisa 5.18 kernel ho sebelisa standard ea C11, e phatlalalitsoeng ka 2011. Nakong ea tlhahlobo ea pele, kopano ea GCC le Clang ka mokhoa o mocha e ile ea feta ntle le ho kheloha. Haeba ho se na mathata a sa lebelloang a hlahang nakong ea tlhahlobo e phethahetseng, khetho ea '-std=gnu5.18' e tla nkeloa sebaka ke '--std=gnu89 -Wno-shift-negative-value' ho 11 kernel build scripts. Monyetla oa ho sebelisa maemo a C17 o ne o boetse o nahanoa, empa tabeng ena ho tla hlokahala ho eketsa mofuta o fokolang o tšehetsoeng oa GCC. Ho kenyelletsoa ha tšehetso ea C11 ho lumellana le litlhoko tsa hona joale tsa mofuta oa GCC (5.1).

Source: opennet.ru

Eketsa ka tlhaloso