Apakah ada distro Linux yang dikompilasi dengan clang / llvm ? Sepertinya pada akhir 2010 kernel itu berfungsi. Jika tidak, apakah ini akan menjadi masalah teknis atau perizinan?
Apakah ada distro Linux yang dikompilasi dengan clang / llvm ? Sepertinya pada akhir 2010 kernel itu berfungsi. Jika tidak, apakah ini akan menjadi masalah teknis atau perizinan?
Jawaban:
Sebagai jawaban terlambat untuk pertanyaan ini, apa yang dikatakan @jmtd persis seperti yang terjadi secara berkala di arsip Debian.
Paket-paket dikompilasi ulang dengan toolchains yang lebih baru (compiler, linker, dll.) Dan, ketika kompilasi gagal, bug terhadap paket-paket yang gagal dikompilasi diajukan dengan indikasi FTBFS ("gagal dibangun dari sumber").
Bug seperti itu umumnya merupakan indikasi dari sesuatu yang buruk terjadi dan biasanya peringkat dengan keparahan tinggi dan diberi status bug "rilis kritis", yang berarti bahwa rilis baru tidak dapat dilakukan dengan bug yang tidak terpecahkan.
Secara khusus, Lucas Nussbaum telah mengkompilasi ulang seluruh arsip Proyek Debian dalam kotak sebagai sarana Penilaian Kualitas.
Baru-baru ini, meskipun, Sylvestre Ledru dan beberapa Pengembang Debian lainnya telah dibimbing siswa di Google Summer of Code 2012 untuk memungkinkan substitusi kedua GCC oleh dentang dan libstdc++
(GCC dukungan perpustakaan untuk C ++) olehlibc++
(counterpart dentang / LLVM ini).
Ada situs di mana hasil kompilasi seluruh koleksi paket Debian diterbitkan dan laporan lebih lanjut didokumentasikan oleh LWN dan program untuk memisahkan proses pembangunan Debian dari GCC berhasil diselesaikan .
Jadi kita akan segera melihat aroma Debian yang dikompilasi dengan clang / llvm, tergantung pada seberapa besar dukungan yang diperoleh dari hasil yang sukses ini.
Ada, pada pembaruan ini (2016-08-16), versi baru dari distribusi Linux tradisional yang dikompilasi dengan clang dan llvm, OpenMandriva Lx 3.0 , sekarang dalam rilis finalnya. Menurut catatannya, itu disusun, sebanyak mungkin, tidak hanya dengan dentang dan llvm, tetapi juga dengan tingkat optimasi tinggi "reguler" dan juga dengan Link Time Optimization (LTO) .
Sementara subjek utama dari pertanyaan dan jawaban ini adalah llvm / dentang, harus adil, harus dicatat GCC juga memiliki fitur KPP (lebih banyak latar belakang KPP ).
Secara teori, KPP, seperti yang terlihat pada clang / llvm dan GCC yang lebih baru, berpotensi membuat tidak hanya biner yang dihasilkan lebih cepat, tetapi juga memiliki persyaratan memori yang lebih kecil untuk bagian teks dari program (dan kernel Linux adalah salah satu penerima manfaat potensial dari LTO ).
Saya belum membaca seberapa banyak OpenMandriva Lx 3.0 menggunakan LTO di semua program, tapi saya senang bahwa itu menggunakan clang / llvm + LTO dan saya akan senang melihat orang-orang melakukan beberapa tolok ukur independen membandingkan dan membandingkan berbasis GCC "reguler", distribusi non-LTO yang dioptimalkan untuk OpenMandriva Lx 3.0.
Belum. Menurut laporan bug yang sedang terbuka ini sepertinya kernel itu sendiri gagal dikompilasi.
Sementara biner pengguna akhir tidak dibangun dengan dentang / llvm, sebagian besar arsip Debian telah dibangun (dan dibangun kembali) dengan dentang / llvm (dan binutils-emas dan potongan-potongan lainnya) oleh orang-orang yang ingin mengekspos bug portabilitas di paket perangkat lunak (dan kompiler sendiri).
Baru-baru ini, OpenSuse - Tumbleweed rolling release menetapkan LTO pada gcc9 untuk build-nya. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html