Kernel Linux 5.18 rencana ngidini panggunaan standar basa C C11

Nalika ngrembug sakumpulan patch kanggo ndandani masalah sing ana gandhengane karo Spectre ing kode dhaptar sing disambung, dadi jelas manawa masalah kasebut bisa dirampungake kanthi luwih apik yen kode C sing tundhuk karo versi standar sing luwih anyar diidini menyang kernel. Saiki, kode kernel sing ditambahake kudu tundhuk karo spesifikasi ANSI C (C89), sing dibentuk ing taun 1989.

Masalah sing gegandhengan karo Spectre ing kode kasebut disebabake kanthi terus nggunakake iterator sing ditemtokake kanthi kapisah sawise loop-makro digunakake kanggo ngulang unsur-unsur dhaptar sing disambung, lan amarga iterator loop diterusake menyang makro kasebut, ditetepake ing njaba daur ulang dhewe lan tetep kasedhiya sawise daur ulang. Nggunakake standar C99 bakal ngidini variabel daur ulang ditetepake ing kanggo () pemblokiran, kang bakal ngatasi masalah tanpa kudu teka munggah karo workarounds.

Linus Torvalds sarujuk karo gagasan kanggo ngetrapake dhukungan kanggo spesifikasi sing luwih anyar lan ngusulake mindhah kernel 5.18 kanggo nggunakake standar C11, diterbitake ing 2011. Sajrone tes awal, perakitan ing GCC lan Clang ing mode anyar liwati tanpa panyimpangan. Yen ora ana masalah sing ora dikarepake nalika tes sing luwih jero, pilihan '--std=gnu5.18' ing skrip mbangun kernel 89 bakal diganti karo '--std=gnu11 -Wno-shift-negative-value'. Kamungkinan nggunakake standar C17 uga dianggep, nanging ing kasus iki perlu kanggo nambah versi minimal didhukung GCC. Gawan support C11 pas karo syarat saiki kanggo versi GCC (5.1).

Source: opennet.ru

Add a comment