3.6.4 位置非依存から絶対ベニアへの生成

絶対コードに対して位置非依存コードを呼び出すには、ベニアが必要です。

通常の呼び出し命令では、呼び出しアドレスからのオフセットとしてターゲットのアドレスがエンコードされます。位置非依存(PI)コードから絶対コードへの呼び出しが行われるとリンク時にはオフセットを計算できないため、リンカは長分岐ベニアを挿入する必要があります。
PI から絶対ベニアへの生成は、--piveneer オプションを使用して制御できます。これはデフォルトです。このオプションを --no_piveneer を使用してオフにすると、PI コードから絶対コードへの呼び出しが検出されたときにリンカによってエラーが生成されます。
関連する概念
3.6.1 ベニアとは
関連する参考文書
12.97 --max_veneer_passes=value
12.107 --piveneer、--no_piveneer
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.