12.135 --sort=algorithm

出力イメージのセクションの順序を決定するために使用されるソートアルゴリズムを指定します。

構文

--sort=algorithm

algorithm には、以下のいずれかを指定します。

境界整列

アライメント値の昇順で入力セクションをソートします。

AlignmentLexical

入力セクションをアライメント値の昇順でソートし、次に語句順にソートします。

AvgCallDepth

Thumb コードすべてを ARM コードより先にソートしてから、各セクションの近似平均コール深度に従って昇順にソートします。

長分岐ベニアの数を最小限にするには、このアルゴリズムを使用します。

平均コール深度の近似値は入力セクションの順序によって異なります。したがって、このソートアルゴリズムは、例えば RunningDepth を使用するよりも、入力セクションの順序に大きく依存します。

BreadthFirstCallTree

これは、コールツリーをリストに平板化する際に幅優先探索が使用される点を除き、CallTree アルゴリズムと似ています。

CallTree

リンカは、CallTree ソートが有効になっているすべての実行領域のコールツリーを、読み取り専用のコードセクションを含むリストにリスト化します。

このリストのセクションがその実行領域にコピーされた後、読み取り専用以外のすべてのコードセクションが語句順にソートされます。このようにすると、相互を呼び出すセクションが近くに配置されます。

このソートアルゴリズムは、RunningDepth または AvgCallDepth を使用する場合ほど、入力セクションの順序に依存しません。

Lexical

セクション名に従ってソートし、名前が同じ場合は入力順に並べます。

LexicalAlignment

入力セクションを語句順、次にセクション名でソートし、名前が同じ場合には入力順にソートします。

LexicalState

ARM コードの前に Thumb コードをソートし、その後、語句順にソートします。

List

使用可能なソートアルゴリズムをリスト表示します。リンカはリストを表示した後で終了します。

ObjectCode

tiebreaker でコードセクションをソートします。他のすべてのセクションは語句順にソートされます。同じオブジェクトのすべてのセクションをメモリマップ内でグループ化しようとするため、これは --tiebreaker=cmdline とともに使用した場合に最も有用です。

RunningDepth

Thumb コードすべてを ARM コードより先にソートしてから、セクションの実行深度に従って昇順にソートします。セクション S の実行深度は、S を呼び出すすべてのセクションの平均コール深度で、S を呼び出す回数で重みが付けられます。

長分岐ベニアの数を最小限にするには、このアルゴリズムを使用します。

使用法

ソートアルゴリズムは標準的な規則に従って、入力セクションを属性の昇順に配置します。

個々の実行領域のスキャッタファイルでもソートアルゴリズムを指定できます。これを行うには、SORTTYPE キーワードを使用します。

デフォルト

デフォルトのアルゴリズムは --sort=Lexical です。大領域モードでは、デフォルトのアルゴリズムは --sort=AvgCallDepth です。

関連する概念
3.11 Section placement with the linker
8.6 実行領域の記述
関連する参考文書
12.80 --largeregions、--no_largeregions
12.155 --tiebreaker=option
8.8 実行領域の属性
非機密扱い PDF file icon PDF 版 ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.