総合手引 | セクション 1 | English | オプション |
全ての共有ライブラリを読み込むことに成功すると、次に ld-elf.so.1 はメインプログラムおよび読み込んだ 全てのオブジェクトからの外部参照を解決します。 プログラム本体の実行が始まる前になんらかの設定をする機会を 共有オブジェクトに与えるために、 オブジェクトごとに初期化ルーチンを呼ぶ機構があります。 これは静的コンストラクタを含むような C++ ライブラリにとって有用です。
実行されるプログラムが動的にリンクされている場合には、そのプログラムと一緒に ld-elf.so.1 ユーティリティ自体がカーネルによって読み込まれます。 そしてカーネルは動的リンカに制御を移します。 動的リンカがプログラムとそれに必要な共有オブジェクトの 読み込み、再配置、初期化を終えると、 プログラムのエントリポイントに制御を移します。
ファイルシステム中にある必要な共有オブジェクトを探索するために、 ld-elf.so.1 は ldconfig(8) ユーティリティによって用意される "hints" ファイルを使います。
ld-elf.so.1 ユーティリティは以下に挙げるような、 自身の動作を変えるために使用されるいくつかの環境変数を認識します:
LD_DUMP_REL_POST | これが設定されていた場合、シンボル束縛と再配置の後に、 ld-elf.so.1 は全再配置を含む表を表示します。 |
LD_DUMP_REL_PRE | これが設定されていた場合、シンボル束縛と再配置の前に、 ld-elf.so.1 は全再配置を含む表を表示します。 |
LD_LIBMAP | ライブラリー置換リストで、形式は libmap.conf(5) [英語] と同じです。 便利なように、空白と改行のかわりに ‘=’ と ‘amp;,’ の文字を使うことができます。 この変数は libmap.conf(5) [英語] の後に解析され、このファイルで指定された項目を上書きします。 |
LD_LIBMAP_DISABLE | |
これが設定されていた場合、 libmap.conf(5) [英語] および LD_LIBMAP の使用を無効化します。 | |
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_ALL | |
空ではない文字列に設定されている場合には、 どのオブジェクトがどのオブジェクトのロードの原因となったのかという まとめを ld-elf.so.1 が展開するようにさせます。 | |
LD_TRACE_LOADED_OBJECTS_FMT1
LD_TRACE_LOADED_OBJECTS_FMT2 | |
設定されている場合には、
これらの変数は
トレース出力をカスタマイズするための
printf(3)
流フォーマット文字列として解釈されます。
ldd(1)
の
| |
%a | メインプログラムの名前 (またの名を "__progname") 。 |
amp;%A | LD_TRACE_LOADED_OBJECTS_PROGNAME 環境変数の値。 |
%o | ライブラリの名前。 |
%m | ライブラリのメジャーバージョン番号。 |
%p | rtld のライブラリ検索ルールで決定されるフルパス名。 |
%x | ライブラリのロードアドレス。 |
さらに、 ‘\n’ と ‘\t’ が認識され、通常の意味をもちます。
/var/run/ld-elf.so.hints
/etc/libmap.conf | |
libmap の設定ファイル。 | |
RTLD (1) | May 31, 2003 |
総合手引 | セクション 1 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | UNIX is a four-letter word! | ” |