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 プログラムヘッダーエントリに反映されます。