Solaris 64 ビット 開発ガイド

コンパイラの環境

Sun Studio C、C++、および Fortran のコンパイル環境が拡張され、32 ビットおよび 64 ビットアプリケーションの両方を作成できるようになりました。Sun Studio で提供される C コンパイラのリリース 10.0 は、64 ビットコンパイルをサポートします。

ネイティブコンパイルモードおよびクロスコンパイルモードがサポートされています。デフォルトのコンパイル環境は、これまでどおり 32 ビットアプリケーションを作成します。ただし、両モードともアーキテクチャに依存します。Sun コンパイラを使用して、x86 マシン上で SPARC オブジェクトを作成したり、 SPARC マシン上で x86 オブジェクトを作成することはできません。アーキテクチャやコンパイラのモードが指定されていない場合は、適宜 __sparcv8 または __i386 シンボルがデフォルトで定義され、この一部として _ILP32 も定義されます。これによって、既存のアプリケーションおよびハードウェアにおける相互運用性が高くなります。

Sun Studio 8 リリースから、cc(1) -xarch=generic64 フラグを使用して、64 ビットコンパイル環境を使用できるようにします。

これによって LP64 コードが含まれる ELF64 オブジェクトが生成されます。ELF64 とは、64 ビットのプロセッサおよびアーキテクチャをサポートする 64 ビットオブジェクトファイル形式のことです。一方、デフォルトの 32 ビットモードでコンパイルしたときは、ELF32 オブジェクトファイルが生成されます。

-xarch=generic64 フラグを使用すると、32 ビットまたは 64 ビットのシステムで 64 ビット コードを生成できます。32 ビットコンパイラを使用すると、32 ビットシステムで 64 ビットオブジェクトを作成できますが、その 64 ビットオブジェクトは 32 ビットシステムでは実行できません。64 ビットライブラリに対するライブラリパスを指定する必要はありません。-l または -L オプションを使用してライブラリまたはライブラリパスを追加指定し、そのパスが 32 ビットライブラリだけを指している場合は、リンカーはそれを検出し、エラーを出力してリンク処理を異常終了します。

コンパイラオプションの説明は、『Sun Studio 10: C ユーザーズガイド』を参照してください。