Paket Glibc berisi library-library C utama. Library ini menyediakan rutin dasar untuk alokasi memori, pencarian direktori, membuka dan menutup file, membaca dan menulis file, penanganan string, pencocokan pola, aritmetika dll.

Instalasi (Ingat Selalu : Prinsip Kerja di Tutorial 10)

Perbaiki bug yang menghalangi Glibc dari penggunaan oleh GCC-4.5.2:

patch -Np1 -i ../glibc-2.13-gcc_fix-1.patch

Dokumentasi Glibc menyarankan untuk membuat Glibc diluar direktori sumber, jadi kita buat direktori baru diluar :

mkdir -v ../glibc-build
 cd ../glibc-build

Karena Glibc tidak lagi mendukung i386, developer menyarankan untuk menggunakan flag compiler -march=i486 saat membangun dengan mesin x86. Ada beberapa hal untuk menangani hal tersebut, tetapi pengujian menunjukkan bahwa flag yang terbaik ditempatkan didalam variabel “CFLAGS” daripada mengabaikan sepenuhnya apa yang digunakan oleh system build internal Glibc untuk CFLAGS, menerapkan flag baru pada konten CFLAGS yang ada dengan menggunakan file khusus configparms. Flag -mtune=native juga diperlukan untuk mereset nilai tertentu bagi -mtune yang berubah ketika menset -march

case `uname -m` in
 i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
 esac

Selanjutnya siapkan Glibc untuk kompilasi :

../glibc-2.13/configure --prefix=/tools \
 --host=$LFS_TGT --build=$(../glibc-2.13/scripts/config.guess) \
 --disable-profile --enable-add-ons \
 --enable-kernel=2.6.22.5 --with-headers=/tools/include \
 libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes

Keterangan :
–host=$LFS_TGT, –build=$(../glibc-2.13/scripts/config.guess)

Efek dari kombinasi diatas adalah sistem build Glibc akan mengkonfigurasi dirinya sendiri untuk melakukan cross-compile, menggunakan cross-linker dan cross-compiler di /tools

–disable-profile

Opsi ini membangun library tanpa melakukan profiling informasi.  Jangan gunakan opsi ini jika profiling di perangkat sementara anda butuhkan.

–enable-add-ons

Opsi ini memberitahukan kepada Glibc untuk menggunakan add-on NPTL sebagai library threading-nya.

–enable-kernel=2.6.22.5

Opsi ini memberitahukan kepada Glibc untuk mengkompilasi library dengan dukungan untuk kerenl Linux 2.6.22.5 atau yang lebih baru. Penggunaan kernel yang lebih tua dari itu tidak akan diperkenankan.

–with-headers=/tools/include

Opsi ini memberitahukan kepada Glibc untuk mengkompilasi  dirinya sendiri terhadap header yang baru saja diinstall di direktori tools, sehingga ia tahu dengan tepat fitur mana di kernel dan mengoptimalkan dirinya sendiri secara sesuai.

libc_cv_forced_unwind=yes

Linker yang diinstall di bagian sebelumnya Binutils-2.21 – Pass 1” bersifat cross-compile dan karenanya tidak dapat digunakan hingga Glibc diinstall. Ini berarti bahwa test pengkonfigurasian untuk dukungan force-unwind akan gagal, karena ia bergantung pada linker yang berfungsi. Variabel libc_cv_forced_unwind=yes dipasang dalam rangka menginformasikan proses konfigurasi bahwa dukungan force-unwind tersedia tanpa harus melakukan pengujian.

libc_cv_c_cleanup=yes

Sama dengan diatas, kita memasang libc_cv_c_cleanup=yes agar pengkonfigurasian tidak melakukan test sehingga dukungan C cleanup handling dapat dikonfigurasi.

Sepanjang proses diatas, peringatan berikut mungkin muncul :

configure: WARNING:
*** These auxiliary programs are missing or
*** incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.

Tidak adanya atau tidak kompatibelnya program msgfmt umumnya tidak merusak. Program msgfmt adalah bagian dari paket Gettext yang seharusnya disediakan oleh distro yang menjadi host tempat kita bekerja.

Selanjutnya kompilasi paket :

make

Dan install paket :

make install

Bersambung (rezaervani@gmail.com)

Tutorial Sebelumnya :

Iklan