パッチプログラムをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.05 u2(build 169)
このARM Compiler Toolchain v5.05 u2(Build 169) は、ARM Compiler 5 製品のアップデートとして使用されることを意図しており、こららのいずれかの製品のライセンスと共に使用しなければなりません。このアップデートは、ARM DS-5プロダクト内のARM Compilerをアップデートするには適していません。ARM Compiler 5の様々な機能リリースは、同一のマシンに共存インストール可能です。同一の機能リリースに対する複数のアップデートバージョン(例:5.01u1と5.01u2)を同一マシンにインストールすることはサポートされておりません。
DS-5のパッチは、ARM社のWebサイトよりダウンロード可能です。
https://silver.arm.com/browse/DS500
このアップデートは、最新のコンパイラおよび、リンカ、アセンブラ、 fromelf、およびarmarの実行可能形式と、インクルードファイルおよびC / C++ ライブラリから構成されています。
サポートされるOSプラットフォーム
Windows XP Service Pack 3 (32-bit only) Windows Server 2003 SP2(非推奨) Windows Server 2008 R2 Windows Server 2012 (64-bit only) Windows 7 Enterprise SP1 Windows 7 Professional SP1 Windows 8 (64-bit only) RedHat Enterprise Linux 5 Desktop and Workstation option, Standard RedHat Enterprise Linux 6 Desktop and Workstation option, Standard Ubuntu Desktop Edition 12.04 LTS Ubuntu Desktop Edition 14.04 LTS (64-bit only)
Red Hat Enterprise Linux 6では時折デフォルトで32-bit互換ライブラリなしでインストールされることがあります。ARM CompilerをRed Hat Enterprise Linux 6で使用される場合は、32-bit Compatibility Libraryサポートをインストールする必要があります。 特にARM Compilerではglibcとlibmを必要とします。これらをインストールするには、yumコマンドが正しくセットアップされていることを確認したうえで、以下を入力してください:
# yum groupinstall "Compatibility Libraries"
パッチをインストールするには以下の手順で行います
Linux の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.tgz ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.sh" を実行し、画面の指示に従って、ARM Compiler v5.05 u2をインストールしてください。
4.これでアップデートツールがインストールされます。
Windows の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.ZIP ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.exe" をダブルクリックし、インストーラの画面の指示に従って、ARM Compiler v5.05 u2をインストールしてください。
4.これでアップデートツールがインストールされます。
v5.05 u2での注意点
ARM Compiler 5.05以降、ライセンスサーバソフトウェアはFlexNet Publisher 11.12.1.0以降を使用します。このバージョンは以前のFlexNet Publisherライセンスサーバソフトウェアと互換性がありません。 フローティングライセンスをご使用の場合は、armlmdおよびlmgrdをversion 11.12.1.0以降にアップデートする必要があります。 旧バージョンのライセンスサーバソフトウェアを使用している場合、ARM Compiler 5.05以降では次のエラーをレポートします: FLEXnet Licensing error:-7,10015 FlexNet Publisher 11.12.1.0以降のバージョンは https://silver.arm.com/browse/BX002 からダウンロード可能です。(登録およびログインが必要です)v5.05 u2での修正
Compiler(armcc)
- [SDCOMP-28936] -O2以上の最適化レベルで、まれな環境下においてコンパイラはネストした条件式または変数の代入に関する命令について不正なコードせ生成することがありました。
- [SDCOMP-28721] 特定の環境下において--cpp11 -O3 -Otime 使用時、Internal faultをレポートすることがありました。
- [SDCOMP-28710] 特定の環境下において--cpp11 使用時、constexpr指定子を誤って無視し、Error: #28: expression must have a constant valueまたはError: #3673: function call must have a constant value in a constant expressionをレポートすることがありました。
- [SDCOMP-28698] --cpp11 --exceptionsを使用して例外仕様の仮想デストラクタをコンパイルする際、不正にError: #766-D: exception specification for virtual
is incompatible with that of overridden をレポートすることがありました。 - [SDCOMP-28682] volatile class-type フィールドを間接的にインクルードするclass typeを含むunion のコンパイル時、不正にError: #294: invalid union member --
has a disallowed member function をレポートすることがありました。 - [SDCOMP-28680] --cpp11 --omf_browse=filename.crf 使用時、enum クラスまたはenum 構造体を伴って宣言されたスコープを持つenumeration においてInternal faultをレポートすることがありました。
- [SDCOMP-28676] class やstruct 内のメンバ関数のアドレスをストアするC++ コードのコンパイル時、read-only data セクションではなく、read-write data セクションにメンバ関数のアドレスを配置する事がありました。
- [SDCOMP-28423] --cpp11 -g または--cpp11 -debug 使用時、std::nullptr_t 型を使用するとInternal faultをレポートすることがありました。
- [SDCOMP-28421] --cpp11 使用時、std::nullptr_t 型のrvalue 参照への代入に関する式においてInternal faultをレポートすることがありました。
- [SDCOMP-28416] -O2 以上の最適化レベルにおいて、まれな環境下でnon-flag-setting バリアントではなく、flag-setting バリアントの命令を含む不正なコードシーケンスを生成することがありました。これにより、次の分岐命令が不正な動作をする可能性がありました。
- [SDCOMP-28407] non-PODなclass やstruct のテンポラリインスタンスの配列メンバにアクセスするコードをコンパイル時、Internal faultをレポートすることがありました。
- [SDCOMP-28374] 左辺側の代入がvolatile 変数であり、右辺側はvolatile 変数から/への代入を実行しない場合のチェインしたstruct への代入について不正なコードを生成することがありました。
- [SDCOMP-28275] -O2 以上の最適化レベルにおいて、まれな環境下で、同じバイナリで表される整数型の定数値が2つの異なった式で使用されており、最初の式が排他的論理和の含む場合、不正なコードを生成することがありました。
- [SDCOMP-28273] マルチバイトキャラクタの連続するバイトとしてみなすことができるような一般のASCIIキャラクタを使用したマルチバイトエンコーディングを使用しているソースファイルのプリプロセス時、コンパイラが不正に# 演算子を含むマクロを不正に拡張することがありました。これにより次のようなエラーが返されることがありました。Error: #54-D: too few arguments in invocation of macro
- [SDCOMP-26544] -O2 以上の最適化レベルにおいて、-Otime --vectorize を使用するとアドレス降順で配列や構造体をコピーするようなループにおいて、誤ってアドレス昇順でコピーを行うようなコードを生成することがありました。コピー元とコピー先のアドレス領域が重複している場合、これにより不正な動作を引き起こす可能性がありました。
- [SDCOMP-26227] --diag_warning=error を使用してエラーメッセージをワーニングにダウングレードする場合、コンパイラはzero exitコードが返されているにも関わらず、オブジェクトの生成に失敗することがありました。
- [SDCOMP-26218] -O3 -Otime 使用時、まれな環境下においてキャラクタ配列への参照をパラメータとしてとる関数への文字列リテラルを渡すコードのコンパイルの際に不正に文字列の最初のキャラクタへの文字列リテラルを削除することがありました。
- [SDCOMP-26055] __attribute__((at(address))) が、__attribute__((section("name"))) または異なった__attribute__((at(address))) によって上書きされる場合、ワーニングを発生させていませんでした。コンパイラはWarning: #3730-D: section name conflicts with previous declaration .ARM.__AT_<address> をレポートするようになりました。
- [SDCOMP-25885] ARM Compiler 5.05 (build 41) および5.05 update 1 (build 106) では、プリプロセッサマクロを含むコードのコンパイルに以前のARM Compiler 5 のリリースよりも非常に長い時間がかかっていました。
- [SDCOMP-25864] -O3 -Otime 使用時、まれな環境下においてmain() への関数のインライニングについて、インライン化された関数によるグローバル変数への書き込みを不正に削除することがありました。
- [SDCOMP-25839] __attribute__((const)) または__attribute__((noreturn)) が仮想メソッドとオーバーライドメソッドの両方に対して定義された場合、不正にError: #1510: function "__attribute__((__<entity>__))" present on overridden virtual function <entity> must be present on overridding function のエラーをレポートすることがありました。
- [SDCOMP-24447] 特定の環境下において、メモリではなくレジスタに割り当てられたデータに関するデバッグ情報を不完全に生成することがありました。
Linker (armlink)
- [SDCOMP-26510] 特定の環境下において、Error: L6286E: Relocation #
: ではなくError: L6286E: ARM Linker: Execution interrupted due to an illegal storage accessを誤ってレポートすることがありました。in ( ) with respect to . Value( ) out of range( ) for ( ) - [SDCOMP-26071] リンカが生成するLoad$$ シンボルへのリロケーションの解決時、1つまたはそれ以上前にある実行リージョン内のRWデータが圧縮されている場合に誤ってシンボルの値を計算することがありました。