AIX のリンカーと動的ローダの癖 ― 2013年09月06日 12時27分41秒
具体的な利点としては、ライブラリをリンクする時の Solaris のリンクの単位がファイル毎名のに対し、AIX ではシンボル単位なのだ。Solaris は呼ばれない関数が一つのファイルにあったら、否応なしに全てが取り込まれる。AIX では必要な関数だけだ。
AIX では呼ばない関数をリンクしないので Solaris に比べて実行ファイルが大きくなりにくい。動的ライブラリも併せて行なったときに、その呼ばない関数の切り落としをやりすぎてしまうみたいだ。
AIX では実行ファイルをロードしている時に全てのシンボルを読み込もうとする。もし、プログラムの中に呼ばれないが、外部参照されている関数などがあると、実行できなくなる。リンクは出来るのに起動できないのだ。
リンク時に -blazy
を渡すとこれらのシンボルも探すようになる。
最近のコメント