7.4.8 リンカによって生成されたコンテンツによって .ANY セクションがオーバーフローしたときの動作

リンカによって生成されたコンテンツは .ANY 領域をオーバーフローさせる可能性があるため、コンティンジェンシアルゴリズムをリンカにインクルードします。

セクションが領域に割り当てられるまで、リンカは、そのセクションのアドレスを知ることができません。したがって、.ANY 領域を埋めるときには、リンカは、コンティンジェンシスペースを計算することができず、呼び出し元の関数にベニアが必要かどうかを判別できません。リンカには、パディングに対するワーストケースの予測を行い、ベニア用に 2% のスペースを確保するコンティンジェンシアルゴリズムが備わっています。このアルゴリズムを有効にするには、--any_contingency コマンドラインオプションを使用します。
以下の図に、.ANY の配置時における概念的なイメージレイアウトを示します。
図 7-4 .ANY コンティンジェンシ
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

予想されるパディングの下向きの矢印は、.ANY セレクタにセクションが追加されると、それにつれて、予想されるパディングも増えていくことを示しています。
予想されるパディングは、2% のベニアのコンティンジェンシの前に処理されます。
予想されるパディングがクリアされると、優先順位はゼロに設定されます。2% がクリアされると、優先順位は再度デクリメントされます。
実行領域で ANY_SIZE キーワードを使用すると、.ANY セクションを割り当てるために確保する領域の最大スペースサイズを指定することもできます。
関連する概念
7.4.3 .ANY セクションの優先順位
7.4.2 複数の .ANY セレクタの入力セクションの配置を制御するためのコマンドラインオプション
7.4.4 未割り当てセクションの配置に使用できる最大領域サイズの指定
関連する参考文書
8.4.3 実行領域の属性
8.5.2 入力セクション記述の構文
12.3 --any_contingency
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.