Apakah ada distro Linux yang dikompilasi dengan clang / llvm?

11

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?

rbrito
sumber
Saya tidak tahu itu. Saya pikir sebagian besar distro Linux menggunakan GCC, perangkat lunak pendukung dengan lisensi umum dan satu distro khusus untuk menangani kode GNU. Dentang saat ini sedang dianut oleh komunitas BSD untuk alasan yang sama. (Prosesnya adalah penyederhanaan besar masalah politis dan teknis)
Chris S
4
Untuk informasi lebih lanjut tentang pos terkait ini: Apakah mungkin untuk mengkompilasi sistem Linux lengkap dengan kompiler Intel dan bukan GCC?
Caleb
3
@James Tolong jangan edit jawaban ke dalam pertanyaan; Anda dapat memposting jawaban aktual di bawah dan menandainya diterima . Juga, jika Anda mendaftar di SF, Anda harus secara otomatis mengambil kepemilikan atas pertanyaan di sini
Michael Mrozek

Jawaban:

8

Situasi dengan Debian

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.

Pendatang baru

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) .

KPP

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.

rbrito
sumber
@AlexandrDubinsky, terima kasih telah berterima kasih kepada saya, tapi saya hanya melakukan apa yang ingin saya miliki di SE secara umum. Sangat frustasi untuk datang dengan pertanyaan / jawaban yang berbau seperti debu murni (setiap kali masalah tidak bersifat sementara, tentu saja).
rbrito
5

Belum. Menurut laporan bug yang sedang terbuka ini sepertinya kernel itu sendiri gagal dikompilasi.

Cristian Măgherușan-Stanciu
sumber
Laporan bug berisi entri pada akhirnya yang menghubungkan ke proyek LLVM Linux oleh Bryce Lelback. Bryce adalah orang yang sama yang memulai utas diskusi Oktober 2010 Clang membangun Kernel Linux yang berfungsi (Boot to RL5 dengan SMP, networking dan X, self hosts) Utas itu adalah sumber untuk kutipan "kernel sedang bekerja" dalam pertanyaan saya. Saya akan mengawasi proyek-lll.
@James Satu lagi pengingat sejak Anda menyebutkan menerima: jika Anda mendaftar di SF dengan OpenID yang sama dengan yang Anda gunakan di sini, Anda harus dapat menerima jawaban di sini
Michael Mrozek
2

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).

jmtd
sumber
Bukankah biner pengguna akhir bagian dari arsip Debian?
tshepang
1
Ya, dan itu dibangun dengan gcc. Terpisah dari biner pengguna akhir, paket sumber dibangun kembali sebagai bagian dari beberapa proses integrasi berkelanjutan, beberapa di antaranya menggunakan kompilator / linker / libc tool tool alternatif.
jmtd