Linux kernel 5.18 jippjana li jippermetti l-użu tal-istandard tal-lingwa C C11

Filwaqt li ddiskutew sett ta 'garża biex jiġu ffissati problemi relatati ma' Spectre fil-kodiċi tal-lista konnessa, deher ċar li l-problema tista 'tiġi solvuta b'mod aktar grazzjuż jekk il-kodiċi C li jikkonforma ma' verżjoni aktar ġdida tal-istandard ikun permess fil-qalba. Bħalissa, il-kodiċi tal-qalba miżjud għandu jikkonforma mal-ispeċifikazzjoni ANSI C (C89), iffurmata lura fl-1989.

Problema relatata mal-ispettri fil-kodiċi kienet ikkawżata mill-użu kontinwu ta’ iteratur definit separatament wara l-linja — makro tintuża biex tirrepeti fuq l-elementi ta’ lista konnessa, u minħabba li l-iteratur tal-linja jiġi mgħoddi f’dik il-makro, huwa definita barra l-linja nnifisha u tibqa disponibbli wara l-linja. L-użu tal-istandard C99 jippermetti li l-varjabbli tal-linja jiġu definiti fi blokka for(), li ssolvi l-problema mingħajr ma jkollha għalfejn toħroġ b'soluzzjonijiet.

Linus Torvalds qabel mal-idea li jiġi implimentat appoġġ għal speċifikazzjonijiet aktar ġodda u ppropona li l-kernel 5.18 jitmexxa biex juża l-istandard C11, ippubblikat fl-2011. Matul l-ittestjar preliminari, l-assemblaġġ f'GCC u Clang fil-modalità l-ġdida għadda mingħajr devjazzjonijiet. Jekk ma jinqalgħu l-ebda problemi mhux mistennija waqt ttestjar aktar bir-reqqa, l-għażla '--std=gnu5.18' fl-iskripts tal-bini tal-kernel 89 se tiġi sostitwita b''--std=gnu11 -Wno-shift-negative-value'. Tqieset ukoll il-possibbiltà li jintuża l-istandard C17, iżda f'dan il-każ ikun meħtieġ li tiżdied il-verżjoni minima appoġġjata tal-GCC. L-inklużjoni tal-appoġġ C11 taqbel mar-rekwiżiti attwali għall-verżjoni GCC (5.1).

Sors: opennet.ru

Żid kumment