1.1.1. ABI for the ARM Architecture への準拠

ARM アーキテクチャ用アプリケーションバイナリインタフェース(ABI)は、ソースプログラムをオブジェクトファイルに変換するプロセッサ固有の機能を記述した仕様群です。 ABI の関連機能に準拠している何らかのツールチェインで生成されたオブジェクトファイルは、最終の実行イメージまたはライブラリにリンクさせることができます。 仕様の各マニュアルは、互換性の特定エリアについて説明しています。例えば、『C Library ABI for the ARM Architecture』(CLIBABI)では、すべての準拠した実装に共通している C ライブラリの部分について説明しています。ABI のマニュアルには、プラットフォーム固有とマークされるエリアがいくつか含まれています。 完全な実行環境を定義するには、このようなプラットフォーム固有の詳細が提供される必要があります。 このため、『ARM GNU/Linux ABI supplement』など、多くの補足仕様書が提供されています。

『Base Standard ABI for the ARM Architecture』(BSABI)によって、ABI for the ARM Architecture をサポートする異なるプロデューサから ARM、Thumb、Thumb-2 のオブジェクトおよびライブラリを使用できます。RVCT では、DWARF 3 デバッグテーブル(DWARF Debugging Standard バージョン 3)のサポートを含む BSABI が完全にサポートされています。

Base Standard、他の ARM 組み込み ABI (AEABI)、ソフトウェアインタフェース、および ARM でサポートされている他の標準の詳細については、install_directory\Documentation\Specifications\... を参照して下さい。

最新版の詳細については、http://www.arm.com を参照して下さい。

ARM C および C++ ライブラリは、BSABI および以下の AEABI で定義されている標準に準拠しています。

適合性のテスト

CLIBABI に対する移植性を確保するには、<stdlib.h> などのライブラリヘッダをインクルードする前に「#define _AEABI_PORTABILITY_LEVEL 1」と指定して下さい。 これは、コマンドライン上で「--D_AEABI_PORTABILITY_LEVEL=1」と指定しても同じです。 このように指定することにより、CLIBABI の他の実装に対するオブジェクトファイルの移植性が向上します。ただし、一部のライブラリ処理においてパフォーマンスが低下します。

詳細については、install_directory\Documentation\Specifications\... にある CLIBABI の仕様書(clibabi.pdf)を参照して下さい。

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0349AJ
Non-Confidential