Linux Tips

プログラムをi686に最適化するには

北浦訓行
2004/9/23

 「i386用」となっているRPMは、x86系CPUを搭載しているPCのほとんどで利用できる。しかし、i386用は最大公約数的なものであり、最新のCPUの機能を十分に活用しているとはいえない。そこで、SRPMからi686に最適化したRPMファイルを作成し、それをインストールする手順を紹介する。i686に最適化したからといって必ずしも体感速度が向上するわけではないが、数値演算を多用するプログラムなどは処理時間が短くなる可能性がある。

 今回は、OpenOffice.orgをi686に最適化してみる。使用したディストリビューションはFedora Core 2だ。Fedora Core 2のFTPサイトからFedora Projectが作成したOpenOffice.orgのSRPMファイルをダウンロードする。Fedora Core 2が採用しているのは、OpenOffice.org 1.1.1で、ファイル名はopenoffice.org-1.1.1-4.src.rpmだ。

 ダウンロードしたファイルを適当なディレクトリに保存し、rpmbuildコマンドでRPMファイルを作成する。その際に、「--target i686」というオプションを付ける。これが、i686に最適化したRPMファイルを作成する指定だ。ちなみに、x86系のCPUで指定可能なオプションには、以下のようなものがある。

オプション
対応CPU
i386 i386およびその互換CPU
i486 i486およびその互換CPU
i586 Pentium、MMX Pentiumおよびその互換CPU
i686 Pentium Pro、Pentium II、Pentium III、Pentium4、Celeronなど
k6 K6、K6-2、K6-III
athlon Athlon、Athlon MP、Athlon XP
x86_64 Opteron、Athlon64、Xeon(EM64T)

 rootになって以下のコマンドを実行すると、i686に最適化したRPMファイルが作成される。

# rpmbuild --rebuild --target i686 openoffice.org-1.1.1-4.src.rpm

 OpenOffice.orgは非常に大きなプログラムなので、RPMファイルの作成には長い時間が必要となる。1GHzのCeleronで実行したところ、14時間以上かかった。また、リビルドにはディスクにかなりの空き容量が必要だ(7GBの空きがあるシステムでリビルドに成功)。

 RPMファイルは、/usr/src/redhat/RPMS/i686というディレクトリに作成される。

# cd /usr/src/redhat/RPMS/i686
# ls
openoffice.org-1.1.1-4.i686.rpm            openoffice.org-i18n-1.1.1-4.i686.rpm
openoffice.org-debuginfo-1.1.1-4.i686.rpm  openoffice.org-libs-1.1.1-4.i686.rpm

 RPMファイルは、以下のようにインストールする。ファイル名に「debuginfo」と入ったRPMファイルも作成されるが、これはインストールする必要はない。また、使用したシステムでは一部のファイルがコンフリクトしているというエラーメッセージが表示されたため、--forceオプションを付けてアップデートした。

# rpm -Uhv --force openoffice.org-1.1.1-4.i686.rpm openoffice.org-i18n-1.1.1-4.i686.rpm openoffice.org-libs-1.1.1-4.i686.rpm
Preparing...                ################################# [100%]
   1:openoffice.org-libs    ################################# [ 33%]
   2:openoffice.org-i18n    ################################# [ 67%]
   3:openoffice.org         ################################# [100%]

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間