history

青木日記 RSS

<前の日 | この月 | 次の日>

2002-12-02

GHC リベンジ

せっかく glibc 2.2 になったことだし、 やはり GHC を試さねば。 バイナリを取ってきてブートストラップする。 バイナリのインストールは ./configure; make install で何事もなく終了。 しかし…。

~/s/src/tmp/ghc-5.04.1 % ghc --help
/usr/lib/ghc-5.04.1/ghc-5.04.1: error while loading shared libraries: libreadline.so.4: cannot open shared object file: No such file or directory

むむ。

~/s/src % ls /usr/lib/libreadline.*
/usr/lib/libreadline.a   /usr/lib/libreadline.so.3
/usr/lib/libreadline.so  /usr/lib/libreadline.so.3.0

readline が古い。 これはいつも通り ring サーバから取る。 これのインストールは簡単だからどうでもいいとしよう。 他にはなんか足りないものはないだろうね。

~/s/src % ldd /usr/lib/ghc-5.04.1/ghc-5.04.1
        libdl.so.2 => /lib/libdl.so.2 (0x40019000)
        libreadline.so.4 => not found
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x4001d000)
        libm.so.6 => /lib/libm.so.6 (0x4005d000)
        libc.so.6 => /lib/libc.so.6 (0x4007e000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

readline だけのようだ。

そういえば libreadline ってどのくらい使われてるんだろ。 ついでなので依存チェックをしてみよう。 EPERM が出たりもしたけど邪魔なので消してある。

~/s/src % for i in /bin/* /usr/bin/* /usr/local/bin/* ~/bin/*
for> do
for>     (ldd $i | grep -q libreadline) && echo $i
for> done
/usr/bin/ftp
/usr/bin/gofc
/usr/bin/gofer
/usr/bin/pl
~/s/src %

ftp なんて入ってたんだ (ヲイ)。 pl ってなんだっけ。SWI-Prolog だった。 gofer はあれだな、Haskell の親戚だ。 gofc はそのコンパイラ。

readline は何も考えずにサクッと入った。

やっと GHC がコンパイルできる。 しかし欲を出して autoconf かけなおしてみたりして失敗した。 configure がなんかわけのわからんエラーになって止まる。 しかたがないのでアーカイブから展開しなおしてコンパイル。

~/s/src/ghc-5.04.1 % CC='gcc -pipe' CFLAGS=-O2 ./configure --prefix &> log.conf && make &> log.make && echo OK

コンパイルするのは ghc なのに、ついいつものクセで CC と CFLAGS を指定してしまう罠。 意味ないじゃん。

それにしても make にやたらと時間がかかる。 こんなに遅いのは最近めったにないなあ。 かつて 486 のマシンで libc をコンパイルしたときと 同じくらい遅いのではなかろうか。

ぐわっ! ar が! 最後の ar がめちゃくちゃ重い! なんかプロセスサイズが 300MB になってます (物理メモリ 256MB)。

今度は gcc が動き始めた。いったい何をやってるんだ。

また ar か。

二時間たってもまだ終わらない。

(07:20)

GHC リベンジ (2)

やっとコンパイル終わった。

~/s/src/ghc-5.04.1 % sudo make install &> log.inst && echo OK
OK
~/s/src/ghc-5.04.1 % rehash
~/s/src/ghc-5.04.1 % ghc --version
The Glorious Glasgow Haskell Compilation System, version 5.04.1

うーん、本当に自分でコンパイルしたやつなのか、 見ためにはわかんないのが残念だ。

というか、もうバイナリがあるのにわざわざコンパイルして どうするのか 30 分ほど問い詰めなければならないかもしれない。

(07:41)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS