12.155 --tiebreaker=option

tiebreaker が使用されるのは、ソートアルゴリズムに、セクションの全順序的な序列が必要となる場合です。ソート基準上、同じプロパティを持った複数の入力セクションが存在する場合に、リンカによってその順序を解決する目的で使用されます。

構文

--tiebreaker= option

ここで、 option には以下のいずれかを指定できます。

creation

リンカがその内部的なセクションデータ構造内にセクションを作成していく順序。

リンカは、入力オブジェクト内の各 ELF セクションの入力セクションを作成する際、グローバルカウンタをインクリメントします。このカウンタの値は、対応するセクションに作成インデクスとして格納されます。

インラインベニアの特殊なケースを除いて、セクションの作成インデクスは一意となります。

cmdline

リンカのコマンドラインにおけるセクションの出現順序です。コマンドラインの順序は、File.Object.Section として定義されます。

  • Section は、ObjectSection のセクションインデクス(sh_idx)です。

  • Object は、File における Object の出現順序です。

  • File は、コマンドラインにおける File の出現順序です。

File における Object の出現順序は、そのファイルが ar アーカイブである場合にのみ意味があります。

このオプションは、異なるリンク link1 と link2 の結果に対し、バイナリ差分を実行している場合に役立ちます。link1 から link2 への変更がごくわずかである場合、一方のソースファイル内の相違箇所を特定したい場合があります。一般に、オブジェクトに対しては作成インデクスが効果的ですが、ライブラリからメンバーを選択する際には何通りかのパスが存在するため、小さな差(新しい関数を呼び出すなど)でもオブジェクトの順序が変化し、序列決定基準に違いが生じる可能性があります。ビルド間での不変性という点では、コマンドラインインデクスの方が優れています。

このオプションは --scatter オプションと一緒に使用します。

デフォルト

デフォルトオプションは creation です。

関連する概念
7.16 .ANY セクションのソートアルゴリズムの使用例
関連する参考文書
12.126 --scatter=filename
12.128 --section_index_display=type
12.135 --sort=algorithm
12.95 --map、--no_map
12.5 --any_sort_order=order
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.