Gauche > Archives > 2012/02/18

2012/02/18 08:26:28 UTCshiro
#
どう考えても動くはずなのに動かないというバグ、よりも、どう考えても動かないはずなのに動いちゃってるというバグ、の方が難しい。気がする。というか後者はより深いところで大きな勘違いをしているという感じか。
2012/02/18 09:58:32 UTC(び)
#
*** ERROR: Autoloaded symbol file-exists? is not defined in the module gauche.fileutil
#
make install-checkすると出る...(FreeBSD 8.2R)
2012/02/18 10:00:55 UTCshiro
#
あ、それ、前のバージョンのlibgauche.soが残ってるんじゃないかな。
#
(普通にやって残っちゃうとしたらなんか対策しないとだめだな)
2012/02/18 10:07:17 UTC(び)
#
ほほー
#
make install前に古いのを手動で消してみます。HEADをごんごん上げて来てるだけなので、リリースから上げるなら問題ないのかしらん
#
Lionだとmake install-checkもすんなり通りますね
2012/02/18 10:10:41 UTCshiro
#
Linuxでも、Jenkinsで回してる自動ビルドが同じことでこけたので、何かしら対策が必要かもしれません。
2012/02/18 10:14:19 UTC(び)
#
% ls -l /usr/local/lib
total 16019
drwxr-xr-x  7 root  wheel        7 Aug  6  2011 gauche-0.9/
-rwxr-xr-x  1 root  wheel  5547794 Feb 18 17:29 libgauche-0.9.so*
lrwxr-xr-x  1 root  wheel       20 Feb 13 10:27 libgauche-0.9.so.0@ -> libgauche-0.9.so.0.2
-rwxr-xr-x  1 root  wheel  5065847 Jul 29  2011 libgauche-0.9.so.0.1*
-rwxr-xr-x  1 root  wheel  5512005 Feb 13 10:27 libgauche-0.9.so.0.2*
#
何か変...
2012/02/18 10:15:11 UTCshiro
#
libgauche-0.9.so.0.2が残るのがおかしいですね。シンボリックリンクを作るスクリプトがおかしいのかな。
2012/02/18 10:16:32 UTC(び)
#
そして全部消してmake installしたら、libgauche-0.9.so.0.2がないと言われた。さっきの原因はこれっぽいですね
#
あるいは、0.9.1の頃から営々と/usr/local/libの下を掃除しなかったせいかもしれないですね。
2012/02/18 10:19:11 UTCshiro
#
srcの下にはlibgauche-0.9.so.0.2できてますよね?
2012/02/18 10:19:54 UTC(び)
#
% ls -l src/libgauche-*
-rwxr-xr-x  1 root    bizenn  5547794 Feb 18 19:18 src/libgauche-0.9.so*
lrwxr-xr-x  1 bizenn  bizenn       20 Feb 18 19:17 src/libgauche-0.9.so.0@ -> libgauche-0.9.so.0.2
-rwxr-xr-x  1 bizenn  bizenn  5547794 Feb 18 19:17 src/libgauche-0.9.so.0.2*
lrwxr-xr-x  1 bizenn  bizenn       56 Feb 18 19:11 src/libgauche-uvector.so@ -> /usr/home/bizenn/Gauche/ext/uvector/libgauche-uvector.so
#
ですが、/usr/local/lib/libgauche* を全部消してからビルドしたものをmake installすると
#
/libexec/ld-elf.so.1: Shared object "libgauche-0.9.so.0.2" not found, required by "gosh"
gmake[1]: *** [install] Error 1
gmake[1]: Leaving directory `/usr/home/bizenn/Gauche/src'
gmake: *** [install-pkg] Error 2
2012/02/18 10:21:05 UTCshiro
#
なんかへんだな。うちの環境だとlibgauche-0.9.soもlibgauche-0.9.so.0.2へのシンボリックリンクになる。
2012/02/18 10:21:08 UTC(び)
#
% ls -l /usr/local/lib/libgauche*       
-rwxr-xr-x  1 root  wheel  5547794 Feb 18 19:18 /usr/local/lib/libgauche-0.9.so*
#
コピーされてないっぽい
#
ちゃんとMakefileを読むべきかな
2012/02/18 10:23:47 UTCshiro
#
out-of-tree build関連でmakefileいじったから、何かへまったかも。
2012/02/18 10:31:32 UTC(び)
#
ちょっと夕食
2012/02/18 12:33:22 UTCshiro
#
make installでは、通常のinstallコマンドでまずlibgauche-0.9.soをコピーし、最後にmakeverslinkスクリプトでそれをlibgauche-0.9.so.0.2にリネームしてlibgauche-0.9.soからのリンクとする。ただし、makeverslinkスクリプト単独で重複して走らされた時に余計なことをしないように、libgauche-0.9.soが既にリンクなら何もしない。この後者の条件がうまく動いてないのかな。
#
だもんでlibgauche-0.9.soをコピーしたところで終わっちゃってる。