Linux kernel 5.18 ikukonzekera kulola kugwiritsa ntchito chilankhulo cha C11

Tikukambilana zamagulu angapo kuti akonze zovuta zokhudzana ndi Specter pamndandanda wolumikizidwa, zidawonekeratu kuti vutoli litha kuthetsedwa mwachisomo ngati C code yomwe ikugwirizana ndi mtundu watsopano wa mulingowo idaloledwa kulowa mu kernel. Pakadali pano, nambala yowonjezeredwa ya kernel iyenera kutsata ndondomeko ya ANSI C (C89), yomwe idapangidwa kale mu 1989.

Vuto lokhudzana ndi Specter mu code lidayamba chifukwa chopitiliza kugwiritsa ntchito cholumikizira chodziwika padera pambuyo pa loop-macro imagwiritsidwa ntchito kubwereza zinthu za mndandanda wolumikizidwa, ndipo chifukwa loop iterator imadutsa mu macro, ndiye. zimatanthauzidwa kunja kwa loop palokha ndipo zimakhalapo pambuyo pa kuzungulira. Kugwiritsa ntchito mulingo wa C99 kumatha kulola kuti zosintha za loop zifotokozedwe mu block () block, yomwe ingathetse vutoli popanda kubwera ndi ma workaround.

Linus Torvalds adagwirizana ndi lingaliro lokhazikitsa chithandizo chazidziwitso zatsopano ndipo akufuna kusuntha kernel ya 5.18 kuti igwiritse ntchito muyezo wa C11, wofalitsidwa mu 2011. Pakuyesa koyambirira, msonkhano wa GCC ndi Clang munjira yatsopano unadutsa popanda kupatuka. Ngati palibe zovuta zosayembekezereka zomwe zingachitike pakuyesa mozama, njira ya '--std=gnu5.18' mu 89 kernel build scripts isinthidwa ndi '--std=gnu11 -Wno-shift-negative-value'. Kuthekera kogwiritsa ntchito muyezo wa C17 kudaganiziridwanso, koma pakadali pano pangafunike kuwonjezera mtundu wocheperako wothandizidwa ndi GCC. Kuphatikizidwa kwa chithandizo cha C11 kumagwirizana ndi zomwe zilipo panopa za GCC version (5.1).

Source: opennet.ru

Kuwonjezera ndemanga