EKOPath on FreeBSD

以下、既に賞味期限切れだけど、一応公開. 現在の状況は知りません. 少なくとも, supported platformからFreeBSDは消えたようです.

      • -

pathscale社のEKOPath 4というコンパイラオープンソース化したので, ビルドを試みる. supported platformにFreeBSDがあるようだ. このEKOPathというコンパイラgccをベースとしているらしい.

URLはhttps://github.com/path64/compilerである. git cloneでとれたような気がしたが, 今やるとできない. まあ, できなかったらDownloadリンク経由で落としてくる.

今回のビルド環境はFreeBSD 8-STABLE. gcc 4.2でないとコンパイルできないようだ. それから, 事前にcmakeをインストールしておくこと.

fortranコンパイラをビルドしたい場合は, まず, gcc4.2をビルドする. 今回は4.2.2をビルドした. gcc, g++, gfortranの三つをビルドすること. ports/lang/gcc42は, gfortranが書いてないので, 適当にコピーしてきて, --enable-languages= オプションを足して, オプション名やバージョン名などを適当に変えてビルドすれば良い. plistをきちんと管理するのが面倒なので, とりあえずenv PREFIX=/home/foo/bar make とかやって, /usr/local以外にインストールする. 終わったらパスを通しておくこと. fortranコンパイラをビルドしたくない場合はこれはやらなくてよい. base systemにgcc/g++ 4.2が入っていて, それで間に合うからである.

次に、ビルドに使うコンパイラの指定をする. cmakeでの正しい指定の仕方が分からないので,
path64-compiler-012db93/cmake/Modules/CheckFortran.cmake
に一ヶ所だけあるgfortranという文字列をgfortran42に変更する.
もう一つ, path64-compiler-012db93/cmake/Modules/GCCRuntimeDirs.cmake
に一ヶ所だけあるg++という文字列をg++42に変更する.
なお, gccはどうすればいいか分からない....
あとはREADME.txtに沿って,
mkdir work
cd work
cmake -DCMAKE_INSTALL_PREFIX=/home/hoge/hoge \
-DCMAKE_BUILD_TYPE=Debug -DPATH64_ENABLE_TARGETS="x86_64" \
-DPATH64_ENABLE_FORTRAN=ON \
-DPSC_CRT_PATH_x86_64=/usr/lib \
-DPSC_DYNAMIC_LINKER_x86_64=/libexec/ld-elf.so.1 \
-DPSC_LIBSUPCPP_PATH_x86_64=/home/foo/bar/lib/gcc42 \
-DPSC_LIBSTDCPP_PATH_x86_64=/home/foo/bar/lib/gcc42 \
-DPSC_LIBGCC_PATH_x86_64=/home/foo/bar/lib/gcc42 \
-DPSC_LIBGCC_EH_PATH_x86_64=/home/foo/bar/lib/gcc42 \
-DPSC_LIBGCC_S_PATH_x86_64=/home/foo/bar/lib \
../path64-compiler-012db93
などとする.

...で, 途中でビルドに失敗する. そのあといろいろ試行錯誤したが, うまくいかず.

なお, fortranなしだとビルドはうまくいく. インストールはしてないので, うまく動くかどうかは知らない.