リンカーとライブラリ

32 ビットおよび 64 ビット環境

リンカーは 32 ビットのオブジェクト上で動作し、SPARCV9 システム上では 64 ビットのオブジェクト上でも動作します。実際には、SPARC システムでは 64 ビットのリンカー (ld(1)) は 32 ビットのオブジェクトを、32 ビットのリンカーは 64 ビットのオブジェクトを生成できます。ただし、32 ビットのリンカーの場合、生成されるオブジェクトのサイズが、.bss を含めずに 2G バイトまでに制限されます。

一般に、32 ビットのリンク編集と 64 ビットのリンク編集を区別するために必要となるコマンドラインオプションはありません。リンカーは、最初に見つけた ELF オブジェクトの ELF クラスを使用して動作モードを管理します。mapfile やアーカイブライブラリのみからのリンクなどの、特別なリンク編集では、それらの入力ファイルの影響を受けず、デフォルトで 32 ビットモードになります。これらのケースでは、-64 オプションで 64 ビットのリンク編集を行うことができます。32 ビットオブジェクトと 64 ビットオブジェクトを混在させることはできません。

通常、32 ビットオブジェクト上および 64 ビットオブジェクト上のリンカーの動作は同じですが、このマニュアルでは 32 ビットオブジェクトでの動作を例として使用します。64 ビットの処理が 32 ビットの処理と異なる場合には説明します。

64 ビットアプリケーションについては、『Solaris 64 ビット 開発ガイド』を参照してください。