Dalam teras Linux 5.18 merancang untuk membenarkan penggunaan piawai bahasa C11

Semasa perbincangan set tampalan yang membetulkan isu berkaitan Spectre dalam kod senarai terpaut, menjadi jelas bahawa masalah itu boleh diselesaikan dengan lebih elegan jika kod C yang mematuhi versi standard yang lebih terkini dibenarkan masuk ke dalam kernel. Pada masa ini, kod yang ditambahkan pada kernel mesti mematuhi spesifikasi ANSI C (C89), yang ditubuhkan pada tahun 1989.

Isu berkaitan Spectre dalam kod itu disebabkan oleh penggunaan berterusan iterator yang ditakrifkan secara berasingan selepas gelung. Makro digunakan untuk lelaran ke atas elemen senarai terpaut, dan memandangkan lelaran gelung diserahkan kepada makro ini, ia ditakrifkan di luar gelung itu sendiri dan kekal boleh diakses selepas gelung. Menggunakan standard C99 akan membolehkan pembolehubah gelung ditakrifkan dalam blok for(), yang akan menyelesaikan masalah tanpa memerlukan penyelesaian.

Linus Torvalds bersetuju dengan idea untuk melaksanakan sokongan untuk spesifikasi yang lebih baru dan mencadangkan penukaran kepada standard C11, yang diterbitkan pada 2011, dalam kernel 5.18. Ujian awal tidak menunjukkan masalah dengan mod binaan yang lebih baharu dalam GCC dan Clang. Jika ujian yang lebih teliti tidak mendedahkan isu yang tidak dijangka, pilihan '--std=gnu89' dalam skrip binaan kernel 5.18 akan digantikan dengan '--std=gnu11 -Wno-shift-negative-value'. Menggunakan standard C17 juga dipertimbangkan, tetapi ini memerlukan peningkatan versi GCC yang disokong minimum. Mendayakan sokongan C11 sesuai dengan keperluan versi GCC semasa (5.1).

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster