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
Code language: Shell Session (shell)
Ekstrak file kernel tersebut.
# tar -xf linux-6.1-rc7.tar.gz
Code language: Shell Session (shell)
Agar tersusun rapi, buat folder khusus patch.
# cd linux-6.1-rc7
# mkdir tambal
Code language: Shell Session (shell)
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
Code language: Shell Session (shell)
Aplikasikan file patch ke file kernel linux. Pastikan kamu berada di folder Kernel Linux.
# patch -p1 < tambal/fix-musl-objtool.patch
Code language: Shell Session (shell)
Selesai, kamu tidak akan menemukan lagi error ketika compile di distro GNU/Linux yang menggunakan pustaka C musl
.
Leave a Reply