パッチプログラムをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.02u1 (build 54) †
このARM Compiler Toolchain v5.02u1 Build54 は、既存のDS-5を更新することを目的として使用されます。このパッチは、RVCT/RVDS での使用は適切でありません。
異なったバージョン番号を持つARMコンパイラの複数の機能リリースは、同一のマシンに共存インストール可能です。同一の機能リリースに対する複数のアップデートバージョン(例: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 Windows Server 2008 R2 Windows 7 Enterprise Windows 7 Professional Red Hat Linux Enterprise 4 for x86, 32-bit & 64-bit Red Hat Linux Enterprise 5 for x86, 32-bit & 64-bit Ubuntu Linux 10.04LTS (32-bit only)
パッチをインストールするには以下の手順で行います
Linux の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.tgz ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.sh" を実行し、画面の指示に従って、ARM Compiler v5.02をインストールしてください。
4.これでアップデートツールがインストールされます。
Windows の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.ZIP ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.exe" をダブルクリックし、インストーラの画面の指示に従って、ARM Compiler v5.02をインストールしてください。
4.これでアップデートツールがインストールされます。
v5.02u1での不具合修正
アセンブラ( armasm )
- アセンブラは、不正に 0 の即値シフトを伴う ASRS 命令を受け入れていました。この問題は修正され、エラー A1482E がレポートされるようになりました。 [SDCOMP-19282]
- ARM1176JZ-S 等の 6Z アーキテクチャの CPU 上で、armasm の組み込み変数 {ARCHITECTURE} は 6Z 以外に拡張されていました(例:6K 等)。この不具合は修正されました。 [SDCOMP-16050]
- 32 ビット Thumb 命令セットに対応した CPU 上で、Thumb ステートでソースレジスタに PC が使用された MOV.W 命令をアセンブルした場合、正常にエラー A1477E がレポートされるようになりました。[SDCOMP-14694]
コンパイラ( armcc )
- integer から float または double 型にキャストを行った場合、コンパイラは不正な変換命令を生成し、誤った結果となる場合がありました。この不具合は修正されました。 [SDCOMP-20008]
- mutable メンバが含まれる構造体の const 配列を定義した場合、コンパイラはこの配列を不正に RO セクションに配置させていました。この不具合は修正されました。 [SDCOMP-19851]
- 16 ビット Thumb をターゲットする特定の状況下で、 __disable_irq() または __disable_fiq() は、 内部エラー 0x87ecef が発生する要因となっていました。この不具合は修正されました。 [SDCOMP-19836]
- 8 または 16 ビットの領域に値をストアし、それをリロードする場合に、リロードした結果が不正に切り捨てられる場合がありました。例えば、共用体の符号付き short メンバをストアし、それに続いて対応する符号無し short メンバをリロードした場合、最上位 16 ビットが全てゼロに設定されていない値をもたらす可能性がありました。この不具合は修正されました。 [SDCOMP-19800]
- volatile ポインタを通して volatile ではない変数にアクセスした場合、volatile としての振る舞いは配慮されていませんでした。この不具合は修正されました。 [SDCOMP-19713]
- 特定の状況下で複数のロードまたはストア命令が使用された場合、コンパイラは不正に誤った値をメモリに書き込みまたは読み込みするコードを生成する場合がありました。この不具合は修正されました。 [SDCOMP-19681]
- 最適化レベル -O1 以上で、コンパイラは reinterpret_cast 操作を実行する場合に volatile 修飾子を保持に失敗することがありました。この結果、不正なコード生成がなされる事がありました。この不具合は修正され、reinterpret_cast 操作において適切に volatile 修飾子が保持されます。 [SDCOMP-19511]
- Thumb ステート内の特定の状況下で、16 ビット条件実行が使用された場合に、コンパイラは内部エラー 0xe4ffdb を発生する事がありました。この不具合は修正されました。 [SDCOMP-19395]
- -O2 -Otime が指定された特定の状況下で、コンパイラは不正にレジスタの保存を最適化し、この結果予想外の関数からのリターンとメンバ関数が使われたコードによるステート復帰が行われる場合がありました。この不具合は修正されました。 [SDCOMP-19340]