Sun Studio 12 Update 1: Fortran ユーザーズガイド

3.4.54 –m32 | –m64

コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。

32 ビット実行可能ファイルおよび共有ライブラリを作成するには、-m32 を使用します。64 ビット実行可能ファイルおよび共有ライブラリを作成するには、-m64 を使用します。

ILP32 メモリーモデル (32 ビット int、long、ポインタデータ型) は 64 ビット対応ではないすべての Solaris プラットフォームおよび Linux プラットフォームのデフォルトです。LP64 メモリーモデル (64 ビット long、ポインタデータ型) は 64 ビット対応の Linux プラットフォームのデフォルトです。-m64 は、LP64 モデルが使用可能なプラットフォームでのみ許可されます。

-m32 でコンパイルされたオブジェクトファイルまたはライブラリは、-m64 でコンパイルされたオブジェクトファイルまたはライブラリとリンクできません。

-m64 を使用して大容量の静的データを持つアプリケーションをコンパイルする場合は、-xmodel=medium も必要な場合があります。

一部の Linux プラットフォームは、ミディアムモデルをサポートしていません。

旧バージョンのコンパイラでは、-xarch で命令セットを選択することで、メモリーモデルの ILP32 または LP64 が暗黙に指定されていました。Sun Studio 12 以降のコンパイラでは、このようなことはありません。ほとんどのプラットフォームでは、64 ビットオブジェクトを作成するのに、コマンド行に -m64 を追加するだけです。

Solaris では、-m32 がデフォルト値です。64 ビットプログラムをサポートしている Linux システムでは、-m64 -xarch=sse2 がデフォルト値です。