2.1 リンクモデルの概要

リンクモデルとは、リンカの動作を制御する、コマンドラインオプションとメモリマップの集まりです。

armlink でサポートされているリンクモデルは次のとおりです。

ベアメタル

このモデルの対象は特定のプラットフォームではありません。このモデルを使用すると、独自のカスタムオペレーティングシステム、メモリマップ、および必要に応じてアプリケーションコードを使用してイメージを作成できます。一部の制限されたダイナミックリンクもサポートされています。追加のオプションを指定できるかどうかは、スキャッタファイルが使用されているかどうかによって異なります。

部分リンク

このモデルは、後続のリンク手順でのリンカへの入力に適した、再配置可能な ELF オブジェクトを生成します。部分オブジェクトは別のリンク手順への入力として使用可能です。リンカは単一の出力オブジェクトを生成するために、入力オブジェクトの制限付き処理を実行します。

BPABI

このモデルでは、DLL 類似ベースプラットフォームアプリケーションバイナリインタフェース(BPABI)をサポートしています。複雑性の異なるプラットフォーム OS で動作可能なアプリケーションと DLL を生成するためのモデルです。メモリモデルは ARM アーキテクチャ用ベースプラットフォーム ABI に従って制限されます。

ベースプラットフォーム

これは、スキャッタロードをサポートするための BPABI モデルの拡張です。

SysV

このモデルでは、System Vr4(SysV)と ARM Linux が使用するアプリケーションと共有オブジェクトをサポートしています。メモリモデルは GNU 互換の ldscript を使用して制御できます。メモリモデルは ELF 仕様に従って制限されます。

各モデルの関連するオプションを組み合わせて出力を厳密に制御できます。

実行専用(XO)メモリはベアメタルリンクモデルでのみサポートされています。他のリンクモデルでは、オブジェクトファイルに XO セクションが含まれる場合は、armlink からエラーが生成されます。

関連する概念
2.2 ベアメタルリンクモデル
2.3 部分リンクモデル
2.4 ベースプラットフォームアプリケーションバイナリインタフェース(BPABI)リンクモデル
2.5 ベースプラットフォームリンクモデル
2.6 SysV リンクモデル
2.7 BPABI リンクモデルと SysV リンクモデルの両方に共通する概念
関連する参考文書
10 BPABI および SysV の共有ライブラリと実行可能ファイル
関連情報
Base Platform ABI for the ARM Architecture
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.