[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:06907] Re: Don't exist /usr/lib/libpthread.so



深川です。

# reply 遅くなりました。

From: KOJIMA Mitsuhiro <kojima@linet.gr.jp>
Date: Sun, 20 Aug 2000 16:31:23 +0900
Message-ID: <20000820163050C.kojima@linet.gr.jp>
> >   ところで、ここで (疑問 2) なのですが、
> > /lib/libpthread* と /usr/lib/libpthread* 、何故 2 つあるのでしょう?
> > 配置だけの問題でしょうか? それともものが違う?
> 
> 私が理解している範囲では lib**.so は実行時にリンクする共有ライブラリで、
> lib**.a は static リンクするためのライブラリです。

  そうですね。

  で、ちょっと質問の意図がうまく伝わらなかったかと思うのですが、
「何故 2 つあるのでしょう?」とは lib*.so と lib*.a という意味では
なく、/lib と /usr/lib の両方に pthread ライブラリが存在する理由を
お聞きしたかったのですが...。もし、何か明確な理由、気づき事項など
ありましたら、お教えいただけると幸いです。

> ソースコードを読んでるわけではないので、間違っていればぜひ訂正して欲し
> いのですが、共有ライブラリを使うプログラムの場合、コンパイル時には共有
> ライブラリを見ずに、static 用のライブラリを見て各種シンボルの参照を解
> 決しているので、プログラムをコンパイルするためには lib**.a が必要なの
> だ、と理解しています。
> 
> だから、今回の libpthread の問題では、/lib/libpthread.so と
> /usr/lib/libpthread.a のシンボル情報が食いちがっているような気がします。
> 
> # うーむ、、でも lib*.so でもシンボルは見えるので、別に lib**.a が必須
> # なわけではない気もするなぁ、、このあたりは ld 回りを調べるしかない
> # か。。

  私も ld のソースを見た訳ではないし、これが普遍的な実装なのかどうかも
知らないのですが、少なくとも Linux では lib*.a がなくとも dynamic symbol
(nm --dynamic で表示) を持つ lib*.so さえあればリンクできます。
# あればとゆーか、lib*.so から dynamic symbol を削除する方法ってある
# のかな?

> 手もとでは、次のリリース(2.1)に向けた作業で時間を取られていて、この問
> 題を追及するのは困難なのですが、追及していただけるようでしたら、Plamo
> 2.0 で使っている glibc-2.1.2 のソースコードおよびパッチは
(snip)
> がありますのでご利用くださいませ。
> 
> # ただ、libc 回りは失敗するとシステムが動作不能になるので、十分御注意
> # くださいませ。

  どこまでできるかは分かりませんけれど、暇を見て調べてみたいと思います
(期待はしないで〜) 。
# libc をいじるとなると、一台、実験マシンを用意しないといけないなぁ。
## Plamo 2.1 期待しています。

-- 
// 深川 誠司 (Seiji Fukagawa)      | http://www1.plala.or.jp/fukafuka/
// XDriller 0.7.0 (α版) 公開中... | mailto: fukafuka@fsinet.or.jp     

Follow-Ups
[plamo:06908] gcl, cyamauch
References
[plamo:06827] Re: Don't exist /usr/lib/libpthread.so, KOJIMA Mitsuhiro
[plamo:06851] Re: Don't exist /usr/lib/libpthread.so, Seiji Fukagawa
[plamo:06862] Re: Don't exist /usr/lib/libpthread.so, KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム