戻る

前へ| 次へ

bash shell 再 ビルド その1

大きさの比較の為 新しく ビルドします。

# 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

するだけで良いのです。まあ大きさを比較するために 最初からやりなおし と言う形にします。

bash の ビルド

./configure --enable-minimal-config --host=i386-pc-linux-gnu

# 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

それでは 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 するのですが その前に 現状を見てから 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 作成


前へ| 次へ

戻る

Copyright © 2006.-2010. nyantarou All Rights Reserved.