* ARM Thumb 命令セット busybox のコンパイル [#g263ce44] 昨日,ToDo を書き出してみたら大変そうで少し萎えたので,今回は趣向を変えて「ざっくりやってみた」系で行ってみます. アセンブリコードをちくちく見るのも少し飽きてきたしね. というわけで, > busybox を thumb 命令でコンパイル に挑戦. ** 環境 [#fa859b35] :CPU|Marvell 88F5182 (I-O DATA HDL-GXR) :カーネル|Linux 2.6.28-rc9 :ユーザランド|debian lenny :ABI|EABI ** 条件 [#scfe854b] - ソースは busybox-1.15.2.tar.bz2 を使用 - make menuconfig のオプションは手を付けずにデフォルト設定でコンパイル -- ただし,thumb バイナリを生成する時は,CFLAGS に -mthumb -mthumb-interwork を付けるように指示する ** 結果 [#lba62b00] プログラムサイズはこんな感じです. $ ls -l busybox-* -rwxr-xr-x 1 imai imai 834984 2009-11-20 06:44 busybox-arm -rwxr-xr-x 1 imai imai 622548 2009-11-20 21:27 busybox-thumb サイズは 75% 程度 = 25% 削減になってますね. で,thumb の実行ファイルも実行してみました. $ ./busybox-thumb sh $ ls AUTHOR arch editors printutils Config.in archival examples procps INSTALL busybox-arm findutils runit LICENSE busybox-thumb include scripts Makefile busybox_unstripped init selinux Makefile.custom busybox_unstripped.map libbb shell Makefile.flags busybox_unstripped.out libpwdgrp sysklogd Makefile.help console-tools loginutils testsuite README coreutils mailutils util-linux TODO debianutils miscutils TODO_config_nommu docs modutils applets e2fsprogs networking $ exit sh と ls は動作しました :)