Cara Murah Membangun Toolchain

Gunakan Crosstool-NG versi impovisasi dari crosstool. Berikut resep paketnya:

 binutils-2.20
 cloog-ppl-0.15.9
 gdb-6.8
 glibc-2.9
 glibc-ports-2.9
 gmp-4.3.2
 linux-2.6.32.25
 mpfr-2.4.2
 ncurses-5.7
 ppl-0.10.2
 gcc-4.5.1
 mpc-0.8.1

Gunakan resep konfigurasi dari:

/usr/local/lib/ct-ng-{VERSION}/samples/* # ct-ng --prefix=/usr/local

CAVEAT: Jika anda memiliki koneksi internet yang minim, ada baiknya mendownload terlebih dahulu paket2 yang dibutuhkan sebelum mulai mengompilasi. Sementara ini, sudah berhasil dibangun toolchain dari konfigurasi arm-cortex_a8-linux-gnueabi bawaan ct-ng dengan config CT_ARCH_FLOAT_HW=y (Hardware FPU) dan FPU vfpv3-d16. Silahkan dicek di sini

CT_ARCH_ARCH="armv7-a"
CT_ARCH_CPU="cortex-a8"
CT_ARCH_TUNE="cortex-a8"
CT_ARCH_FPU="vfpv3-d16"
CT_ARCH_LE=y
CT_ARCH_32=y
CT_ARCH_BITNESS=32
CT_ARCH_FLOAT_HW=y
CT_CC_CORE_EXTRA_CONFIG="--with-float=hard"
CT_CC_EXTRA_CONFIG="--with-float=hard"

GCC 4.4.1 belum support -mfloat-abi=hard sedangkan GCC 4.4.1 versi CodeSourcery sudah memiliki fitur tersebut sama seperti GCC 4.5 versi FSF. Untuk membangun GCC 4.5 dibutuhkan MPC yang dapat diperoleh di sini

Untuk mengetesnya:

/path/to/toolchain/{toolchain-prefix}-gcc -mfpu={FPU} -O2 -S -c realtest.c -ftree-vectorize -mfloat-abi=hard

Di mana FPU adalah vfp, vfpv3-d16, neon

lalu

/path/to/toolchain/{toolchain-prefix}-readelf -a realtest.o | grep VFP
Tag_VFP_arch: VFPv3-D16  
Tag_ABI_VFP_args: VFP registers

ct-ng: makes difficult stuffs simple!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s