Haskell GHC 7.0.4 on CentOS 5.8

さくらのVPSを借りたら CentOS 5.8 で、GHCの新しめのバイナリはglibcのバージョン違いで動かなかったので、 Haskell GHC 7.0.2 on CentOS 5.5 http://klevstul.posterous.com/haskell-ghc-702-on-centos-55 という記事を参考に自分でビルド。

1. この記事に従い GHC 6.12.3 のバイナリをインストール。

2. この記事では色々なパッケージを手でインストールしていたが、今はcabal-installに付属のbootstrap.shを使ってcabal-installをインストールすれば良いので楽ちん。

3. この記事では新しいGHCをビルドするのにgcc44を使っていたが、とりあえず試しにデフォルトのgcc(gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52))で試したところ、途中で以下のようなエラーになってしまった。

"inplace/bin/ghc-stage1" -package-name rts -shared -dynamic -dynload deploy -no-auto-link-packages `cat rts/libs.depend` rts/dist/build/Adjustor.dyn_o (中略) rts/dist/build/AutoApply.dyn_o -o rts/dist/build/libHSrts-ghc7.0.4.so
/usr/bin/ld: rts/dist/build/RtsStartup.dyn_o: relocation R_X86_64_PC32 against `StgRun' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value

仕方ないので諦めてgcc44(gcc44 (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3))を使ったらうまくいった。

メモリが512MBしかないので、GHCのビルドはキツイかなと思ったけど、それもなんとかなったようだ。