Logo ms.nowadaytechnol.com

Linux 4.19 Kernel Kini Memerlukan GCC 4.6 Untuk Dibangun, Kerana Menyusun Kegagalan Pada Senibina Yang Lebih Lama

Linux 4.19 Kernel Kini Memerlukan GCC 4.6 Untuk Dibangun, Kerana Menyusun Kegagalan Pada Senibina Yang Lebih Lama
Linux 4.19 Kernel Kini Memerlukan GCC 4.6 Untuk Dibangun, Kerana Menyusun Kegagalan Pada Senibina Yang Lebih Lama

Video: Linux 4.19 Kernel Kini Memerlukan GCC 4.6 Untuk Dibangun, Kerana Menyusun Kegagalan Pada Senibina Yang Lebih Lama

Video: Linux 4.19 Kernel Kini Memerlukan GCC 4.6 Untuk Dibangun, Kerana Menyusun Kegagalan Pada Senibina Yang Lebih Lama
Video: Episode 17 - Common problem 2024, Mac
Anonim
Image
Image

Bagi pembangun Linux yang mengerjakan kernel, kernel Linux 4.19 yang akan dilepaskan meningkatkan versi minimum GCC yang diperlukan untuk pembinaan kernel. Kernel Linux rasmi telah menyenaraikan GCC 3.2 sebagai versi minimum penyusun yang diperlukan untuk pembinaan kernel, tetapi kernel Linux 4.19 menaikkannya ke GCC 4.6.

Ini kerana pelbagai arkitek pada rilis GCC4 yang lebih tua gagal menyusun kernel Linux dengan bersih, oleh sebab itu mengapa GCC 4.6 ditetapkan sebagai minimum. Kernel juga akan memeriksa GCC 4.6.0 atau yang lebih baru secara eksplisit dan jika tidak dijumpai, penyusun akan melakukan kesalahan.

Ini juga bermanfaat untuk kod kernel, kerana kernel dev dapat melepaskan beberapa lusin baris kod untuk penyelesaian GCC yang lebih tua yang ditujukan untuk bug penyusun dan perbezaan tingkah laku dalam pelepasan kompilator yang lebih lama.

Perubahan ini digabungkan lebih awal hari ini viGit komit - dan GCC 4.6.0 dilancarkan pada tahun 2011, jadi kami akan melihat apakah GCC juga mempunyai kemas kini pada masa akan datang.

Perubahan / komitmen untuk kemas kini ini pada dasarnya menetapkan bahawa perubahan itu sepenuhnya disebabkan oleh versi lama penyusun GCC yang gagal membina kernel di bawah pelbagai seni bina, seperti yang dinyatakan di bawah:

Pelbagai seni bina gagal dibina dengan betul dengan versi kompilator gcc yang lebih lama. Contoh dari Guenter Roeck dalam utas [1]:>> Dalam fail yang disertakan dari./include/linux/mm.h:17:0,> dari./include/linux/pid_namespace.h:7,> dari./include /linux/ptrace.h:10,> dari arch / openrisc / kernel / asm-offsets.c: 32:>./include/linux/mm_types.h:497:16: ralat: anggota array fleksibel dalam struktur yang kosong> > Ini hanyalah contoh dengan gcc 4.5.1 untuk or32. Saya juga pernah melihat masalah> dengan gcc 4.4 (untuk unicore32). Oleh itu, kemas kini versi minimum gcc yang diperlukan kepada 4.6. [1] https://lore.kernel.org/lkml/20180814170904. [email protected]/ Pelbagai jenis: - Kemas kini Dokumentasi / proses / perubahan.rst - Keluarkan dan satukan blok ujian versi di compiler-gcc.h untuk versi yang lebih rendah daripada 4.

Sejauh usaha LLVM Clang untuk membangun kernel Linux x86_64 utama, saat ini ada beberapa usaha yang harus dilakukan, terutama dalam proyek LLVMLinux - walaupun ada beberapa pekerjaan dalam membangun kernel melalui ruang ARM Linux dengan Clang.

Disyorkan: