1.2.5 ビルドオプションに基づく ARM C および C++ ライブラリのバリアントの選択

アプリケーションをビルドする場合は、ターゲットアーキテクチャ、命令セット、バイト順序など、いくつか選択を行う必要があります。ビルドオプションを使用してこれらの選択をコンパイラに伝えます。リンカは、これらのビルドオプションに適合する C および C++ ライブラリバリアントを選択します。

ARM® C および C++ ライブラリバリアントに影響を与える選択肢には、以下が含まれています。
ターゲットアーキテクチャおよび命令セット
A32 または T32(AArch32 状態の命令セット)

microlib は AArch64 状態ではサポートされません。
バイト順序
ビッグエンディアンまたはリトルエンディアン
浮動小数点のサポート
  • ソフトウェア(SoftVFP)。
  • ハードウェア(VFP)。
  • 半精度拡張と倍精度拡張のいずれかをサポートしているソフトウェアまたはハードウェア。
  • あるいは浮動小数点のサポートなし。

ARMv8 では、VFP ハードウェアはアーキテクチャに不可欠です。ソフトウェア浮動小数点は AArch32 状態ではサポートされていますが、AArch64 状態ではサポートされていません。
位置非依存
ベアメタル位置非依存実行可能ファイル(PIE)は、特定のアドレスで実行する必要はありませんが、適切に整列されたアドレスで実行できる実行可能ファイルです。
位置非依存コードは、可能であれば PC 相対アドレシングモードを使用します。可能でない場合は、グローバルオフセットテーブル(GOT)を介してグローバルデータにアクセスします。
位置非依存の C++ コードは、-fbare-metal-pie を使用して生成できます。

位置非依存は AArch32 状態でのみサポートされており、microlib ではサポートされていません。
アセンブラコード、C コード、または C++ コードをリンクする際、リンカは、ユーザが指定したビルドオプションに適合する C および C++ ライブラリバリアントを選択します。主なビルドオプションの組み合わせごとに ISO C ライブラリのバリアントが 1 つあります。
関連情報
-marm コンパイラオプション
-mbig-endian コンパイラオプション
-mfpu コンパイラオプション
-mlittle-endian コンパイラオプション
-mthumb コンパイラオプション
--arm アセンブラオプション
--bigend アセンブラオプション
--fpu アセンブラオプション
--littleend アセンブラオプション
--thumb アセンブラオプション
非機密扱いPDF file icon PDF 版ARM DUI0808CJ
Copyright © 2014, 2015 ARM.All rights reserved.