大きさの比較の為 新しく ビルドします。
# pwd /home/qpo/proj/1002_Saving_Space # cp /dokoka/hokannbash/bash-3.0.16.tar.gz . # tar zxvf bash-3.0.16.tar.gz # cd bash-3.0.16
通常は 既に作成された bash-3.0.16 ディレクトリ へ移動して
# make distclean
するだけで良いのです。まあ大きさを比較するために 最初からやりなおし と言う形にします。
# export CC="gcc -mcpu=i386"
# echo $CC
gcc -mcpu=i386
# { time ./configure --enable-minimal-config --host=i386-pc-linux-gnu \
2>&1 | tee log-configure ;}
...
config.status: creating po/Makefile
config.status: executing default commands
real 2m27.790s
user 1m46.130s
sys 0m33.410s
今回は --enable-static-link 無し で configure します Simple Prototype の場合は static-link を有効にしてい ました。以下参考
# ./configure --enable-static-link \
--enable-minimal-config --host=i386-pc-linux-gnu
それでは make します。
# { time make 2>&1 | tee log-make ;} ... ls -l bash -rwxr-xr-x 1 root root 1848675 Aug 23 08:38 bash size bash text data bss dec hex filename 287936 7800 10224 305960 4ab28 bash real 3m22.245s user 3m3.030s sys 0m10.830s
そうして strip するのですが その前に 現状を見てから strip します。
# ls -l bash -rwxr-xr-x 1 root root 1848675 Aug 23 08:38 bash* # strip bash # ls -l bash -rwxr-xr-x 1 root root 299440 Aug 23 08:50 bash*
ちなみに statically linked, stripped で 作成したものは
# file ../../1001_Simple_Prototype/bash-3.0.16/bash ../../1001_Simple_Prototype/bash-3.0.16/bash: ELF 32-bit LSB executable,\ Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, statically linked, stripped # ls -l ../../1001_Simple_Prototype/bash-3.0.16/bash -rwxr-xr-x 1 root root 654620 Aug 22 23:46 ../../1001_Simple_Prototype/bash-3.0.16/bash*
単体では 凄く小さくなっているようですが Shared Libraries が 必要にな りますので 損得は まだ不明です。
にゃんたろう 拝!
2010年 8月23日 (月) 21:01:07 JST 作成