Pada umumnya distro Linux menggunakan glibc
sebagai pustaka C. Namun, ada juga yang menetapkan musl
sebagai pustaka C, misalnya Void GNU/Linux. Distro ini yang saya gunakan sekarang.
Ketika saya ingin compile kernel, saya mendapat masalah seperti di gambar.
Saya bingung apakah ada yang salah, apakah karena saya memakai clang, apakah ada config yang harus diaktifkan, atau apakah harus menggunakan GCC? Setelah saya bertanya di grup Telegram Void Linux, mereka berkata bahwa dibutuhkan patch tambahan agar compile bisa berjalan di distro berpustaka C musl
. Ketika saya pasang patch, compile dapat dilanjutkan.
Compile Kernel Linux Musl
Yang pertama kita unduh file Kernel Linux di https://kernel.org.
# cd /usr/src/
# wget https://git.kernel.org/torvalds/t/linux-6.1-rc7.tar.gz
Ekstrak file kernel tersebut.
# tar -xf linux-6.1-rc7.tar.gz
Agar tersusun rapi, buat folder khusus patch.
# cd linux-6.1-rc7
# mkdir tambal
Setelah itu, ubah direktori ke tambal dan unduh patch - patchnya.
# cd tambal/
# wget https://notabug.org/Marcoapc/voidxanmodK/raw/master/linux-clang/linux6.0-xanmod/patches/fix-musl-objtool.patch
# cd ../linux-6.1-rc7
Aplikasikan file patch ke file kernel linux. Pastikan kamu berada di folder Kernel Linux.
# patch -p1 < tambal/fix-musl-objtool.patch
Selesai, kamu tidak akan menemukan lagi error ketika compile di distro GNU/Linux yang menggunakan pustaka C musl
.
Komentar