アップデートリリースをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.06 update4 (build 422)
1.イントロダクション
これは、リリース時に提供されたリリースノートの最初のセットです。最新版は、developer.arm.com上のARM Compiler 5 sectionをご覧ください。
ARM Compiler 5.06は、ARM Compiler 5の最終リリースのシリーズであり、ARM Compiler 6へ継承されます。
安全認証の必要なプロジェクトの場合、認証用の特定のリリースはARM Compiler 5.06 update3 から利用できます。
次のアップデートリリースであるARM Compiler 5.06 update 5が、通常のARM Compiler 5.06メンテナンス期間で最終リリースとなる予定です。それ以降のサポートとメンテナンスはARM Compiler 拡張保守(Extended Maintenance)を通して利用可能です。ARM Compiler 5.06の拡張保守(Extended Maintenance)リリースは、ARM Compiler Qualification Kitによってサポートされます。
詳細な情報は、以下のリンクをご参照ください。
ARM Compiler 5.06 update 4 (build 422)は、ARM Compiler 5.06のアップデートリリースであり、以下の使用を意図しています。
- DS-5 Professional Edition あるいは DS-5 Ultimate Editionと共に使用
- Keil MDK-Standard あるいは Keil-MDK Professionalと共に使用
- スタンドアロンでのツールインストレーション
ライセンスについてのご質問は購入元あるいは license.support@arm.comへのメールで行ってください。
フローティングライセンスをご使用の場合は、armlmdおよびlmgrdをversion 11.12.1.0以降にアップデートする必要があります。
2015年11月に、Flexera社は FlexNet Publisherのベンダデーモンコンポーネントとlmgrdで発見されたセキュリティの脆弱性を発表しました。Flexera社は脆弱性が利用されたと信じるに足る根拠はないものの、FlexNet Publisher version 11.13.1.2でセキュリティアップデートを提供しました。このため、ライセンスサーバを少なくともこのバージョンへアップグレードすることをお勧めします。FlexNet Publisher 11.13.1.2 のライセンスサーバソフトウェアは、https://silver.arm.com/browse/BX002 からダウンロード可能です。(登録およびログインが必要です)
2.インストール方法
ARM Compiler 5.06 update 4 が、ツールキット(DS-5あるいはKeik MDK)の一部として含まれている場合、ツールキットのインストーラがインストレーションプロセスを処理します。ツールキットのインストレーション指示を参照してください。
その他のケースの場合、ARM Compiler 5.06 update 4をどのように使用するかに依存して適切なインストレーションの場所を選択する必要があります。
- DS-5 5.20 以降に統合する
- Keil MDK 5.12 以降に統合する
- スタンドアロン製品として使用
2.1. DS-5 5.20 以降への統合
ARM Compiler 5.06 update 4 は、DS-5製品のインストレーションの外であるなら、デフォルトの場所を含み、任意の場所にインストールすることができます。
インストール後、http://ds.arm.com/developer-resources/tutorials/adding-new-compiler-toolchains-to-ds-5/のチュートリアルで示す方法に従って、DS-5 5.20以降のツールチェーンに統合することができます。
DS-5 Eclipse IDE あるいは DS-5 Command PromptからARM Compiler 5.06 Update4 を使用することをおすすめします。これら環境の外でツールチェーンを使用するとき、以下の環境変数の構成が必要となります。
- DS-5インストレーション内の sw/mappings ディレクトリへのパスをARM_PRODUCT_PATHにセットします
- DS-5 Ultimate Editionを使用する場合、ARM_TOOL_VARIANT=ultをセットします
2.2. Keil MDK 5.12 以降への統合
ARM Compiler 5.06 update 4は、Keil MDKインストレーションのARMサブディレクトリの下にインストールする必要があります。たとえば、Keil MDKインストレーションが C:¥Keil_v5ならば、C:¥Keil_v5¥ARM¥ARM_Compiler_5.06u4にインストールすることをおすすめします。
インストール後、http://www.keil.com/appnotes/docs/apnt_267.aspで利用可能なアプリケーションノートの指示に従って、MDKプロジェクトへツールチェーンを統合することができます。
2.3. スタンドアロン製品としての使用
ARM Compiler 5.06 update 4は、DS-5製品およびKeil MDK製品のそれぞれのインストレーションの外であるなら、デフォルトの場所を含み、任意の場所にインストールすることができます。
ライセンスファイルあるいはライセンスサーバの場所を指定するARMLMD_LICENSE_FILE環境変数をセットしてください。Windows上ではダブルクォーテーションをこのパス内に含めないでください。パス内の空白はクォートで囲まなくても動作します。
2.4. Linux環境へのインストレーション
ARM Compiler 5.06 update 4は、以下のサポートされるプラットフォームでテストされています。
RedHat Enterprise Linux 6 Workstation option RedHat Enterprise Linux 7 Workstation option Ubuntu Desktop Edition 14.04 LTS (64-bit only)
Installer/setup.shを実行し、画面の指示に従ってください。
インストールされたいくつかのツールが32bitシステムライブラリに依存します。
ARM Compiler 5.06 update 4 を64-bit Linuxホストプラットフォームで使用するとき、32-bit互換のライブラリがインストールされていることを確認してください。 32-bit互換ライブラリがインストールされていない場合、ARM Compiler 5.06 update 4 ツールは、ライブラリが見つからず実行が失敗するあるいはエラーをレポートします。インストールに必要なライブラリは、ご使用のプラットフォームで管理者権限で適切なコマンドを実行して確認してください。
Red Hat
yum install glibc.i686
Ubuntu
apt-get install lib32stdc++6
2.5. Windows環境へのインストレーション
ARM Compiler 5.06 update 4は、以下のサポートされるプラットフォームでテストされています。
Windows Server 2012,64-bit only Windows 7 Enterprise SP1 Windows 7 Professional SP1 Windows 8.1,64-bit only Windows 10,64-bit only
Installersetup.exeを実行し、画面の指示に従ってください。
32-bitのインストーラのみ提供されます。ツールパッケージは、64-bitホストプラットフォーム向けに、個別に64-bit版のarmlinkを含むバイナリセットを含みます。詳細は、ドキュメンテーションをご参照ください。
3. アンインストール方法
Linuxの場合、ARM Compiler 5.06 update 4をインストールディレクトリから削除してください
Windowsの場合、コントロールパネルのプログラムの追加と削除からARM Compiler 5.06 update 4を選択し、アンインストールボタンを押下してください
4. ドキュメンテーション
ARM Compiler v5.06リリースシリーズの以下ドキュメントが利用可能です。
- armar User Guide
- armasm User Guide.
- armcc User Guide.
- armlink User Guide.
- fromelf User Guide.
- ARM C and C++ Libraries and Floating-Point Support User Guide.
- Errors and Warnings Reference Guide.
- Getting Stated Guide.
- Migration and Compatibility Guide.
- Software Development Guide.
これ以上の情報は、ARM InfocenterのARM Compiler 5 documentationをご参照ください。
5. フィードバックとサポートについて
お客様からのフィードバックは我々にとって重要です。製品のあらゆる局面において、欠陥報告と改善に関する提案を歓迎します。フィードバックあるいはサポートについて、お客様の製品の購入元あるいは、support-sw@arm.comへメールでご連絡ください。必要に応じて、ツールからの--vsnの出力、問題を再現するのに必要なソースコードおよびその他のファイルとコマンドラインを提供してください。ARM Compiler 5.06 update 2の総合的なビルド番号は、このドキュメントの最初に見出すことができます。当社へのお問い合わせは、こちら。
6. リリース履歴と変更点について
以下に、ARM Compiler 5.06 シリーズのリリース日付を示します。
- 5.06 update 4 (2016年9月にリリースされました)
- 5.06 update 3 (2016年5月にリリースされました)
- 5.06 update 2 (2016年1月にリリースされました)
- 5.06 update 1 (2015年9月にリリースされました)
- 5.06 (2015年7月にリリースされました)
ARM Compiler v5.06 update 4 での変更点について
ARM Compiler v5.06 update 4 での一般的な変更
- [SDCOMP-22192] ツールのABI準拠が、32-bit Application Binary Interface for the ARM Architectureのリリースv2.09へ更新されました。
ARM Compiler v5.06 update 4 で修正された不具合
Compiler(armcc)
- [SDCOMP-45708] 例外を無効にしてC++11コードをコンパイルするとき、コンパイラは、中括弧初期化子を使用して初期化されたクラスまたは構造体のオブジェクトを削除するときに、デストラクタを呼び出すことができないコードを誤って生成することがありました。これは修正されました。
- [SDCOMP-45545] -O1以上でコンパイルすると、複合式の変数に定数値が書き込まれたときにコンパイラが不正なコードをまれに生成する可能性がありました。これにより、変数に誤った値が書き込まれることがありました。これは修正されました。
- [SDCOMP-45522] -O3 -Otimeまたは--vectorizeでコンパイルすると、ループインデックスのエイリアスを指すポインタを逆参照するforループでコンパイラが誤ったコードをまれに生成することがありました。これにより、ループインデックスが間接参照されたときに不正な動作が発生する可能性があります。これは修正されました。
- [SDCOMP-45519] 特定の状況で、同じ構造体の少なくとも2つのビットフィールドメンバを-O1以上で変更する式をコンパイルすると、コンパイラは修正されたビットフィールドメンバをすべて更新しないコードを誤って生成する可能性がありました。これは修正されました。
- [SDCOMP-45508] 特定の状況で、-O3 -Otimeまたは--vectorizeを使用してコンパイルすると、コンパイラはforループに対して誤ったコードを生成し、暗黙の整数変換を必要とする右辺オペランドを持つコンマ演算子が含まれている関数を呼び出すことがありました。これは修正されました。
- [SDCOMP-45489] 特定の状況で、-O2以上でコンパイルすると、論理OR式のオペランドの両方が同じ非volatile変数にアクセスし、オペランドの少なくとも1つが副作用を持つ式である場合、コンパイラは不正なコードを生成する可能性がありました。これは修正されました。
- [SDCOMP-45484] まれに、-O1以上でコンパイルすると、同じバイナリ表現を持つ整数定数が少なくとも2つの式に現れると、コンパイラは不正なコードを生成する可能性がありました。定数は、動作を変更することなく、それらの式のサブセット内のより狭い整数型に暗黙的に変換されました。コンパイラは、完全な値を必要とする式で、より狭いバージョンの定数を誤って使用する可能性があり、結果として不正な動作が発生する可能性がありました。これは修正されました。
- [SDCOMP-45478] まれに、-O2以上でコンパイルすると、ソースコードに準拠しない条件付きおよびフラグ設定命令を含む一連のコードがコンパイラによって誤って生成される可能性がありました。これは修正されました。
- [SDCOMP-44744] まれに、多次元配列の要素である引数をunion型の関数パラメータに渡すコードを、-O3 -Otimeあるいは--vectorizeでコンパイルすると、コンパイラはエラーを誤って報告する可能性がありました。これは修正されました。
- [SDCOMP-29087] まれに、-O3 -Otimeと--cpp11を使用してコンパイルすると、コンパイラはInternal fault: [0x50bce4:<ver>]を起こすことがありました。これは修正されました。
- [SDCOMP-25441] 特定の状況で、言語が英語以外で、ソースロケールがUTF-8に設定されていない場合、コンパイラは誤ったエラーメッセージを報告する可能性がありました。これは修正されました。
Linker (armlink)
- [SDCOMP-30572] --cpuオプションを指定せずにプログラムをリンクするときに、input-file-listがライブラリのメンバのみを指定した場合、リンカはInternal fault: [0x4b0af3:<ver>] あるいは Internal fault: [0xec6eb7:<ver>]を発生することがありました。これは修正されました。
Libraries
- [SDCOMP-25153] ARMv6-M用のARMコンパイラライブラリの実装では、atof()、scanf()ファミリ、strtod()およびstrtold()は、のARMコンパイラライブラリの実装では、入力文字列が大きすぎてdoubleとして表現できない値のとき、不正な結果を返します。このような状況では、関数scanf()、strtod()、およびstrtold()もerrnoをERANGEに設定するのに誤って失敗します。これは、デフォルトで最近接丸め(round-to-nearest)の丸めモードに修正されました。この欠陥は他の丸めモードにも影響します。
その他の不具合
- [SDCOMP-45568] 7日間の評価ライセンスを使用してKeil MDKにARMコンパイラを統合すると、 FLEX=port@hostが定義されていないのにもかかわらず、C:KeilTools.ini内のFLEX_USEが誤って1に設定されることがありました。これは修正されました。
- [SDCOMP-45297] ツールは、ARMアーキテクチャの32-bit Application Binary Interfaceのリリース2.09ではなく、リリース2.10への適合を誤って宣言したオブジェクトを生成します。これは修正されました。