2.14 アプリケーションをビルドする場合の GCC フォールバックの使用

GCC でビルドするように開発されたアプリケーションをビルドするときは、GCC 固有の機能がサポートされないため、ARM コンパイラツールチェーンでビルドを正常に完了できない場合があります。そのような場合は、GCC フォールバックが GCC ツールチェーンを呼び出してビルドを完了できます。

GCC フォールバックは、CodeSourcery 2010Q1 GNU ツールチェーンリリースをサポートしています。
GCC フォールバックは、ユーザアプリケーション用であり、Linuxカーネルのビルドには使用することは出来ません。
GCC フォールバックを指定するには、コンパイラオプション -Warmcc および --gcc_fallback を追加します。GCC は、armcc に指定されたコマンドラインオプションと同じ GCC 形式のコマンドラインオプションを使用して呼び出されます。そのため、GCC フォールバックは、次のシェルスクリプトと同じ効果があります。
armcc $myflags
if found-gcc-specific-coding; then
  gcc $myflags
endif
すべてのビルドは、現在使用しているビルドスクリプト、メイクファイル、またはその他のインフラストラクチャを使用して行われ、変更は行いません。たとえば、 armcc によって 1 回のコンパイルステップでコンパイルしようとすると、そのステップは失敗する可能性があります。その場合、armcc は、GCC を使用してその 1 回のコンパイルステップを実行します。リンク手順に失敗した場合、 armcc は GNU ld を使用して GCC ツールチェーンとのリンクを実行します。armcc がコンパイルまたはリンク手順を実行すると、使用するインクルードパス、ライブラリパス、Linux ライブラリが ARM Linux コンフィギュレーションファイルで識別されます。フォールバックの場合、以下のいずれかを実行する必要があります。
  • 既存の gcc に対して armcc を設定することによって、--arm_linux_config_file コンパイラオプションを使用してコンフィギュレーションファイルを 生成します。
  • その他のコンフィギュレーションオプションを手動で指定する場合は、gcc への明示的なパスを指定します。
フォールバックに使用される GCC ツールチェーンは、コンフィギュレーションが作成されたツールチェーンです。そのため、armcc および gcc によって使用されるパスとライブラリは同等である必要があります。
GCC フォールバックが armcc によって呼び出された場合は、警告メッセージが表示されます。gcc も失敗した場合は、 追加のエラーが表示されます。それ以外の場合は gcc が成功したことを示すメッセージが表示されます。コンパイルに失敗したソースファイルまたはソースと問題の原因を示す、armcc の元のエラーメッセージも表示されます。

  • GCC フォールバックを使用しても ARM コンパイラツールのリンク先に変更はありません。つまり、ツールは、--arm_linux_config_file コンパイラオプションで生成されたコンフィギュレーションファイルで指定された GCC のリンク先とだけリンクします。そのため、ライセンスが準拠していること、そして特にリンク先を確認する必要があります。必要に応じて、明示的にオーバーライドする必要がある場合があります。これを行うには、GNU オプション -nostdinc-nodefaultlibs、および -nostdlibarmcc コマンドラインに追加します。
  • armcc は、別のプロセスで GNU ツールを呼び出します。
  • armcc は、GCC 中間表記でコードを最適化しません。
GCC フォールバック中に呼び出されるコマンドを確認するには、 -Warmcc,--echo コマンドラインオプションを指定します。
以下の図は、GCC フォールバックプロセスの高レベルの概要を示します。
図 2-1 GCC フォールバックプロセスの図
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

関連する参考文書
8.9 --arm_linux_config_file=path
8.10 --arm_linux_configure
8.70 --echo
8.200 -Warmcc,option[,option,...]
8.201 -Warmcc,--gcc_fallback
関連情報
GNU Compiler Collection、http://gcc.gnu.org
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.