Katsutoshi Itoh
cut-s****@maste*****
2004年 12月 19日 (日) 18:03:08 JST
伊東です。 NetBSD 2.0 への移行をやっているところです。 現状 Gauche-gl が check で落ちる状況です。 cut-sea @ jini> uname -rms NetBSD 2.0 i386 cut-sea @ jini> setenv | grep LD_LIBRARY_PATH LD_LIBRARY_PATH=/usr/local/lib:/usr/pkg/lib:/usr/X11R6/lib:/usr/lib cut-sea @ jini> gosh -V Gauche scheme interpreter, version 0.8.3 [euc-jp] cut-sea @ jini> gauche-config --reconfigure ./configure '--with-slib=/usr/pkg/share/slib' '--with-local=/usr/pkg' \ '--with-prefix=/usr/local' '--enable-ipv6' \ '--with-rpath=/usr/local/lib:/usr/pkg/lib:/usr/lib' \ '--with-iconv=/usr/pkg' Gauche-0.8.3 は上の configure で make check まで全Pass。 インストール済。 いくつかこれまでに書いたスクリプトを実行してみて問題なさそう。 Gauche-gtk-0.4.1 も make check まで全Pass。 インストール済。example のサンプルも動作確認。 ところが、Gauche-gl-0.3.1 が make check でエラー発生。 cut-sea @ jini> make check cd src; make all cd doc; make all cd src; make check /usr/local/bin/gosh -I. -I../lib test-math3d.scm > test.log Testing gl.math3d ... passed. /usr/local/bin/gosh -I. -I../lib test.scm >> test.log Testing GL ... *** ERROR: failed to link "libgauche-gl" dynamically: /usr/pkg/lib/libGL.so.1: Undefined PLT symbol "XFreePixmap" (symnum = 22) Stack Trace: _______________________________________ 0 (%require feature) At line 52 of "/usr/local/share/gauche/0.8.3/lib/gauche-init.scm" *** Error code 70 Stop. make: stopped in /home/cut-sea/compile/Gauche-gl-0.3.1/src *** Error code 1 Stop. make: stopped in /home/cut-sea/compile/Gauche-gl-0.3.1 こんな風にこれまでも良く見た様なエラーです。 libGL.so.1 ってのに XFreePixmap が含まれてないのか? まぁ今までの経験からするとあるんだろうけど念のため。 cut-sea @ jini> nm /usr/pkg/lib/libGL.so.1 | grep XFree 001c8d0c t Fake_glXFreeContextEXT 001c91d3 t Fake_glXFreeMemoryNV U XFree U XFreeColors U XFreeFontInfo U XFreeGC U XFreePixmap <<== これ 001c47b7 T glXFreeContextEXT 001c55d2 T glXFreeMemoryNV ありますよね。 cut-sea @ jini> ldd libgauche-gl.so libgauche-gl.so: -lstdc++.5 => /usr/lib/libstdc++.so.5 -lm.0 => /usr/lib/libm387.so.0 -lm.0 => /usr/lib/libm.so.0 -lgcc_s.1 => /usr/lib/libgcc_s.so.1 -lGLU.1 => /usr/pkg/lib/libGLU.so.1 -lGL.1 => /usr/pkg/lib/libGL.so.1 -lcrypt.0 => /usr/lib/libcrypt.so.0 -lutil.7 => /usr/lib/libutil.so.7 -lgauche => /usr/local/lib/libgauche.so -lICE.6 => /usr/X11R6/lib/libICE.so.6 -lSM.6 => /usr/X11R6/lib/libSM.so.6 cut-sea @ jini> ldd libgauche-glut.so libgauche-glut.so: -lglut.3 => /usr/pkg/lib/libglut.so.3 -lstdc++.5 => /usr/lib/libstdc++.so.5 -lm.0 => /usr/lib/libm387.so.0 -lm.0 => /usr/lib/libm.so.0 -lgcc_s.1 => /usr/lib/libgcc_s.so.1 -lGLU.1 => /usr/pkg/lib/libGLU.so.1 -lGL.1 => /usr/pkg/lib/libGL.so.1 -lcrypt.0 => /usr/lib/libcrypt.so.0 -lutil.7 => /usr/lib/libutil.so.7 -lgauche => /usr/local/lib/libgauche.so -lICE.6 => /usr/X11R6/lib/libICE.so.6 -lSM.6 => /usr/X11R6/lib/libSM.so.6 という感じで問題なさそうな気がする。 これまでの感じからmake 自体は通っているので例によって make check 時点でのロードパス設定とかその辺の問題だけと思って、 とりあえずインストールしてみました。 結果はインストール後に gl や gl.glut を use しようとすると同じエラーを食らいます。 cut-sea @ jini> gosh gosh> (use gl) *** ERROR: failed to link "libgauche-gl" dynamically: /usr/pkg/lib/libGL.so.1: Undefined PLT symbol "XFreePixmap" (symnum = 22) Stack Trace: _______________________________________ 0 (%require feature) At line 52 of "/usr/local/share/gauche/0.8.3/lib/gauche-init.scm" gosh> (use gl.glut) *** ERROR: failed to link "libgauche-glut" dynamically: /usr/pkg/lib/libglut.so.3: Undefined PLT symbol "XFreePixmap" (symnum = 22) Stack Trace: _______________________________________ 0 (%require feature) At line 52 of "/usr/local/share/gauche/0.8.3/lib/gauche-init.scm" ところが、一回 gtk を use してやると gl だけは use できる。ってのが謎。 gosh> (use gtk) (#<module gtk> #<module gauche.interactive>) gosh> (use gl) (#<module gl> #<module gtk> #<module gauche.interactive>) gosh> (use gl.glut) *** ERROR: failed to link "libgauche-glut" dynamically: /usr/pkg/lib/libglut.so.3: Undefined PLT symbol "XmuLookupStandardColormap" (symnum = 325) Stack Trace: _______________________________________ 0 (%require feature) At line 52 of "/usr/local/share/gauche/0.8.3/lib/gauche-init.scm" どこで落ちるのか見るのに /usr/local/share/gauche/0.8.3/lib/gl.scm を一個ずつ評価すると、 予想通り (dynamic-load "libgauche-gl" :export-symbols #t) ここでエラーが出てました。 毎回似たようなところで申し訳ないのですが、どう調べて行けは良いでしょうか?