Hoʻolālā ʻo Linux kernel 5.18 e ʻae i ka hoʻohana ʻana i ka ʻōlelo C maʻamau C11

ʻOiai e kamaʻilio ana i kahi hoʻonohonoho o nā patch e hoʻoponopono i nā pilikia pili i ka Specter i ka code list linked, ua maopopo ka hiki ke hoʻoponopono ʻia ka pilikia inā ʻae ʻia ka code C e pili ana i kahi mana hou o ka maʻamau i loko o ka kernel. I kēia manawa, pono e hoʻokō ka code kernel i hoʻohui ʻia me ka kikoʻī ANSI C (C89), i hoʻokumu ʻia i ka makahiki 1989.

ʻO kahi pilikia pili i ka Specter i loko o ke code i hoʻomaka ʻia e ka hoʻohana mau ʻana i kahi mea hoʻokaʻawale i wehewehe ʻia ma hope o ka loop-hoʻohana ʻia kahi macro e hoʻomaʻamaʻa i nā mea o kahi papa inoa i hoʻopili ʻia, a no ka mea ua hāʻawi ʻia ka loop iterator i kēlā macro, ʻo ia. i wehewehe ʻia ma waho o ka loop iho a loaʻa mau ma hope o ka loop. Ma ka hoʻohana ʻana i ka maʻamau C99 e ʻae ʻia nā loli loop e wehewehe ʻia i loko o kahi poloka for(), e hoʻonā i ka pilikia me ka ʻole o ka hana ʻana i nā workarounds.

Ua ʻae ʻo Linus Torvalds me ka manaʻo e hoʻokō i ke kākoʻo no nā kikoʻī hou aʻe a manaʻo e neʻe i ka kernel 5.18 e hoʻohana i ka maʻamau C11, i paʻi ʻia ma 2011. I ka wā o ka hoʻāʻo mua ʻana, ua hala ka hui ma GCC a me Clang i ke ʻano hou me ka ʻole o ka hoʻokaʻawale ʻana. Inā ʻaʻohe pilikia i manaʻo ʻole ʻia i ka wā o ka hoʻāʻo ʻana, e hoʻololi ʻia ke koho '--std=gnu5.18' ma ka 89 kernel build scripts me '--std=gnu11 -Wno-shift-negative-value'. Ua noʻonoʻo ʻia ka hiki ke hoʻohana i ka maʻamau C17, akā i kēia hihia e pono e hoʻonui i ka mana haʻahaʻa i kākoʻo ʻia o GCC. ʻO ka hoʻokomo ʻana o ke kākoʻo C11 i kūpono i nā koi o kēia manawa no ka mana GCC (5.1).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka