Linux kernel 5.18 inoronga kubvumidza kushandiswa kweiyo C mutauro chiyero C11

Ndichiri kukurukura seti yezvigamba zvekugadzirisa matambudziko ane chekuita neSpecter mune yakabatana runyorwa kodhi, zvakava pachena kuti dambudziko rinogona kugadziriswa zvine nyasha kana C kodhi inoenderana neshanduro nyowani yechiyero yakabvumidzwa kupinda mukernel. Parizvino, iyo yakawedzera kernel kodhi inofanirwa kuenderana neiyo ANSI C (C89) yakatarwa, yakaumbwa kumashure muna 1989.

Dambudziko rine hukama neSpecter mukodhi rakakonzerwa nekuenderera mberi kwekushandiswa kweiyo yakatsaurwa inotsanangurwa iterator mushure mechiuno - macro inoshandiswa kudzokorora pamusoro pezvinhu zverunyorwa rwakabatana, uye nekuti iyo loop iterator inopfuudzwa mune iyo macro, ndiyo. inotsanangurwa kunze kwechiuno pachayo uye inoramba iripo mushure mechiuno. Kushandisa chiyero cheC99 kwaizobvumira kuti loop variables itsanangurwe mune ye() block, iyo yaizogadzirisa dambudziko pasina kuuya nemaworkaround.

Linus Torvalds akabvumirana nepfungwa yekuita tsigiro yezvitsva zvakatemwa uye akafunga kufambisa iyo 5.18 kernel kushandisa iyo C11 standard, yakaburitswa muna 2011. Panguva yekuyedzwa kwekutanga, gungano muGCC neClang mune nyowani modhi rakapfuura pasina kutsauka. Kana pasina matambudziko asingatarisirwe akamuka panguva yekuyedzwa zvakanyanya, iyo '--std=gnu5.18' sarudzo mu89 kernel kuvaka zvinyorwa zvinotsiviwa ne '--std=gnu11 -Wno-shift-negative-value'. Iko mukana wekushandisa chiyero cheC17 chakatariswawo, asi munyaya iyi zvingave zvakakosha kuwedzera zvishoma zvakatsigirwa shanduro yeGCC. Kubatanidzwa kweC11 kutsigirwa kunoenderana nezvinodiwa iye zvino zveGCC version (5.1).

Source: opennet.ru

Voeg