Oracle® Solaris 11.2 リンカーとライブラリガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

STACK 指令

STACK 指令はプロセススタックの属性を指定します。

        STACK {
                FLAGS  = segment_flags....;
                FLAGS += segment_flags....;
                FLAGS -= segment_flags....;
        };

FLAGS 属性は、Table 8–3 に記載されている任意の値で構成される空白区切りのリストで、セグメントのアクセス権を指定します。

3 つの形式を使用できます。シンプルな「=」代入演算子は現在のフラグを新しいセットで置き換え、「+=」形式は既存のセットに新規フラグを追加し、「-=」形式は指定されたフラグを既存のセットから削除します。

デフォルトのスタックアクセス権はプラットフォーム ABI によって定義され、プラットフォームによって異なります。ターゲットプラットフォームの値はセグメントフラグ名 STACK を使用して指定します。

一部のプラットフォームでは、デフォルトのアクセス権に EXECUTE を含めることが ABI によって要求されます。EXECUTE が必要とされることはほとんどなく、一般的には潜在的なセキュリティーリスクと見なされます。EXECUTE アクセス権をスタックから削除することをお勧めします。

        STACK {
                FLAGS -= EXECUTE;
        };

STACK 指令は出力 ELF オブジェクト内の PT_SUNWSTACK プログラムヘッダーエントリに反映されます。