パッチプログラムをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.04 u1(build 49)
このARM Compiler Toolchain v5.04 update 1 Build 49 は、既存のDS-5を更新することを目的として使用されます。このパッチは、RVCT/RVDS での使用は適切でありません。
異なったバージョン番号を持つARMコンパイラの複数の機能リリースは、同一のマシンに共存インストール可能です。同一の機能リリースに対する複数のアップデートバージョン(例:5.03u2と5.03u3)を同一マシンにインストールすることはサポートされておりません。
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 Service Pack 1
Windows 7 Professional Service Pack 1
Windows 8 (64-bit)
Red Hat Linux Enterprise 5 for x86, 32-bit & 64-bit
Red Hat Linux Enterprise 6 for x86, 32-bit & 64-bit
Ubuntu Linux 12.04 LTS, 32-bit & 64-bit
パッチをインストールするには以下の手順で行います
Linux の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.tgz ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.sh" を実行し、画面の指示に従って、ARM Compiler v5.04をインストールしてください。
4.これでアップデートツールがインストールされます。
Windows の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.ZIP ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.exe" をダブルクリックし、インストーラの画面の指示に従って、ARM Compiler v5.03をインストールしてください。
4.これでアップデートツールがインストールされます。
ARM Compiler v5.4 u1 ( Build 49 ) 改善と訂正
v5.04 u1での修正
一般的な改善
-
Cortex-A17 CPUのサポートを追加しました。以下からターゲットの選択が可能です:
--cpu=Cortex-A17
(NEONとVFPのサポート有)
--cpu=Cortex-A17.no_neon.no_vfp
(NEONとVFPのサポート無)
[SDCOMP-23838]
アセンブラ(armasm)
-
2つ以上別々に
-I
オプションを
--cpreproc
とともに指定したとき、アセンブラがコンパイラにインクルードディレクトリを渡すのに失敗し、A1905Uエラーを起こしていました。[SDCOMP-23935]
コンパイラ(armcc)
-
-O2
以上の最適化レベルにおいて、ごく稀な環境下でコンパイラが
struct
または
class
のデータメンバへの代入に対し、誤ったストアのシーケンスを生成する可能性がありました。[SDCOMP-23768]
-
-O3 -Otime
指定時、
(c/-a)
の形式の式に対し
c
が
INT_MIN
の値を、
a
が
INT_MAX
の値をそれぞれ取るとき誤った置換が行われ、演算結果のオーバーフローを引き起こす可能性がありました。[SDCOMP-23761]
-
-O3 -Otime
指定時、定数値のループリミット且つインクリメント値がグローバル変数から読み出されるネストしたループの展開において、コンパイラが誤って全てのループの繰り返し回数の再現に失敗することがありました。[SDCOMP-23760]
-
-O2
以上の最適化レベルにおいて、コンパイラは同一の
volatile
である場所からの2回の連続したロードに関連する特定の式について、2回のロードが常に同じ値を返すと保証されたような最適化を行う可能性がありました。[SDCOMP-23685]
-
-O2
以上の最適化レベルにおいて、定数であるとわかっている値に対しての比較で、条件付きで、
lvalueが
定数にセットされた後続いてその他の定数によってシフトされる場合、コンパイラはシフトが存在しないかのように誤った比較が行われる可能性がありました。[SDCOMP-23642]
-
-O1
以上の最適化レベルにおいて、要素の最上位ビットがセットされている場合、文字列リテラルの要素が
unsigned char
のポインタを経由してアクセスされると値が誤って符号拡張される可能性がありました。[SDCOMP-23582]
-
-O1 -Otime
以上の最適化レベルにおいて、定数
M
、
T
および
F
による条件式
((e%M)? T : F)
をコンパイル時に式の条件内において2度のネストがある場合やif式の条件内に1度のネストがある場合internal faultが発生する可能性がありました。例:
((((e%M)? T : F)? T1 : F1)? T2 : F2)
あるいは
if ((((e%M)? T : F)? T1 : F1){ .. }
[SDCOMP-23551]
-
仮想テーブルを必要とする型定義を含む匿名のネームスペースのコンパイル時にinternal fault 0x87ecefが発生する可能性がありました。[SDCOMP-23494]
-
-O3 -Otime
指定時、
A
が定数の初期値を伴って定義される構造体の要素で、
c1
と
c2
が定数の場合に、
A[c1][c2]
の式を含むif条件式においてinternal fault 0x2d15b6が発生する可能性がありました。[SDCOMP-23386]