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

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



From: Seiji Fukagawa <fukafuka@fsinet.or.jp>
Subject: [plamo:06851] Re: Don't exist /usr/lib/libpthread.so
Date: Sat, 19 Aug 2000 22:03:31 +0900
Message-ID: <20000819220403F.fukafuka@fsinet.or.jp>

>   で、納得いかないという事で、/lib, /usr/lib をぐりぐりといじりながら
> もう少し調べてみました。

詳細な調査、ありがとうございます。(_ _)

先に白状しておきますが、私自身は thread 回りについては全然詳しくないの
で、libthread* を作成ミスしている可能性が高いですね。

> 
>   という訳で、先の xmms の configure 時の GTK+ 認識失敗の原因は、
> /usr/lib/libpthread.so がないことではなく、-L/usr/lib -lpthread のため
> /lib/libpthread.so ではなく /usr/lib/libpthread.a をリンクしていたため
> のようです。具体的になにがどう、となると、この先どうやって調べようか、
> ムムッとうなってしまうのですが...。(^^;
> 
>   ところで、ここで (疑問 2) なのですが、
> /lib/libpthread* と /usr/lib/libpthread* 、何故 2 つあるのでしょう?
> 配置だけの問題でしょうか? それともものが違う?

私が理解している範囲では lib**.so は実行時にリンクする共有ライブラリで、
lib**.a は static リンクするためのライブラリです。

ソースコードを読んでるわけではないので、間違っていればぜひ訂正して欲し
いのですが、共有ライブラリを使うプログラムの場合、コンパイル時には共有
ライブラリを見ずに、static 用のライブラリを見て各種シンボルの参照を解
決しているので、プログラムをコンパイルするためには lib**.a が必要なの
だ、と理解しています。

だから、今回の libpthread の問題では、/lib/libpthread.so と
/usr/lib/libpthread.a のシンボル情報が食いちがっているような気がします。

# うーむ、、でも lib*.so でもシンボルは見えるので、別に lib**.a が必須
# なわけではない気もするなぁ、、このあたりは ld 回りを調べるしかない
# か。。

>   そういう事ですか。ただ、この件なのですが、ソースからコンパイルしよう
> とすると、いくつものライブラリ (libtiff とか libpng とか...) で no symbols
> のため、./configure での認識に失敗 (たいていの場合は configure 中の
> テストプログラム (conftest) のコンパイル/リンクに失敗することが原因
> のようですが) してしまいます。
> 
>   失礼ですが、本当に strip -g なんでしょうか? strip -g では no symbols
> とはならないと思うのですが...。
> 
> # 例を挙げますと、お勧めパッケージをインストールした状態で、WindowMaker
> # 0.62.1 をソースからコンパイルしようとすると、configure で libtiff が
> # 認識されません。原因は /usr/lib/libtiff* が no symbols のため。
> # libtiff をソースから入れ直すと問題なし。コンパイルし直した libtiff に
> # strip -g しても no symbols とはならない。
> 

2.0 のリリース前にサイズをできるだけ小さくしようとライブラリ類を strip 
しすぎて動かなくなってしまったことがありまして、主要なライブラリは戻し
たつもりだったけど、このヘンのライブラリは戻しそこねていたみたいです m(_ _)m

手もとでは、次のリリース(2.1)に向けた作業で時間を取られていて、この問
題を追及するのは困難なのですが、追及していただけるようでしたら、Plamo
2.0 で使っている glibc-2.1.2 のソースコードおよびパッチは

ftp://sv.linuxjp.org/pub/Glibc2/ 以下に

glibc-2.1.2.tar.gz  (glibc-2.1.2 本体)
glibc-2.1.1pre3-localedef.fix.gz (日本語 locale 用パッチ)
glibc-crypt-2.1.tar.gz (crypt ライブラリ)
glibc-linuxthreads-2.1.2.tar.gz (thread ライブラリ)

がありますのでご利用くださいませ。

# ただ、libc 回りは失敗するとシステムが動作不能になるので、十分御注意
# くださいませ。

--------
こじま

Follow-Ups
[plamo:06907] Re: Don't exist /usr/lib/libpthread.so, Seiji Fukagawa
References
[plamo:06814] Don't exist /usr/lib/libpthread.so, Seiji Fukagawa
[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 ML 公開システム