3.6.2 ベニアの共有

複数のオブジェクトで同じベニアが作成される場合は、リンカによって、そのベニアのインスタンスが 1 つ作成されます。そのベニアが、これらのオブジェクトで共有されます。

コマンドラインオプション --no_veneershare を使用すると、ベニアが共有されないように指定できます。これにより、作成されたベニアセクションの所有権がベニアを作成したオブジェクトに割り当てられるため、スキャッタファイル内の特定のオブジェクトからベニアを選択できます。以下に例を示します。
LR 0x8000
{
    ER_ROOT +0
    {
          object1.o(Veneer$$Code)
    }
}
ベニアを共有すると、所有するオブジェクトを割り当てることができなくなります。 --no_veneershare を使用すると、イメージのレイアウトの整合性を高めることができます。ただし、リンカによって追加のベニアが生成されるため、このオプションにはコードサイズが大幅に増加するという欠点があります。
関連する概念
3.6.1 ベニアとは
7.1 スキャッタロードメカニズム
関連する参考文書
章 8 スキャッタファイル構文
12.164 --veneershare、--no_veneershare
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.