パッチプログラムをダウンロードするには、事前にARM社のコネクトサービスのアカウントを取得し、ログインしておく必要があります。アカウントの取得は以下のURL から無償で行う事ができます:
https://login.arm.com/register.php
ARM Compiler toolchain v5.03u3 (build 102)
このARM Compiler Toolchain v5.03 update 3 Build102 は、既存のDS-5を更新することを目的として使用されます。このパッチは、RVCT/RVDS での使用は適切でありません。
異なったバージョン番号を持つARMコンパイラの複数の機能リリースは、同一のマシンに共存インストール可能です。同一の機能リリースに対する複数のアップデートバージョン(例:5.03u1と5.03u2)を同一マシンにインストールすることはサポートされておりません。
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 Red Hat Linux Enterprise 5 for x86, 32-bit & 64-bit Red Hat Linux Enterprise 6 for x86, 32-bit & 64-bit Ubuntu Linux 10.04 LTS, 32-bit only Ubuntu Linux 12.04 LTS, 32-bit & 64-bit 注意:Ubuntu Linux 10.04 LTSは次リリースで削除される予定です。
パッチをインストールするには以下の手順で行います
Linux の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.tgz ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.sh" を実行し、画面の指示に従って、ARM Compiler v5.03をインストールしてください。
4.これでアップデートツールがインストールされます。
Windows の場合
1.上記サイトからパッチプログラムをダウンロードしてください。
2.ZIP ファイルをテンポラリディレクトリに解凍してください。
3.Installer ディレクトリ内の "setup.exe" をダブルクリックし、インストーラの画面の指示に従って、ARM Compiler v5.03をインストールしてください。
4.これでアップデートツールがインストールされます。
v5.03での不具合修正
アセンブラ(armasm)
- アセンブラは、M プロファイルコアにおいて条件実行 MSR インストラクションの IT ブロックの生成に失敗する場合があり、代わりに条件なしの命令を生成していました。この不具合は修正されました。 [SDCOMP-22671]
コンパイラ( armcc )
- インラインアセンブラと共に --multifile を使用した場合、まれに内部エラーまたはクラッシュする場合がありました。この不具合は修正されました。 [SDCOMP-22725]
- 関数に long long 型または double 型の引数が使用された場合、そのスタックオフセットがターゲット命令セットの LDR 即値の最大範囲を超え、引数の値が不正になることがありました。この不具合は修正されました。 [SDCOMP-22713]
- ループ内部で複数の型を使用した計算の最適化は、無効な型変換を引き起こし、これにより不正な結果となる場合がありました。-O3 -Otime のみで存在していたこの問題は修正されました。 [SDCOMP-22682]
- --thumb -Otime でコンパイルされた特定の状況下で、比較命令に続く同じレジスタを使用した条件比較命令はコンパイラによって不正に削除される場合がありました。この不具合は修正されました。 [SDCOMP-22624]
- -O3 -Otime によってループ展開が行われた後にコンパイラは不正に配列のオフセットを計算し、実行時に誤った結果になる場合がありました。この不具合は修正されました。 [SDCOMP-22597]
- 特定の状況下で -O3 -Otime で終端のあるループをコンパイルした場合、無限ループを生成する場合がありました。この不具合は修正されました。 [SDCOMP-22596]
- -O3 -Otime --vectorize --fpmode=fast でコンパイルした場合、float 型へのポインタ操作が含まれるループ最適化によって、内部エラー 0x63faa5 が発生することがありました。この不具合は修正されました。 [SDCOMP-22516]
- コンパイラは多次元配列が含まれるネストされたループのベクタライズ処理を不正に行う場合がありました。この不具合は修正されました。 [SDCOMP-22506]
- __packed union 内での __packed struct の使用は、内部エラー 0x005ba9 の原因となることがありました。この不具合は修正されました。 [SDCOMP-22457]
- -O1 以上の最適化で restrict ポインタを引数として使用したインライン関数で、不正なコードが生成される事がありました。この不具合は修正されました。 [SDCOMP-22401]
- 特定の状況下で、-O3 -Otime で参照されたポインタへの代入がインライン関数で展開された場合、内部エラー 0x87ecef が発生することがありました。この不具合は修正されました。 [SDCOMP-22374]
- -O3 -Otime --vectorize で、重複したポインタ経由で char 型から short 型へのコピーが行われた場合、コンパイラは不正にベクタライズ方式のコードを生成する場合がありました。また、コンパイラはベクタライズ方式ではないコードで、デクリメントループをインクリメントループに不正に変形することがありました。これらの不具合は修正されました。 [SDCOMP-22310]
- C++ コードを -O3 と共に例外処理を有効にしてコンパイルした場合、内部エラー 0xe35e83 が発生することがありました。この不具合は修正されました。 [SDCOMP-22045]
リンカ( armlink )
- リンカは、--feedback_image=simple で全ての必要なリンカ定義シンボルを定義しない場合があり、これによってエラー L6218E が発生する場合がありました。この不具合は修正されました。 [SDCOMP-22639]
- 実行リージョン内にベニアまたは、リンカによる生成物のみが含まれている場合、この実行リージョンにはリージョンテーブルエントリーが生成されません。これにより、実行時に不正なスキャッターローディングが行われることがありました。この不具合は修正され、リンカはエラー L6077E を生成するようになりました。 [SDCOMP-22590]
- リンカは未使用の __thread 変数に関連したデバッグ情報を取り扱う場合に、内部エラー 0x3d9eed を生成する場合がありました。この不具合は修正されました。 [SDCOMP-22514]