Linux kernel 5.18 yana shirin ba da damar amfani da daidaitaccen harshen C11

Yayin da ake tattaunawa akan saitin faci don gyara matsalolin da ke da alaƙa da Specter a cikin lambar lissafin da aka haɗa, ya bayyana a fili cewa za a iya magance matsalar cikin alheri idan lambar C wacce ta dace da sabon sigar ƙa'ida ta shiga cikin kwaya. A halin yanzu, ƙara lambar kwaya dole ne ta bi ƙayyadaddun ANSI C (C89), wanda aka kafa a cikin 1989.

Matsalar da ke da alaƙa a cikin lambar ta faru ne ta hanyar ci gaba da amfani da na'urar da aka keɓance daban bayan madauki - ana amfani da macro don maimaita abubuwan da ke cikin jerin abubuwan da aka haɗa, kuma saboda an shigar da madaidaicin macro a cikin wannan macro, shine. bayyana a wajen madauki kanta kuma ya kasance yana samuwa bayan madauki. Yin amfani da ma'auni na C99 zai ba da damar ma'anar madaidaicin madauki a cikin toshe () wanda zai magance matsalar ba tare da fito da hanyoyin warwarewa ba.

Linus Torvalds ya yarda da ra'ayin aiwatar da tallafi don sabbin ƙayyadaddun bayanai kuma ya ba da shawarar canzawa zuwa ma'aunin C5.18, wanda aka buga a cikin 11, a cikin kernel 2011. A lokacin gwaji na farko, ginin a cikin GCC da Clang a cikin sabon yanayin ya wuce ba tare da wani sabani ba. Idan babu wasu matsalolin da ba zato ba tsammani suka taso yayin ƙarin cikakken gwaji, zaɓi '--std=gnu5.18' za a maye gurbinsa a cikin rubutun kernel na 89 tare da'-std=gnu11 -Wno-shift-negative-value'. An kuma yi la'akari da yuwuwar amfani da ma'aunin C17, amma a wannan yanayin zai zama dole a ƙara ƙaramin sigar tallafin GCC. Haɗin tallafin C11 ya dace da buƙatun yanzu don sigar GCC (5.1).

source: budenet.ru

Add a comment