Arm Compiler 6.14.1のリリースノート
目次
1. 紹介
これは、リリース時に提供されたリリースノートの最初のセットです。 リリースノートの 最新版 については、 https://developer.arm.com をご参照ください。
Arm Compiler 6.14.1では次の機能が追加されました:
- Cortex-A78、Cortex-X1のサポート
- Armv8-M:
- カスタムデータパス拡張(CDE)のアセンブリに対するサポート
- カスタムデータパス拡張(CDE)のACLE組み込み関数に対するβサポート
Arm Compiler 6.14.1はArm Compiler 6.14のアップデートリリースであり、以下のように使用されることを意図しています:
- Arm Development Studioに組み込み使用
- Keil MDKに組み込み使用
- 適切なツールキット用ライセンスを用いて、スタンドアロンでツールチェインをインストールして使用
ライセンスの購入についてはinfo-arm@dts-insight.co.jpへご連絡ください。
ライセンスの管理およびトラブルシューティングは以下のArm社webサイトをご覧いただくか、
https://developer.arm.com/support/licensing
弊社FAQのwebサイトをご覧ください。
フローティングライセンスをご使用の場合は、armlmdおよびlmgrdをversion 11.14.1.0以降にアップデートする必要があります。ARMでは、常にhttps://developer.arm.com/products/software-development-tools/license-management/downloadsから入手できる最新バージョンのライセンスサーバーソフトウェアを使用することをお勧めします。
1.1 Arm Compiler 6 の構成
Arm Compiler 6.14.1は以下を含みます。
- armclang:LLVMとClangテクノロジをベースとしたコンパイラおよび統合アセンブラ
- armasm:armasm-syntaxアセンブリコード用のアセンブラ。新しいアセンブリファイルではarmclang統合アセンブラの使用を推奨
- armar:ELFオブジェクトファイル群をまとめるアーカイバ
- armlink:オブジェクトやライブラリをまとめ、実行可能形式を生成するリンカ
- fromlef:イメージ変換ユーティリティ兼逆アセンブラ
- Arm C++ libraries:LLVM libc++プロジェクトベースのライブラリ
- Arm C libraries:組込みシステム向けのランタイムサポートライブラリ
1.2 Arm Compiler 6.14.1 でサポートされたこと
Arm Compiler は、Arm Development Studio(Arm DS)やKeil Microcontroller Development Kit(MDK)などのArm開発スイートの一部として提供されています。
お手持ちのツールのライセンスに従い、Armコンパイラ6.14.1は次のArmアーキテクチャとプロセッサのサポートを提供します:
アーキテクチャ | プロセッサ* |
将来のアーキテクチャ | - |
8.6-AまでのArmv8-A | Neoverse N1/E1 |
Cortex-X1/A78/A77/76AE/76/75/73/72/65AE/65/57/55/53/35/34/32 | |
Armv7-A | Cortex-A17/15/12/9/8/7/5 |
Armv8-R | Cortex-R52 |
Armv7-R | Cortex-R8/7/5/4F/4 |
8.1-MまでのArmv8-M | Star |
Cortex-M55/M35P/33/23 | |
Armv7-M | SC300 |
Cortex-M7/4/3 | |
Armv6-M | SC000 |
Cortex-M1/0/0+ |
アーキテクチャとプロセッサのサポートレベルの詳細については、開発スイートのドキュメントを参照してください。
- Arm DS : https://developer.arm.com/tools-and-software/embedded/arm-development-studio
- Keil MDK : https://developer.arm.com/tools-and-software/embedded/keil-mdk
Arm Compiler 6.14.1のダウンロードおよびArm DSまたはKeil MDKとともに使用する場合の設定方法については以下のサイトをご参照ください:
https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6
* 将来のアーキテクチャテクノロジおよび特定のプロセッサのサポートは、Arm DS Platinum Editionの一部としてのみ利用できます。Arm DS Platinum Editionは、最新のIPを開発するArmパートナー向けにデバイスがリリースされる前の開発用にのみ提供されています。Arm DS Gold Editionのすべての機能が含まれ、さらにArmから発表された最新のIPをサポートしています。詳細については、弊社info-arm@dts-insight.co.jp までお問い合わせください。
2. インストール方法
Arm Compiler 6.14.1が、ツールキット(例:Arm Development Studio)の一部として含まれている場合、ツールキットのインストーラがインストレーションプロセスを処理します。ツールキットのインストレーション方法を参照してください。
その他のケースの場合、Arm Compiler 6.14.1をどのように使用するかに依存して適切なインストレーションの場所を選択する必要があります:
- Arm Development Studio 2018.0 以降へ統合
- Keil MDK 5.22 以降へ統合
- スタンドアロン製品として使用
Keil MDKを使用していない場合は、Arm Compiler 6.14.1はデフォルトのインストレーションディレクトリを含む、その他任意の場所にインストールすることができます。ただし、Arm Development Studio製品のインストールディレクトリ外でなければなりません。
コンフィギュレーションの手順については以下のArm社サイトの手順に従ってください:
https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration
※本内容は弊社FAQページでも日本語での解説を行っております。内容の一部は保守契約ユーザ様にのみ公開をしておりますのであらかじめFAQページにログインの上ご参照ください:
Arm Compilerを呼びだす環境別のライセンスおよび設定について ( LIC-D-25 )
2.1. Arm Development Studio 2018.0 以降への統合
Arm Compiler 6.14.1 は、Arm Development Studioのデフォルトのインストレーションディレクトリを含む、その他任意の場所にインストールすることができます。
https://developer.arm.com/docs/101470/latest/configure-arm-development-studio/register-a-compiler-toolchain
で示す方法に従って、ツールチェーンをArm Development Studio 2018.0以降に統合することができます。
2.2. Keil MDK 5.22 以降への統合
Arm Compiler 6.14.1はKeil MDKインストレーションのARMサブディレクトリ以下にインストールする必要があります。たとえば、Keil MDKインストレーションがC:\Keil_v5\の場合、C:\Keil_v5\ARM\ARMCompiler6.14.1へインストールすることをおすすめします。
インストール後、
http://www.keil.com/support/man/docs/uv4/uv4_armcompilers.htm
のチュートリアルで示す方法に従って、MDKのプロジェクトへツールチェーンの統合が可能です。
Arm Compiler 6.14.1 32-bit Windowsバージョンのみが、Keil シングルユーザライセンスまたはKeil フローティングユーザライセンスと一緒に使用できます。
2.3. スタンドアロン製品として使用
環境変数ARMLMD_LICENSE_FILEがライセンスファイルまたはライセンスサーバーを指していることを確認してください。
2.4. Linuxへのインストール
Arm Compiler 6.14.1は、以下のサポート済み64-bitプラットフォームでテストされています:
- Red Hat Enterprise Linux 6 Workstation, 64-bit only.
- Red Hat Enterprise Linux 7 Workstation, 64-bit only.
- Red Hat Enterprise Linux 8 Workstation, 64-bit only.
- Ubuntu Desktop Edition 16.04 LTS, 64-bit only.
- Ubuntu Desktop Edition 18.04 LTS, 64-bit only.
Arm Compiler 6.14.1 は、古いプラットフォームでは動作しません。
Arm Compiler 6.14.1 をインストールするには、install_x86_64.sh を実行( sourceではありません) し、画面の指示に従ってください。インストーラは、Arm Compiler 6.14.1 をお客様が指定したディレクトリに解凍します。
armclang バイナリは、お客様の指定したディレクトリ内にArm Compiler 6.14 の一部としてインストールされたlibstdc++のコピーへ動的にリンクされています。
2.5. Windowsへのインストール
Arm Compiler 6.14.1 は、以下のサポート済み64-bitプラットフォームでテストされています:
- Windows Server 2012.
- Windows Server 2016.
- Windows 8.1.
- Windows 10.
Arm Compiler 6.14.1 は、古いプラットフォームでは動作しません。
Arm Compiler 6.14.1 は、2020年05月現在のWindows 10の最新の機能アップデートでテストされています。以降のアップデートでも問題なく動作することが期待されます。
Windows 64-bitホストプラットフォーム上でArm Compiler 6.14.1 をインストールするために、win-x86_64\setup.exeを実行し、画面の指示に従ってください。
Windows 32-bitホストプラットフォーム上でArm Compiler 6.14.1 をインストールするために、 win-x86_32\setup.exeを実行し、画面の指示に従ってください。
以前のバージョンのArm Compiler 6 がすでにインストールされており、アップグレードしたい場合は、以前のバージョンを一旦アンインストールしてから新しいバージョンのArm Compiler 6 をインストールいただくことを推奨します。
Arm Compiler 6.14.1 はMicrosoft Visual Studio 2017で構築されており、WindowsのUniversal C Runtimeをインストールする必要があります。詳細な情報は、
https://support.microsoft.com/en-gb/help/2999226/update-for-universal-c-runtime-in-windows
をご確認ください。
3. アンインストール
Linuxでは、Arm Compiler 6.14.1 インストールディレクトリを削除してください。
Windowsでは、コントロールパネルのプログラムの追加と削除からArm Compiler 6.14.1 を選択し、アンインストールボタンを押下してください。
4. ドキュメンテーション
Arm Compiler 6.14 の以下ドキュメントが利用可能です。
- User Guide
- Reference Guide
- Arm C and C++ Libraries and Floating-Point Support User Guide
- Migration and Compatibility Guide
- Errors and Warnings Reference Guide
2018年1月、Arm社は、脆弱性 Variant 1: bounds check bypass (CVE-2017-5753)に関する情報を公開しました。
https://developer.arm.com/support/security-update/compiler-support-for-mitigations
を参照し、 このArm CompilerリリースのMigration pathの推奨事項を使用して、この脆弱性を軽減してください。この軽減のAPIは変更される可能性があることに注意してください。
5. フィードバックとサポート
お客様からのフィードバックは我々にとって重要です。
製品のあらゆる局面において、欠陥報告と改善に関する提案を歓迎します。フィードバックあるいはサポートについて、お客様の製品の購入元あるいは、
https://support.developer.arm.com
へご連絡ください。
必要に応じて、ツールからの--vsnの出力、問題を再現するのに必要なソースコードおよびその他のファイルとコマンドラインを提供してください。
当社へのお問い合わせは、こちら。
6. リリース履歴と変更
以下に、Arm Compiler 6.14 シリーズのリリース日付を示します:
- 6.14.1 (2020年05月にリリースされました)
- 6.14 (2020年02月にリリースされました)
以下に、新しい機能と修正された不具合を含むそれぞれのリリースで変更された概要を示します。
特に指定がない限り、一つ前のリリースからの変更点を示します。
それぞれの項目別に分類され、ユニークな識別子SDCOMP-<NNNNN>を伴います。
もしARMへこのリリースノート内の特定の問題について連絡が必要な場合、適切な識別子を通知してください
Arm Compiler 6.14.1 での変更点
以下に直前のリリースであるArm Compiler 6.13からの変更点を示します。
Arm Compiler 6.14.1 での一般的な変更
- [SDCOMP-55616] Cortex-X1プロセッサをサポートしました。Cortex-X1プロセッサをターゲットとするには以下のarmclangオプションのいずれかを選択してください:
-
- AArch64状態では --target=aarch64-arm-none-eabi -mcpu=cortex-x1
- AArch32状態では --target=arm-arm-none-eabi -mcpu=cortex-x1
-
- [SDCOMP-55615] Cortex-A78プロセッサをサポートしました。Cortex-A78プロセッサをターゲットとするには以下のarmclangオプションのいずれかを選択してください:
-
- AArch64状態では --target=aarch64-arm-none-eabi -mcpu=cortex-a78
- AArch32状態では --target=arm-arm-none-eabi -mcpu=cortex-a78
-
- [SDCOMP-55611] Armv8-M以降のMain拡張に対するオプションのカスタムデータパス拡張(CDE)のArm C Language Extensions (ACLE)組み込み関数についてβサポートが行われました。CDE組み込み関数を使用するには、arm_cde.hシステムヘッダをインクルードしてください。
- [SDCOMP-54826] Armv8-M以降のMain拡張に対するオプションのカスタムデータパス拡張(CDE)のアセンブリについて完全なサポートが行われました。CDEをターゲットとするには以下のオプションを選択してください:
armclang:- --target=arm-arm-none-eabi -march=armv8-m.main+cdecpN:Armv8-MターゲットのMain拡張に対するNは0-7の範囲
- --target=arm-arm-none-eabi -march=armv8.1-m.main+cdecpN:Armv8.1-MターゲットのMain拡張に対するNは0-7の範囲
- --cpu=8-M.main --coprocN=value:Armv8-MターゲットのMain拡張に対するNは0-7の範囲、valueはcdeまたはCDEの値
- --cpu=8.1-M.main --coprocN=value:Armv8.1-MターゲットのMain拡張に対するNは0-7の範囲で、valueはcdeまたはCDEの値
Arm Compiler 6.14.1 で修正された不具合
コンパイラと統合されたアセンブラ(armclang)
- [SDCOMP-55798] 特定の環境下で、T32状態用にコンパイルするときに、コンパイラは、スタックにある64ビットのvolatile変数にアクセスする誤ったコードを生成する可能性がありました。
- [SDCOMP-55241] 特定の環境下で、-O0以外の最適化レベルでM-profile Vector Extension(MVE)を使用してArmv8.1-Mをターゲットとしてコンパイルする際、vctp *()組み込み関数の呼び出しを含むループに対して誤ったコードを生成する可能性がありました。
Arm Compiler 6.14.1 の既知の不具合
- [SDCOMP-54724] 特定の環境下で、-ffixed-r6 オプションを使用したコンパイル時、コンパイラはスタックのアライメント要件を満たさないコードを生成する可能性があります。
- [SDCOMP-54513] 特定の環境下でMプロファイルベクタ拡張組み込み関数のネストした呼び出しにおいて、コンパイル時にコンパイルに時間がかかりメモリを大量に消費する可能性があります。これを避けるには、Mプロファイルベクタ拡張組み込み関数のネストした呼び出しを行わないでください。
- [SDCOMP-54391] -fstack-protector-strong オプションを使用し、-O0 の最適化レベルでコンパイル時、コンパイラは配列以外のローカル変数の特定のアドレス取得を含む関数のスタック保護の有効化に失敗します。これを避けるには、-fstack-protector-strong ではなく-fstack-protector-all オプションを使用するようにしてください。
- [SDCOMP-50470] コンパイラは_Float16 データ型の不正なデフォルト引数の拡張を含む関数呼び出しのエラーのレポートに失敗します。