作成日: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 に 特殊なモジュールを加えたもので、 これのビルドが結構厄介だ。
Tools をビルドしようとしてエラーがでる場合、 以下の手順に従うこと。
make: *** No rule to make target `<built-in>', needed by `miniperlmain.o'. Stop.
$sed \ -e '/^#.*<stdin>/d' \ -e '/^#.*<built-in>/d' \ -e '/^#.*<command line>/d' \ -e '/^#.*"-"/d' \
LANG
を C
に設定した後、
$SPEC/cpu2000/tools/src/ 以下で ./buildtools
を実行する。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 バイナリとして生成される。