Sun Studio 12: C ユーザーズガイド

B.2.112 -xmodel=[a]

(x86) -xmodel オプションを使用すると、コンパイラで 64 ビットオブジェクトの形式を Solaris x86 プラットフォーム用に変更できます。このオプションは、そのようなオブジェクトのコンパイル時にのみ指定してください。

このオプションは、64 ビットが有効である x64 プロセッサで、-m64 も指定されている場合にのみ有効です。

a には次のいずれかを指定します。

表 B–30 -xmodel のフラグ

値 

意味 

small

このオプションは、実行されるコードの仮想アドレスがリンク時にわかっていて、すべてのシンボルが 0 〜 2^31 - 2^24 - 1 の範囲の仮想アドレスに配置されることがわかっているスモールモデルのコードを生成します。 

kernel

すべてのシンボルが 2^64 - 2^31 〜 2^64 - 2^24 の範囲で定義されるカーネルモデルのコードを生成します。 

medium

データセクションへのシンボリック参照の範囲に関する前提がないミディアムモデルのコードを生成します。テキストセクションのサイズとアドレスは、スモールコードモデルの場合と同じように制限されます。大量の静的データを持つアプリケーションでは、-m64 を使用してコンパイルする場合に -xmodel=medium が必要になる場合があります。

このオプションは累積的ではないため、コンパイラはコマンド行でもっとも右の -xmodel に従って、モデルの値を設定します。

-xmodel を指定しない場合、コンパイラは -xmodel=small とみなします。引数を指定せずに-xmodel を指定すると、エラーになります。

すべての翻訳単位をこのオプションでコンパイルする必要はありません。アクセスするオブジェクトが範囲内にあれば、選択したファイルをコンパイルできます。

すべての Linux システムがミディアムモデルをサポートしているわけではないことに注意してください。