Tweet

ARM Thumb 命令セット busybox のコンパイル

昨日,ToDo を書き出してみたら大変そうで少し萎えたので,今回は趣向を変えて「ざっくりやってみた」系で行ってみます. アセンブリコードをちくちく見るのも少し飽きてきたしね.

というわけで,

busybox を thumb 命令でコンパイル

に挑戦.

環境

CPU
Marvell 88F5182 (I-O DATA HDL-GXR)
カーネル
Linux 2.6.28-rc9
ユーザランド
debian lenny
ABI
EABI

条件

  • ソースは busybox-1.15.2.tar.bz2 を使用
  • make menuconfig のオプションは手を付けずにデフォルト設定でコンパイル
    • ただし,thumb バイナリを生成する時は,CFLAGS に -mthumb -mthumb-interwork を付けるように指示する

結果

プログラムサイズはこんな感じです.

$ 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 は動作しました :)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 05:10:32 (3715d)