このカテゴリのエラーメッセージが出力される場合は、リンカーが停止したり、リンカーが実行可能な a.out を作成できないといったことはありません。次のような条件で、警告が発せられます。
physical_address、virtual_address、あるいは長さの値が、LOAD セグメント以外のすべてのセグメントに対して指示されている場合 (指示は無視される)
すでに存在するセグメントに対して、属性値を変更する宣言が行なわれた場合 (2 番目の宣言で指示した属性値が有効になる)
属性値 (text や data に対しては segment_type と segment_flags。note に対しては segment_type) が組み込みセグメントのいずれかに対して変更された場合
暗黙の内に宣言により作成されたセグメントの属性値 (segment_type、segment_flags、長さ、整列の一部または全部) が変更された場合。?O フラグが追加されただけの場合、属性値変更の警告は発せられない
エントランス基準に合わない場合。?O フラグが有効になっていて、エントランス基準に合う入力セクションがない場合、警告が発せられる
このカテゴリのエラーが発生した場合、その時点でリンカーの実行を停止します。以下の条件で致命的エラーが発生します。
対応付けファイルを開いたり読んだりできない場合
構文エラーが mapfile で発見された場合
file_name、section_name、segment_name、あるいは symbol_name が 「mapfile の構造と構文」の規則に合わない場合、リンカーはこの条件が構文エラーを作成しない限り、エラーを返しません。たとえば、名前が特殊な文字で始まり、この名前が指示行の最初にある場合、リンカーはエラーを返します。名前が section_name の場合 (指示内に表示されます)、リンカーはエラーを返しません。
1 つの命令行に複数の segment_type、segment_flags、virtual_address、physical_address、長さあるいは整列の値がある場合
mapfile で interp セグメントまたは dynamic セグメントを操作しようとした場合
interp セグメントおよび dynamic セグメントは特殊な組み込みのセグメントで、これはどのようなやり方を使っても変更できません。
セグメントが、長さ属性値で指定した長さよりも大きくなった場合
ユーザー定義の virtual_address が原因で、セグメントが前のセグメントを上書きする場合
1 つの命令行に複数の section_name、 section_type、 あるいは section_flags 値がある場合