2009年10月23日

[debian-users:53221] Re: バージョンの異なる同一ソフトが2つ同時に存在する不具合の解消方法について

On Fri, 23 Oct 2009 15:42:34 +0900
Satoru Otsubo <trnsnt@xxxxx> wrote:

こんばんは、芳賀です。
> > てことは、wvstreams をビルドしたときに、/opt/hoge にインストールされた
> > dbus のライブラリが正常に検出されていない(よって、ちゃんとリンクされていない)
> > のに、wvstreams が正常にビルドされた「ように終了してしまった」か、インストール
> > したバージョンの dbus では、`dbus_message_set_serial'、`dbus_message_lock'、

> > `dbus_message_demarshal_bytes_needed' という三つの関数がサポートされて
> > いない、ということになるんでしょうか。はてさて...

> (6)これらより、pathfinderのmakeの際に、/opt/hoge/lib/libdbus-1.soではなく
> /usr/lib/libdbus-1.soを探 しにいったということでしょうか?

私見では、libwvdbus.so が作成されたときだと思います。この共有ライブラリ
に登録されている関数が使用している dbus の関数(つまり
`dbus_message_set_serial'
`dbus_message_lock'、
`dbus_message_demarshal_bytes_needed'
の三つ)が、libwvdbus.so の作成時にリンクした dbus のライブラリ内に無
かったということだと思います。

私の環境(Debian 5.0.3 "lenny")にインストールされている dbus のライ
ブラリでは、

$ ls -l /usr/lib/libdbus-1.*
-rw-r--r-- 1 root root 574912 2009-06-26 06:49 /usr/lib/libdbus-1.a
lrwxrwxrwx 1 root root 18 2009-09-28 14:27 /usr/lib/libdbus-1.so -> libdbus-1.so.3.4.0
lrwxrwxrwx 1 root root 18 2009-09-23 13:40 /usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.4.0
-rw-r--r-- 1 root root 223116 2009-06-26 06:49 /usr/lib/libdbus-1.so.3.4.0

では、以下のように、

$ nm -D /usr/lib/libdbus-1.so | grep -i dbus_message_set_serial
$ nm -D /usr/lib/libdbus-1.so | grep -i dbus_message_lock
$ nm -D /usr/lib/libdbus-1.so | grep -i dbus_message_demarshal_bytes_needed

はいずれもヒットしません。

libwvdbus.so というライブラリが wvstreams-4.6.1 をビルドしたときに作成
されるとすれば、そのとき参照された dbus のライブラリが /usr/lib 以下のもの
だったということではないかと推測します。

蛇足ですが、共有ライブラリに対して nm コマンドを使うときって、"-D" オプショ
ンが必要だったりしませんか?私の環境では必要だったんですが...
--
Yasufumi Haga <yasufumi.haga@xxxxx>


投稿者 xml-rpc : 2009年10月23日 19:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/89634
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。