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

Re: /etc/ld.so.confの設定について(wasRe:初めまして)



おはようございます。

齋藤@RITEです

大変、お返事が遅くなり申し訳ございませんでした。

的確かつ丁寧なご説明ありがとうございました。
まだ、何となくなんですが、理解できたように思います。

これからも、色々と御指導を頂くことがあると存じ上げますがよろしくお願い申
し上げます。


On Fri, 31 May 2002 10:26:27 +0900
Takahiro Kambe <taca@sky.yamashina.kyoto.jp> wrote:

> In message <20020531091725.C91C.TETUYA@rite.or.jp>
> 	on Fri, 31 May 2002 10:03:04 +0900,
> 	Tetsuya Saito <Tetsuya.Saito@rite.or.jp> wrote:
> > taca> NetBSD 1.5.Xは、ELFの実行形式を使用しています。ldconfig(8)はa.outの実
> > taca> 行形式のプログラムのために存在していて、NetBSD 1.4までのa.outの共有ラ
> > taca> イブラリのためにあると言って良いでしょう。
> > ここで、質問させてください。
> > たとえば、NetBSD 1.5.Xにおいて、APACHE等をbuildしたいと考えた場合、
> > /usr/local/ssl/libのライブラリをLINKさせようとしたときは、ldに対して
> > "-L/usr/local/ssl/lib -R/usr/local/ssl/lib"と言うように/usr/lib以外に入っ
> > ているライブラリすべてを列記する必要があると言うことでしょうか?
> そうです。cc(1)からは、-Wl,-R/usr/local/ssl/lib といった感じになるでしょ
> う。pkgsrcでは、そのあたりをすべて面倒見てくれます。
> 
> > もしくは、環境変数に対して、LD_LIBRALY_PATH、LD_RUN_PATHを設定する必要が
> > あるということでしょうか?
> という方法もありますが、LD_LIBRARY_PATHはsetuid/setgidされた実行ファイ
> ルに関しては無視されますから、次善の策と言えます。
> 
> > 上記、神戸様のご解説「ld.so.confはa.out形式のライブラリの為に存在してい
> > る」と言うところと、上記の「'/'で始まっていない行は〜」の部分とで少し混
> > 同しております。
> あぁ、ちょっと混乱させてしまってごめんなさい。
> 
> > このような解釈でよろしいでしょうか?
> > 1.ld.so.confはa.out形式のライブラリの為に存在しいる。
> 「元々は」ですね。ELF形式で、数値演算ライブラリに使っている書式は後付
> けのNetBSDの拡張です。
> 
> > 2.現状のNetBSD1.5.Xにおいては、a.out形式のライブラリは存在しない(?)
> インストールした直後では存在しません。i386に関しては、1.4まではa.out形
> 式でしたが、1.5以降はELFに移行したためです。
> 
> > 3.たとえば、ld.so.confに'/'で始まっていない行を記述すれば、それはELF形
> > 式であったしても、/usr/libexec/ld.elf.soが適切に解釈し、ELF形式のsearch
> > directoryを構築してくれる?
> ld.so.conf(5)を読む限りは、ダメです。繰り返しますが、ELF形式ではライブ
> ラリの場所は実行ファイルに埋め込まれていることになっているので、そもそ
> もsearch directoryといったものは不要という考えだからです。
> 
> > 4.既存の状態でldconfig -rを実行したときのsearch directoryは変更出来な
> > い?。たとえば、意味がないかもしれませんが、/etc/ld.so.confに対して
> > /usr/local/ssl/lib等を追加して、ldconfigを実行したとしても結果は反映され
> > ないのはなぜ?
> ldconfig(8)のソースをざっと眺めると、ELF形式の場合はa.outのエミュレー
> ションのディレクトリにある/emul/aout/etc/ld.so.confを見るようになって
> いました。現在のi386ではldconfig(8)はa.out形式のために存在していますか
> ら、このようになっているのでしょう。
> 
> なお、/etc/ld.so.confに書く他にコマンド行でも指定できます。
> 
> > 5.上記4の質問と同じかもしれませんが、ldconfig -rの
> > /usr/lib:/usr/X11R6/libはデェフォルト設定であるため、変更することはでき
> > ない?
> というわけで、emul/aout/etc/ld.so.confに書くというのが正解です。
> 
> ただ、ldconfig -rで表示される検索パスは、/var/run/ld.so.hintsに保存さ
> れている内容で、このld.so.hintsをld.elf_soが参照することはありません。
> 
> --
> 神戸 隆博 / Takahiro Kambe

  //////☆
 ////★
 //☆   Tetsuya Saito
 ★   tetuya@ksc.gr.jp