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

ARM コンパイラツールチェーンを使用すると、GCC でのみビルドするように開発されたアプリケーションをビルドできます。ただし、ARM コンパイラールチェーンによってエミュレートされない GCC 固有の機能のため、ARM コンパイラツールチェーンでビルドを正常に完了できない場合があります。このような場合のため、GCC ツールチェーンを呼び出してビルドを完了するコンパイラ機能が用意されています。この機能は、GCC フォールバッとして知られており、CodeSourcery 2010Q1 GCC ツールチェーンリリースをサポートしています。

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 および gcc によって使用されるパスとライブラリは同等である必要があります。

GCC フォールバックが armcc によって呼び出された場合は、警告メッセージが表示されます。gcc も失敗した場合は、追加のエラーが表示されます。それ以外の場合は gcc が成功したことを示すメッセージが表示されます。コンパイルに失敗したソースファイルまたはソースと問題の原因を示す、armcc の元のエラーメッセージも表示されます。

Note

  • GCC フォールバックを使用しても ARM コンパイラツールのリンク先に変更はありません。つまり、ツールは、--arm_linux_config_file コンパイラオプションで生成されたコンフィギュレーションファイルで指定された GCC のリンク先とだけリンクします。そのため、ライセンスが拠していること、そして特にリンク先を確認する必要があります。必要に応じて、明示的にオーバーライドする必要がある場合があります。こを行うには、GNU オプション -nostdinc-nodefaultlibs、および -nostdlibarmcc コマンドラインに追加します。

  • armcc は、別のプロセスで GNU ツールを呼び出します。

  • armcc は、GCC 中間表記でコードを最適化しません。

GCC フォールバック中に呼び出されるコマンドを確認するには、-Warmcc,--echo コマンドラインオプションを指定します。

以下の図は、GCC フォールバックプロセスの高レベルの概要を示します。

Figure 1. GCC フォールバックプロセスの図

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0472EJ
Non-ConfidentialID081711