[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netbsd,09552] sun-jdk6 could not work
- To: netbsd@xxxxxxxxxxxxx
- Subject: [netbsd,09552] sun-jdk6 could not work
- From: Keisuke YOSHIDA <kay@xxxxxxxxxxxx>
- Date: Fri, 30 May 2008 22:29:20 +0900
kayです。
ちょっと java で遊んでみようかと思いまして amd64 で
/usr/pkgsrc/lang/sun-jdk6 をインストールしてみたんですが、実行すると以
下のようになってしまいます。
kay@gaia[612] sun6-java -v
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.
kay@gaia[613]
動作環境は以下の通り
kay@gaia[613] uname -a
NetBSD gaia.kaynet.or.jp 4.99.63 NetBSD 4.99.63 (GAIA) #0: Thu May 29 00:28:32 JST 2008 root@xxxxxxxxxxxxxxxxx:/usr/src/obj.x86_64/sys/arch/amd64/compile/GAIA amd64
kay@gaia[614]
LD_LIBRARY_PATH がおかしいのかと思いましたが、色々いじっても動いてく
れません。
仕方なく ktrace をとってみると最後の方は以下のようになっていました。
どうやら実行ファイルのパスを基準に libjava.so を探しているっぽい感じで
す。
13116 1 java RET brk 134557696/0x8053000
13116 1 java CALL brk(0x8074000)
13116 1 java RET brk 134692864/0x8074000
13116 1 java CALL netbsd32_readlink(0x8050eb1,0xffffb870,0xfff)
13116 1 java NAMI "/emul/linux32/proc/self/exe"
13116 1 java RET netbsd32_readlink 1
13116 1 java CALL netbsd32_write(2,0x80511c0,0x21)
13116 1 java GIO fd 2 wrote 33 bytes
"Error: could not find libjava.so\n"
13116 1 java RET netbsd32_write 33/0x21
13116 1 java CALL netbsd32_write(2,0x8051140,0x32)
13116 1 java GIO fd 2 wrote 50 bytes
"Error: could not find Java 2 Runtime Environment.\n"
13116 1 java RET netbsd32_write 50/0x32
13116 1 java CALL exit_group(2)
そこでちょっと試してみました。NetBSD のネイティブバイナリでは以下の
ようになります。
kay@gaia[614] ls -l /proc/self/exe
lr-xr-xr-x 1 root wheel 7 May 30 22:12 /proc/self/exe -> /bin/ls
kay@gaia[615]
正常に動いているようです。次に linux のバイナリの場合。
kay@gaia[615] /emul/linux32/bin/ls -l /proc/self/exe
lr-xr-xr-x 1 root wheel 1 2008-05-30 22:12 /proc/self/exe -> /
kay@gaia[616] /emul/linux32/bin/ls -l /emul/linux32/proc/self/exe
lr-xr-xr-x 1 root wheel 1 2008-05-30 22:12 /emul/linux32/proc/self/exe -> /
kay@gaia[617] ls -l /emul/linux32/proc/self/exe
lr-xr-xr-x 1 root wheel 7 May 30 22:13 /emul/linux32/proc/self/exe -> /bin/ls
kay@gaia[618]
というわけで /proc/self/exe が linux エミュレーションの場合に正常に
動作しないようで、そのせいで sun-jdk6 が正しく動かないようです。
ちなみに i386 でも、以下のように駄目のようです。
kay@athlon64[514] uname -a
NetBSD athlon64.kaynet.or.jp 4.99.63 NetBSD 4.99.63 (ATHLON64) #0: Mon May 19 01:37:37 JST 2008 root@xxxxxxxxxxxxxxxxxxxxx:/usr/src/obj.i386/sys/arch/i386/compile/ATHLON64 i386
kay@athlon64[516] ls -l /proc/self/exe
lr-xr-xr-x 1 root wheel 7 May 30 22:25 /proc/self/exe -> /bin/ls
kay@athlon64[517] /emul/linux/bin/ls -l /proc/self/exe
lr-xr-xr-x 1 root wheel 1 2008-05-30 22:25 /proc/self/exe -> /
kay@athlon64[518] /emul/linux/bin/ls -l /emul/linux/proc/self/exe
lr-xr-xr-x 1 root wheel 1 2008-05-30 22:25 /emul/linux/proc/self/exe -> /
kay@athlon64[519]
だれか、こうなっている理由わかる人はいないでしょうか?