Salah satu fitur baru untuk Linux 6.8 yang terlambat digabungkan adalah mengaktifkan opsi kompiler -Wstringop-overflow untuk memperingatkan tentang kemungkinan buffer overflows jika kompiler dapat mendeteksi kemungkinan overflow tersebut pada waktu kompilasi. Meskipun secara teori bagus, masalah pada GCC telah menyebabkan Linus Torvalds menonaktifkan opsi kompiler ini pada Linux 6.8 sekarang.
Seperti disebutkan dalam artikel Phoronix sebelumnya tentang topik ini, opsi “-Wstringop-overflow” diaktifkan tanpa syarat untuk build kernel baru dengan pengecualian saat menggunakan kompiler GCC 11 karena bug kompiler yang diketahui. Namun ternyata GCC 11 saja tidak terisolasi dari perilaku kompiler -Wstringop-overflow yang buruk.
Linus membuat patch barunya sendiri pada hari Kamis dan berkomentar:
“Ternyata bukan hanya gcc-11 saja yang rusak. Rupanya itu hanya terjadi pada x86-64 dengan versi gcc lainnya.
Di arm64, saya melihat peringatan dengan gcc versi 13.2.1, dan robot pengujian kernel melaporkan masalah yang sama di s390 dengan gcc 13.2.0.
Memang sepertinya ini hanya driver Xe drm yang baru, tetapi hal ini menghalangi saya untuk melakukan pengujian build arm64 secara normal. Jadi itu akan dikembalikan sampai seseorang mengetahui apa yang menyebabkan masalahnya (dan mengapa itu tidak muncul di x86-64, itulah yang membuat saya curiga ini bukan hanya tentang gcc-11, dan lebih banyak lagi tentang kejadian acak saja).
Ini juga sedikit mengubah penamaan Kconfig – buat saja syarat “nonaktifkan ini untuk GCC” menjadi satu entri Kconfig sederhana, dan kita dapat menempatkan dependensi versi gcc di entri itu setelah kita mengetahui aturan yang benar.
Ketergantungan versi _may_ tetap berakhir menjadi “versi gcc lebih besar dari 11” jika masalahnya murni ada pada driver Xe, namun meskipun demikian, mari jadikan itu semua bagian dari logika “GCC_NO_STRINGOP_OVERFLOW”.
Untuk saat ini, kami hanya menonaktifkannya untuk semua versi gcc sementara penyebab pastinya tidak diketahui.” Torvalds telah menggunakan Apple Silicon MacBook Air sebagai laptopnya saat menguji pembuatan kernel dan inilah yang tampaknya menyebabkan masalah build non-x86_64 opsi kompiler ini.
Kita akan melihat apakah situasi ini dapat diselesaikan pada waktunya untuk rilis stabil Linux 6.8 pada bulan Maret atau apakah perilaku “-Wstringop-overflow” lebih luas/bermasalah untuk arsitektur non-x86_64 sehingga mungkin tidak ada perbaikan jangka pendek. .
Itulah berita seputar Torvalds Memilikinya Dengan “-Wstringop-overflow” Di GCC Karena Kerusakan Kernel, semoga bermanfaat. Disadur dari Phoronix.com.