こんにちは、鶴谷です。 FreeBSD/amd64 6.1-PRERELEASEで、FreeBSD/i386上で作成した、 32-bitなスタティックリンクバイナリを実行すると、 セグメント違反で異常終了します。 これは「そんなもの」なのでしょうか? なお、ダイナミックリンクの32-bitバイナリや、スタティックリンクのamd64バイナリは、 どちらも問題ありませんでした。 また、amd64上で作成した32-bitな{スタティック|ダイナミック}リンクバイナリも動きます。
何でこんなことをしようとしたかというと、FreeBSD/amd64で32-bitバイナリが依存する 共有オブジェクトを調べようとしてうまくいかなかったからです。 amd64のlddでは ldd: bin/iputils: can't read program header ldd: bin/iputils: not a dynamic executable と表示されてうまくいきません。 i 386用のlddを持ってきて実行すると、なぜか引数に指定したバイナリが 実行されてしまいます。 そこで、i386上でスタティックリンクしたlddを作ってamd64上へ持っていけば 大丈夫かもしれないと、試してみたところ、セグメント違反になりました。 ちなみに、32-bitのlddも、amd64上で作れば、64-bitなlddと同じメッセージを出して うまくいかないようです。 # 64-bitなlddでも、32-bitなlddでも、きちんと依存するオブジェクトを表示できないのは、 #きっと何か原因があるのでしょうが、ここではそれはちょっと置いておきます。 -- [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED]