AIX のリンカーと動的ローダの癖 ― 2013年09月06日 12時27分41秒
具体的な利点としては、ライブラリをリンクする時の Solaris のリンクの単位がファイル毎名のに対し、AIX ではシンボル単位なのだ。Solaris は呼ばれない関数が一つのファイルにあったら、否応なしに全てが取り込まれる。AIX では必要な関数だけだ。
AIX では呼ばない関数をリンクしないので Solaris に比べて実行ファイルが大きくなりにくい。動的ライブラリも併せて行なったときに、その呼ばない関数の切り落としをやりすぎてしまうみたいだ。
AIX では実行ファイルをロードしている時に全てのシンボルを読み込もうとする。もし、プログラムの中に呼ばれないが、外部参照されている関数などがあると、実行できなくなる。リンクは出来るのに起動できないのだ。
リンク時に -blazy を渡すとこれらのシンボルも探すようになる。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2013/09/06/6972961/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。