rtld(1) FreeBSD 一般コマンドマニュアル

rtld

前のページ 上に戻る 次のページ

rtld


     空間に共有オブジェクトを読み込んで編集する機能を提供します。一般には動的
     リンカという名前でも知られています。動的リンクされたプログラムに含まれる
     データ構造を使ってどの共有ライブラリが必要なのかを決定し、 mmap(2) システ
     ムコールを使ってそれらを読み込みます。

     全ての共有ライブラリを読み込むことに成功すると、次に ld-elf.so.1 はメイン
     プログラムおよび読み込んだ全てのオブジェクトからの外部参照を解決します。
     プログラム本体の実行が始まる前になんらかの設定をする機会を共有オブジェク
     トに与えるために、オブジェクトごとに初期化ルーチンを呼ぶ機構があります。
     これは静的コンストラクタを含むような C++ ライブラリにとって有用です。

     実行されるプログラムが動的にリンクされている場合には、そのプログラムと一
     緒に ld-elf.so.1 自体がカーネルによって読み込まれます。そしてカーネルは動
     的リンカに制御を移します。動的リンカがプログラムとそれに必要な共有オブ
     ジェクトの読み込み、再配置、初期化を終えると、プログラムのエントリポイン
     トに制御を移します。

     ファイルシステム中にある必要な共有オブジェクトを探索するために、
     ld-elf.so.1ldconfig(8) ユーティリティによって用意される ``hints''
     ファイルを使います。

     ld-elf.so.1 は以下に挙げるような、自身の動作を変えるために使用されるいく
     つかの環境変数を認識します:

     LD_LIBRARY_PATH  コロンで区切られたディレクトリのリストで、共有ライブラリ
                      のデフォルトサーチパスを上書きします。この環境変数は、
                      set-user-ID 及び set-group-ID されたプログラムにおいては
                      無視されます。

     LD_PRELOAD       他の共有ライブラリより前にリンクされるべき共有ライブラリ
                      のリストで、コロンか空白で区切られています。もしディレク
                      トリが指定されていないならば、最初に LD_LIBRARY_PATH で
                      指定されるディレクトリから、続いて組み込みの標準ディレク
                      トリ群から検索されます。この環境変数は、 set-user-ID 及
                      び set-group-ID されたプログラムにおいては無視されます。

     LD_BIND_NOW      空ではない文字列が設定されている場合には、 ld-elf.so.1
                      は、全ての外部関数呼び出しをプログラムの実行を始める前に
                      再配置します。通常、関数呼び出しの結合は遅延方式 (lazy
                      binding) で行われます。すなわち、関数呼び出しはそれぞれ
                      の関数が最初に呼ばれる時に結合されます。 LD_BIND_NOW は
                      プログラムの起動時間を増加させますが、実行時に思いもかけ
                      ず関数が定義されていなかったという事件は避けられます。

     LD_TRACE_LOADED_OBJECTS
                      空ではない文字列が設定されている場合には、 ld-elf.so.1
                      は共有オブジェクトを読み込んで、全てのオブジェクトの絶対
                      パス名を含む概要を標準出力に表示した後に終了します。

     LD_TRACE_LOADED_OBJECTS_FMT1

     LD_TRACE_LOADED_OBJECTS_FMT2

                      %p    rtld のライブラリ検索ルールで決定されるフルパス
                            名。

                      %x    ライブラリのロードアドレス。

                      さらに、 \n\t が認識され、通常の意味をもちます。


関連ファイル

     /var/run/ld-elf.so.hints


関連項目

     ld(1), ldd(1), elf(5), ldconfig(8)

FreeBSD 4.4                    January 28, 2000                    FreeBSD 4.4

ABELNET VPSサービス