Linux Kernel 5.18 planifye pou pèmèt itilizasyon estanda lang C C11 la

Pandan y ap diskite sou yon seri plak pou ranje pwoblèm ki gen rapò ak Spectre nan kòd lis ki lye a, li te vin klè ke pwoblèm nan ta ka rezoud plis grasyeuz si kòd C ki konfòm ak yon vèsyon pi nouvo nan estanda a te pèmèt nan nwayo a. Kounye a, kòd nwayo a te ajoute dwe konfòme yo ak spesifikasyon ANSI C (C89), ki te fòme an 1989.

Yon pwoblèm ki gen rapò ak Spectre nan kòd la te koze pa itilizasyon kontinye nan yon iteratè defini separeman apre bouk la—yon makro yo itilize pou iterasyon sou eleman yo nan yon lis ki lye, epi paske iteratè bouk la pase nan makro sa a, li se. defini deyò bouk nan tèt li epi li rete disponib apre bouk la. Sèvi ak estanda C99 la ta pèmèt varyab bouk yo dwe defini nan yon blòk for(), ki ta rezoud pwoblèm nan san yo pa bezwen vini ak solisyon.

Linus Torvalds te dakò ak lide pou aplike sipò pou pi nouvo espesifikasyon e li te pwopoze deplase nwayo 5.18 la pou itilize estanda C11, ki te pibliye an 2011. Pandan tès preliminè, asanble a nan GCC ak Clang nan nouvo mòd la te pase san devyasyon. Si pa gen okenn pwoblèm inatandi parèt pandan tès pi apwofondi, opsyon '--std=gnu5.18' nan scripts kernel 89 yo pral ranplase ak '--std=gnu11 -Wno-shift-negative-value'. Yo te konsidere posiblite pou itilize estanda C17 la tou, men nan ka sa a li ta nesesè pou ogmante vèsyon minimòm GCC sipòte. Enklizyon sipò C11 anfòm nan kondisyon aktyèl yo pou vèsyon GCC (5.1).

Sous: opennet.ru

Add nouvo kòmantè