SPECcpu2000 のビルドメモ

作成日:2005.6.13

このページは 2004/3/27 の日記と 2005/1/24 の日記をまとめて作成。

はじめに

SPEC CPU2000 は C、C++、Fortran ソースコード配布されるベンチマークだが、 そのコンパイラ・計測・結果の比較のために Tools と呼ばれるコンパイラドライバーを用いる。 ベンチマークそのものをコンパイルする前にまず Tools のコンパイルが必要になる。

一応 代表的なアーキテクチャー(Linux/i386、Windows/i386、Solaris/SPARC、HP-UX/PA-RISC、AIX/POWER など) には バイナリが用意されているのだが、 新しいプラットフォームの場合 Tools のビルドからはじめる必要がある。

Tools の正体は perl5.005_03 をシュリンクした SPEC 自家製の Perl に 特殊なモジュールを加えたもので、 これのビルドが結構厄介だ。

IA-64/Linux (RedHat Enterprise Linux v3.0)

症状

Tools をビルドしようとしてエラーがでる場合、 以下の手順に従うこと。

make: *** No rule to make target `<built-in>', needed by `miniperlmain.o'.  Stop.
手順
  1. $SPEC/cpu2000/tools/src/perl5.005_03/makedepend.SH の L131 と L132 の間に赤字の行を加える。
    $sed \
         -e '/^#.*<stdin>/d' \
         -e '/^#.*<built-in>/d' \
         -e '/^#.*<command line>/d' \
         -e '/^#.*"-"/d' \
    
  2. $SPEC/cpu2000/tools/src/perl5.005_03/ext/DB_File/ 以下の ディレクトリを最新の DB_File モジュール (例えば これ) に入れ替える。

  3. 環境変数 LANGC に設定した後、 $SPEC/cpu2000/tools/src/ 以下で ./buildtools を実行する。

備考
176.gcc は Intel C++ Compiler v8.0 でビルドが可能だが、実行するとエラーになることがある。
そういう場合、バージョンを 8.0.0.58_pl063.1 以上に上げ -static-auto_ilp32 オプションを付けて ビルドするとうまくいくことがある。
警告が多くてコンパイルが止まる場合、 -wd180 -wd188 -wd256 -wd266 あたりを指定して止めると良い。
参考

x86-64/Linux (RedHat Enterprise Linux v3.0)

IA-64/Linux の修正も適用すること。

症状

Zlib のライブラリ(libz.a) がリンクできずエラーを出す。

修正

zlib-1.1.3 のコンパイル時に -fPIC が不足しているのが原因。 $SPEC/tools/src/buildtools の 95 行目に CFLAGS="-O3 -fPIC" を 追加するの修正可能。

diff cpu2000.old/tools/src/buildtools cpu2000.new/tools/src/buildtools
95c95
<     (cd $ZLIBSRC; ./configure; make) || die "Can't make zlib"
---
>     (cd $ZLIBSRC; CFLAGS="-O3 -fPIC" ./configure; make) || die "Can't make zlib"

Tools 自体は 64-bit バイナリとして生成される。

コメント

コメントを書き込む

TOP    掲示板    戻る
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp