/lib/ld-linux.so.2
さらに調べてみる。 glibc-2.3.2/elf/rtld.c にそういう処理があるのですね。
さらに、 /lib/ld-linux.so.2 をオプション無しで実行すると usage が出ることを発見。
% /lib/ld-linux.so.2 Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] You have invoked `ld.so', the helper program for shared library executables. This program usually lives in the file `/lib/ld.so', and special directives in executable files using ELF shared libraries tell the system's program loader to load the helper program from this file. This helper program loads the shared libraries needed by the program executable, prepares the program to run, and runs it. You may invoke this helper program directly from the command line to load and run an ELF executable file; this is like executing that file itself, but always uses this helper program from the file you specified, instead of the helper program file specified in the executable file you run. This is mostly of use for maintainers to test new versions of this helper program; chances are you did not intend to run this program. --list list all dependencies and how they are resolved --verify verify that given object really is a dynamically linked object we can handle --library-path PATH use given PATH instead of content of the environment variable LD_LIBRARY_PATH --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names in LIST
ついでに適当日本語訳。間違ってそうだったらツッコミしてくださると助かります。
使用法: ld.so [オプション]... 実行可能ファイル [プログラムへの引数...] あなたは、共有ライブラリ実行ファイルのヘルパープログラム `ld.so' を起動しました。 このプログラムは大抵 /lib/ld.so ファイルとして存在して、ELF共有ライブラリを 使用している実行可能ファイルの特別なディレクティブは、システムプログラムに、 このファイル(/lib/ld.so)からヘルパープログラムをロードしろと命じます。 このヘルパープログラムは、プログラムを実行可能にするのに必要な共有ライブラリ をロードし、プログラム実行の準備をし、実行します。 あなたはELF 実行可能ファイルをロードして実行するために、このヘルパープログラムを コマンドラインから直接実行することができる; これは、そのファイル自身を実行する ことに似ているが、あなたが指定する実行可能ファイルで指定されているヘルパープログラムの 代わりに、いつも、あなたが指定したファイルのヘルパープログラムを使用する。 これはたいてい、メンテナがヘルパープログラムの新バージョンをテストするために役に立つ; たぶん、あなたはこのプログラムを実行しようとしたわけではないだろう。 --list 全ての依存と、それらがどのように解決されたかをリストする。 --verify 与えられたオブジェクトが、本当にわたしたち扱える ダイナミックリンクライブラリなのか検証する。 --library-path PATH LD_LIBRARY_PATH 環境変数の中身の代わりに、 与えられた PATH を使用する。 --inhibit-rpath LIST LIST にあるオブジェクト名の中の RUNPATH, RPATH 情報を 無視する。
--inhibit-rpath の動作がいまいちつかめなかったので、間違ってる可能性大ですが...(^^;;