Arm Compiler for Embedded 6.21 のリリースノート
目次
-
紹介
-
Arm Compiler for Embedded 6.21 コンフィギュレーション
-
Arm Compiler for Embedded 6.21 でサポートされたこと
-
インストール方法とIDEへの統合
-
フィードバックとサポート
-
Arm Compiler for Embedded 6.21 での変更点
1. 紹介
Arm Compiler for Embedded 6.21 は、ベアメタルソフトウェア、ファームウェア、およびリアルタイムオペレーティングシステム(RTOS) アプリケーションを開発するための、Arm の最新の組み込みC/C++コンパイルツールチェインです。
ツールチェインは、次の Arm 統合開発環境 (IDE) と互換性があります:
-
Arm Development Studio
-
Keil MDK 5
-
Keil Studio for VS Code
Arm Compiler for Embedded は、Arm アーキテクチャの最新のアーキテクチャ機能と拡張のために、最も早く、最も完全で、正確なサポートを提供します。開発中のものも含め、すべての最新のArm プロセッサをサポートします。
強力な最適化手法と最適化されたライブラリを通して、Arm Compiler for Embedded は組み込みシステム開発者が挑戦的なパフォーマンス目標とメモリ制約を満たすことを可能にします。
Arm Compiler for Embedded は、自動車、家電、産業、医療、ネットワーク、鉄道、ストレージ、通信など、さまざまな業界のリーディングカンパニーで使用されています。
プロジェクトに長期保守要件または機能安全要件(EN 50128、IEC 61508、IEC 62304、またはISO 26262など)がある場合、Armは、本リリースの代わりに、
LTSおよび機能安全認証版
のArm Compiler for Embedded FuSa を検討することを強く推奨します。
Arm Compiler for Embedded 6.21 は2023年10月現在の最新リリースであり、それ以前のリリースの置き換えとなります。
本リリースのキーとなるハイライトは以下の通りです:
-
AArch64状態の Armv9.5-Aアーキテクチャのベータサポート
-
A-profileアーキテクチャの 2023 拡張機能の早期サポート
-
以下のプロセッサのサポート:
-
Cortex-X4
-
Cortex-A720
-
Cortex-A520
-
Armv6-M ターゲット用にビルドする場合の実行専用メモリ (XOM) 領域のサポート
-
次のセキュリティ脆弱性の軽減策のサポート:
-
PACMAN
-
Straight-Line Speculation (SLS)
Arm Compiler for Embedded または Armの統合開発環境(IDE)については、
代理店
にお問い合わせください。
1.1 Arm Compiler for Embedded 6.21 コンフィギュレーション
Arm Compiler for Embedded 6.21 は以下を含みます:
-
ツールチェインコンポーネント:
-
armclang:
LLVMとClangテクノロジをベースとしたコンパイラおよび統合アセンブラ
-
armar:
ELFオブジェクトファイル群をまとめるアーカイバ
-
armlink:
オブジェクトやライブラリをまとめ、実行可能形式を生成するリンカ
-
fromlef:
イメージ変換ユーティリティ兼逆アセンブラ
-
armasm:
非推奨となった古いArm アーキテクチャ専用のarmasm-syntaxアセンブリコード用の旧アセンブラ。新しいアセンブリファイルではarmclang統合アセンブラを使用
-
Arm C libraries:
組込みシステム向けのランタイムサポートライブラリ
-
Arm C++ libraries:
LLVM libc++プロジェクトベースのライブラリ
-
User documentation
:
-
User Guide:
ツールチェインの使用を助けるサンプルとガイドを提供します
-
Reference Guide:
ツールチェインの設定に役立つ情報を提供します
-
Arm C and C++ Libraries and Floating-Point Support User Guide:
Arm libraryと浮動小数点サポートに関する情報を提供します
-
Errors and Warnings Reference Guide:
Arm Compiler for Embedded に含まれるツールがレポートするエラーやワーニングのリストを提供します
-
Migration and Compatibility Guide:
Arm Compiler 5 からArm Compiler for Embedded への移行を支援する情報を提供します
-
Release notes: 最新のリリースノートは
Arm Compiler 6 ダウンロードページ
で確認できます。
1.2 Arm Compiler for Embedded 6.21 でサポートされたこと
ライセンス条件に従い、Arm Compiler for Embedded 6.21 を使用して、以下のArm アーキテクチャおよびプロセッサ用のビルドが行えます:
Architecture
|
Cortex(Standard)
|
Cortex(Automotive Enhanced)
|
Neoverse
|
Other
|
Armv9.5-A AArch64 [BETA] |
|
|
|
|
Armv9.4-AまでのArmv9-A |
X4, X3, X2
A715, A710, A510
A520, A510
|
|
V2
N2
|
|
Armv8.9-AまでのArmv8-A |
X1
A78C, A78, A77, A76, A75, A73, A72
A65
A57, A55, A53
A35, A34, A32 |
A78AE, A76AE
A65AE |
V1
N1
E1 |
|
Armv7-A |
A17, A15, A12
A9, A8, A7, A5 |
|
|
|
Armv8-R AArch64
(ハードウェア浮動小数点のみの実装) |
R82 |
|
|
|
Armv8-R |
R52+, R52 |
|
|
|
Armv7-R |
R8, R7, R5, R4F, R4 |
|
|
|
Armv8.1-MまでのArmv8-M |
M85, M55
M35P, M33
M23 |
|
|
STAR-MC1 |
Armv7-M |
M7, M4, M3 |
|
|
SecurCore SC300 |
Armv6-M |
M1, M0, M0+ |
|
|
SecurCore SC000 |
詳細については以下のドキュメントを参照してください:
2. インストール方法とIDEへの統合
Arm Product Download Hub (PDH) で入手できる Arm Compiler for Embedded 6.21 ツールチェインパッケージは2023年10月時点で以下の環境で使用することを想定としています:
Host architecture |
Host operating system |
Toolchain download package |
Host environment |
x86_64 |
Red Hat Enterprise Linux 9
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 7
Ubuntu Desktop Edition 22.04 LTS
Ubuntu Desktop Edition 20.04 LTS |
x86_64 Linux |
スタンドアロン製品として使用
Arm Development Studioに統合 |
Windows Server 2022
Windows Server 2019
Windows 11
Windows 10 |
x86_64 Windows |
スタンドアロン製品として使用
Arm Development Studioに統合 |
for Keil® MDK |
Keil MDK 5 に統合 |
AArch64 |
Ubuntu 20.04 LTS |
AArch64 Linux |
スタンドアロン製品として使用 |
✝ Arm は、このリリースに環境を追加する権利を留保します。
以下の制限が適用されます:
-
ツールチェインは、x86_32 Windowsホストプラットフォームでの使用を意図していません。
-
Linuxホストプラットフォームに必要な
glibc
の最小バージョンは 2.15 です。
-
ツールチェインを Arm Development Studio のインストールディレクトリに直接インストールしないでください。
-
Keil MDK 5 ライセンスでの使用は、x86_64 Windows ホストプラットフォームでのみ許可されます。
-
Keil MDK 5 で使用するには、Keil MDK 5 インストールディレクトリの
ARM
サブディレクトリにインストールする必要があります。例えば、
C:Keil_v5ARMARMCompiler6.21
詳細については、以下を参照してください:
-
ツールチェインのインストール手順については
Arm Compiler for Embedded User Guide
の
Installing Arm Compiler for Embedded
の章を参照してください。
-
ツールチェインを Arm Development Studio に統合する手順については、
Arm Development Studio Getting Started Guide
の
Register a compiler toolchain
の章を参照してください。
-
ツールチェインを Keil MDK 5 に統合する手順については、
µVision User's Guide
の
Manage Arm Compiler Versions
の章を参照してください。
-
ツールチェーンを
Keil Studio for VS Code
に統合する手順については、
Arm Keil Studio Visual Studio Code Extensions User Guide
を参照してください。
-
FlexNet Publisher(FNP)ライセンスを使用するようにツールチェインを構成する手順については、
Product and toolkit configuration for FlexNet Publisher (FNP) licenses
を参照してください。 FNPフローティングライセンスを使用している場合は、最新バージョンの
ライセンスサーバーソフトウェア
を使用してください。
-
User-based ライセンス(UBL)を使用するようにツールチェインを構成する手順については、
User-based ライセンスに関するドキュメンテーション
を参照してください。
3. フィードバックとサポート
お客様からのフィードバックは我々にとって重要です。
製品のいかなる側面についても、障害報告と改善に関する提案を歓迎します。
不具合修正と機能拡張は、Arm Compiler for Embedded maintenance ポリシーに従って将来のリリースに対して検討されます。
プロジェクトに長期保守要件または機能安全要件がある場合、
LTSおよび機能安全認証版
のArm Compiler for Embedded FuSa の使用を検討してください。
フィードバックあるいはサポートが必要な問題について、お仕事あるいはアカデミックなE-mailアドレスを使用してお客様の製品の購入元にご連絡をいただくか、可能であれば
caseをオープン
してください。
必要に応じて、以下の情報をお書き添えください:
-
ツールからの
--vsn
の出力
-
ツールが生成するエラーメッセージの完全な内容
-
問題を再現するのに必要なプリプロセス済みのソースコード、その他のファイル、コマンドラインオプション。プリプロセス済みのソースコードの生成方法はReference Guide 内の-E の章を参照してください。
当社へのお問い合わせは、
こちら
。
4. Arm Compiler for Embedded 6.21 での変更点
以下に、Arm Compiler for Embedded 6.21 シリーズのリリース日付を示します:
-
6.21 (2023年10月にリリースされました)
以下に、Arm Compiler for Embedded 6.21 での新しい機能と修正された不具合の概要を示します。
この章の範囲に関する情報については、
Does Arm document all known issues that affect each Arm Compiler release?
の記事を参照してください。
Arm Compiler for Embedded 6.21 はLong-Term Support (LTS) リリースではありません。Arm Compiler for Embedded maintenance ポリシーに従って、今後のリリースにおいてさらなる不具合修正と機能拡張が検討されます。
以下の情報には、技術的な不正確さや誤植が含まれる場合があります。
それぞれの変更点には、ユニークな識別子SDCOMP-
が割り振られています。
もしArmへこのリリースノート内の特定の問題について連絡が必要な場合、適切な識別子を通知してください
以下に直前のリリースであるArm Compiler 6.20 からの変更点を示します。
Arm Compiler for Embedded 6.21 での一般的な変更
-
[SDCOMP-64207] AArch64状態の Armv9.5-Aアーキテクチャのベータサポートが追加されました。Armv9.5-A および AArch64状態をターゲットにするには、次の
armclang
オプションを使用します:
-
--target=aarch64-arm-none-eabi -march=armv9.5-a
詳細については、
Reference Guide
の
-march
の章を参照してください。
-
[SDCOMP-64061] 下記のリンクモデルは非推奨となりました:
-
Base Platform
-
Base Platform Application Binary Interface (BPABI)
その結果、次のリンカー オプションは非推奨になりました:
-
--base_platform
-
--bpabi
-
--dll
-
--pltgot=<type>
-
--pltgot_opts=<mode>
基本プラットフォームと BPABIリンクモデルの詳細については、
Reference Guide
のの下記の章を参照してください:
-
Base Platform linking model overview
-
Base Platform Application Binary Interface (BPABI) linking model overview
-
[SDCOMP-64057] AArch64 状態の以下のA-プロファイル機能のサポートが追加されました:
機能識別子 |
機能の説明 |
-march / -mcpu +<feature> option(s) |
以前のサポートレベル |
新しいサポートレベル |
FEAT_ATS1A |
Armv8.9-A および Armv9.4-A のアドレス変換の機能強化 |
− |
未サポート |
サポート |
FEAT_CPA |
チェックポインタ演算 |
cpa |
未サポート |
Alpha |
FEAT_E3DSE |
EL3 の委任された SError 例外 |
− |
未サポート |
Beta |
FEAT_FAMINMAX |
絶対値の最大値と最小値の命令 |
FP8 |
未サポート |
Alpha |
FEAT_FGWTE3 |
ファイングレイン書き込みトラップ EL3 |
− |
未サポート |
Beta |
FEAT_FP8, FEAT_FP8DOT4, FEAT_FP8FMA, FEAT_FPMR |
Arm FP8フォーマット E5M2 および E4M3、および FP8命令 |
FP8 |
未サポート |
Alpha |
FEAT_HACDBS |
ダーティ状態をクリーンするためのハードウェアアクセラレータ |
− |
未サポート |
Beta |
FEAT_HDBSS |
ハードウェアのダーティ状態のトラッキング構造 |
− |
未サポート |
Beta |
FEAT_LUT |
ルックアップテーブルの説明 |
FP8 |
未サポート |
Alpha |
FEAT_PAuth_LR |
PC を返信アドレス署名の2番目の多様化手段として使用するための PAC の機能強化 |
pauth-lr |
未サポート |
Beta |
FEAT_SME_F8F16, FEAT_SME_F8F32 |
SME2 FP8命令 |
fp8 and sme2p1 |
未サポート |
Alpha |
FEAT_SME_LUTv2 |
追加の SME2ルックアップテーブルの手順 |
fp8 and sme2p1 |
未サポート |
Alpha |
FEAT_STEP2 |
ソフトウェアステップの強化 |
− |
未サポート |
Beta |
FEAT_TLBIW |
ダーティ状態の TLBI VMALL |
tlbiw |
未サポート |
Beta |
-march=<name>
オプションを使用してコンパイルした場合、コンパイラはデフォルトでこれらの機能の以下のサブセットを有効にします:
-march=<name>option |
有効化される機能 |
armv9.5-a |
FEAT_ATS1A, FEAT_CPA, FEAT_E3DSE, FEAT_FAMINMAX, FEAT_FGWTE3, FEAT_FP8, FEAT_FP8DOT4, FEAT_FP8FMA, FEAT_FPMR, FEAT_HACDBS, FEAT_HDBSS, FEAT_LUT, FEAT_STEP2 |
armv9.4-a |
FEAT_ATSIA |
armv8.9-a |
FEAT_ATSIA |
より詳細については以下を参照してください:
-
Reference Guide
内、
-march
の章
-
Reference Guide
内、
-mbranch-protection
の章
-
Reference Guide
内、
-mcpu
の章
-
Arm Architecture Reference Manual およびReference Manual Supplement 内の各機能に関連する項目
-
[SDCOMP-63881] Arm Cライブラリの standardlib バリアントの Arm Cライブラリのデフォルト初期化シーケンスは、スキャッタロードメカニズムをリージョンテーブルの内容のみの使用に制限するようになりました。
-
[SDCOMP-63875] Windowsホストプラットフォームで、ロングパスと呼ばれる 260 文字を超えるファイルパスのサポートが追加されました。
-
[SDCOMP-63862]PACMAN 脆弱性の緩和策として、AArch64 状態のリターン アドレス署名強化のサポートが追加されました。
より詳細については以下を参照してください:
-
[SDCOMP-63846] Cortex-A520プロセッサのサポートが追加されました。
Cortex-A520をターゲットにするには、以下の
armclang
オプションのいずれかを使用してください:
暗号化拡張 |
オプション |
あり |
--target=aarch64-arm-none-eabi -mcpu=cortex-a520 |
なし |
--target=aarch64-arm-none-eabi -mcpu=cortex-a520+nocrypto |
-
[SDCOMP-63845] Cortex-X4プロセッサのサポートが追加されました。
Cortex-X4をターゲットにするには、以下の
armclang
オプションのいずれかを使用してください:
暗号化拡張 |
オプション |
あり |
--target=aarch64-arm-none-eabi -mcpu=cortex-x4/td>
|
なし |
--target=aarch64-arm-none-eabi -mcpu=cortex-x4+nocrypto |
-
[SDCOMP-63839] Cortex-A720プロセッサのサポートが追加されました。
Cortex-A720をターゲットにするには、以下の
armclang
オプションのいずれかを使用してください:
暗号化拡張 |
オプション |
あり |
--target=aarch64-arm-none-eabi -mcpu=cortex-a720 |
なし |
--target=aarch64-arm-none-eabi -mcpu=cortex-a720+nocrypto |
-
[SDCOMP-63703] Armv6-Mターゲット用にビルドする場合の、実行専用メモリ (XOM) 領域のサポートが追加されました。下記オプションを選択してください:
armclang
:
-
-mexecute-only
実行専用コードを生成
armlink
:
-
--scatter=<filename>
と実行専用を配置する
+XO
セレクタースキャッタファイルを使用したコード
-
--xo_base=<address>
実行専用実行領域のベース アドレスを指定
より詳細については、
Reference Guide
の下記の章を参照してください:
-
-mexecute-only
-
--scatter=filename
-
--xo_base=address
-
Syntax of an input section description
-
[SDCOMP-63682] 以前は、 Link-Time Optimization (LTO) を有効にしてコンパイルすると、コンパイラはLLVMビットコード用に
.llvmbc
という名前の ELFセクションを生成していました。コンパイラは
.llvm.lto
という名前の ELFセクションを生成するようにしました。
-
[SDCOMP-63636] サニタイザー関数のサポートが追加されました。 サニタイザー関数を使用するには、
-fsanitize=function
を指定してコンパイルします。
より詳細については、
Reference Guide
の
-fsanitize、-fno-sanitize
の章を参照してください。
-
[SDCOMP-63605]
-nobuiltininc
オプションのサポートが追加されました。
より詳細については、以下をご参照ください:
-
Reference Guide
の
-nobuiltininc
の章
-
User Guide
の
Avoid linking in the Arm C library
の章
-
[SDCOMP-63376] AArch64状態のリリース整合性モデル機能の追加サポート(FEAT_LRCPC3) の Arm C Language Extensions(ACLE) 組み込み関数のサポートが追加されました。 FEAT_LRCPC3 を持つデバイスをターゲットにするには、
+rcpc3
を指定する
-march
または
-mcpu
オプションを使用してコンパイルします。
-
[SDCOMP-63068] 英語以外の Windowsホストプラットフォームへのインストールは、以下のエラーで誤って失敗する可能性がありました:
-
An error occurred while applying security settings. NT AUTHORITYAuthenticated Users is not a valid user or group.
-
[SDCOMP-62927] AArch64状態の Straight-Line Speculation の強化オプション
-mharden-sls=<option>
のサポートが追加されました。
より詳細については、以下をご参照ください:
Arm Compiler for Embedded 6.21 での不具合修正
armclang
-
[SDCOMP-63927] AArch64状態の
-fsanitize=memtag-stack
を指定してコンパイルする、また、メモリタグ付け拡張機能(FEAT_MTE) をサポートするターゲットの場合、コンパイラは不正なコードを生成する可能性がありました。
-
[SDCOMP-63917] AArch64状態にアセンブルする場合、インラインアセンブラおよび統合アセンブラは、
<Vm>.H[<index>]
形式の無効な2番目のソースレジスタを指定する
FMLAL
(要素別) または
FMLAL2
(要素別)命令のエラーを誤ってレポートできませんでした。インラインアセンブラと統合アセンブラは、次のエラーをするようになりました。
-
invalid operand for instruction
-
[SDCOMP-63834] AArch32状態にアセンブルする場合、インラインアセンブラおよび統合アセンブラは、データサイズを指定しない
VMOV
(汎用レジスタからスカラーへ)命令、またはデータサイズを指定しない
VMOV
(スカラーから汎用レジスタへ)命令について、下記のいずれかのエラーを誤ってレポートしていました:
-
invalid instruction
-
operand must be a register in range [r0, r15]
-
[SDCOMP-63761] AArch64状態および一般的な動的スレッドローカルストレージ (TLS) モデル用にコンパイルする場合、コンパイラは
__thread
変数または
thread_local
変数にアクセスする関数に対して不正なコードを生成する可能性がありました。
-
[SDCOMP-63752] AArch64状態および浮動小数点半精度乗算命令機能(FEAT_FHM) をサポートするターゲット用にコンパイルすると、コンパイラーは
vfmlalq_laneq_high_f16()
または
vfmlalq_laneq_low_f16()
Neon組み込み関数に対して不正なコードを生成する可能性がありました。
-
[SDCOMP-63688] スタック保護機能を有効にしてコンパイルすると、メイン拡張機能のない Armv6-Mターゲットまたは Armv8-Mターゲットの場合、コンパイラは、レジスタ
R4
を破壊する不正なコードを生成する可能性がありました。
-
[SDCOMP-63685]
-fsanitize=cfi
およびブランチターゲット識別 (BTI) を有効にする
-mbranch-protection=<protection>
オプションを指定してコンパイルする場合、
また、Main拡張を備えた Armv8.1-Mターゲットの場合、コンパイラは間接的な関数呼び出しに対して不正なコードを生成する可能性がありました。
-
[SDCOMP-63454] ビッグエンディアンターゲットおよび T32ステート用にコンパイルする場合、コンパイラは、 PC-relative
ADR
命令または命令とは異なる ELF セクション内のシンボルを参照するロードリテラル命令に対して不正なコードを生成する可能性がありました。
-
[SDCOMP-63077] AArch32状態用にコンパイルする場合、
__bf16
型の半精度浮動小数点値に対して
t
または
w
レジスタ制約を使用するインラインアセンブリステートメントがコードに含まれている場合、
インラインアセンブラが間違ったコードを生成し、次の致命的なエラーを誤ってレポートしていました:
-
error in backend: Cannot select: <value>: bf16 = bitcast <value>
-
[SDCOMP-62932] コンパイラは、構造体のビットフィールドメンバー
B
への C++構造化バインディングについて、誤ったデバッグ情報を生成する可能性がありました。さらに、コンパイラは、
B
が 8ビットバウンダリーにアライメントされていて、
B
のサイズが 8、16、32、または 64 ビットである場合にのみ、
B
のデバッグ情報を生成するようになりました。
-
[SDCOMP-62899] ブランチターゲット識別 (BTI) 保護を有効にする
-mbranch-protection=<protection>
オプションを指定してコンパイルする場合、
-fno-jump-tables [COMMUNITY]
オプションを使用しない場合、Main拡張を備えたArmv8-Mターゲットの場合、
コンパイラは、switchステートメントの制御式に基づく範囲チェックの実行に誤って失敗するコードを生成する可能性がありました。
-
[SDCOMP-62792]
-mbranch-protection=<protection>+leaf
を指定して、Main拡張を備えたArmv8-Mターゲットをコンパイルすると、コンパイラはリンクレジスタ (LR) をスタックに保存しない関数に対して不正なコードを生成する可能性がありました。
-
[SDCOMP-62791] AArch32状態で、
-O0
を除く最適化レベル、
-mfloat-abi=hard
を使用して、半精度浮動小数点のサポートを持つターゲットに対してコンパイルする場合、
コンパイラは、別の関数を呼び出すときに、ある関数から返された半精度浮動小数点の値を誤って保存しないコードを生成する可能性がありました。
-
[SDCOMP-62781] MVE整数サポートのみを含むターゲットに対して
-mexecute-only
および
-mfloat-abi=hard
を指定してコンパイルすると、コンパイラが次の致命的なエラーを誤ってレポートする可能性がありました:
-
error in backend: Cannot select: <value>: f32
-
[SDCOMP-62661] AArch64状態用にコンパイルする場合、コンパイラは可変個引数関数の呼び出しに対して不正なコードを生成する可能性がありました。
-
[SDCOMP-62354] AArch64状態およびメモリタグ付け拡張機能 (FEAT_MTE) をサポートするターゲットに対して
-fsanitize=memtag-heap
または
-fsanitize=memtag-stack
を指定してコンパイルすると、コンパイラが不正なコードを生成する可能性がありました。
-
[SDCOMP-62234] コンパイラは、関連するC標準仕様の
Predefined macro names
の章にリストされている定義済みマクロ名と字句的に同一の名前を指定する無効な
#undef
プリプロセッサマクロに関するワーニングを誤ってレポートできませんでした。コンパイラは次のワーニングをレポートするようになりました:
-
[SDCOMP-62221] Armv6-Mターゲット用にコンパイルする場合、コンパイラは
B.W
命令を誤って生成する可能性がありました。
-
[SDCOMP-61467]
-O0
を除く最適化レベルでコンパイルすると、コンパイラは半精度浮動小数点の非正規値を誤ってゼロにフラッシュするコードを生成する可能性がありました。
コンパイラは、半精度浮動小数点の非正規値のゼロへのフラッシュが常に無効であると想定し動作します。
-
[SDCOMP-61089] AArch32状態およびハードウェア浮動小数点命令をサポートしないターゲットに対して
-mfloat-abi=hard
を指定してコンパイルすると、
コンパイラは誤ってワーニングをレポートできませんでした。コンパイラは次のワーニングをレポートするようになりました:
-
'-mfloat-abi=hard': selected processor lacks floating point registers
-
[SDCOMP-59190] C++ソース言語モードでコンパイルすると、コンパイラがあいまいな参照に対するエラーのレポートを誤って失敗する可能性がありました。コンパイラは次のエラーをレポートするようになりました:
-
reference to '<name>' is ambiguous
-
[SDCOMP-54425] Main拡張を使用して Armv7-Mターゲットまたは Armv8-Mターゲット用にアセンブルする場合、
インラインアセンブラおよび統合アセンブラは、接尾辞
.W
を持つ
LDRB
、
LDRH
、
LDRSB
、
LDRSH
、
STRB
、または
STRH
命令に対して次のエラーを誤ってレポートする可能性がありました:
-
too many operands for instruction
armlink
-
[SDCOMP-63470]
-mcmodel=tiny
を使用してAArch64状態にコンパイルされた入力オブジェクトをリンクすると、リンカーが以下のことを誤ってレポートする可能性がありました:
-
Internal fault: [0xa6e935:<ver>]
-
[SDCOMP-62796] DWARF 5 デバッグ情報と
.debug_line_str
セクションを含む入力オブジェクトをリンクすると、リンカーはそのセクションを誤って含まないイメージを生成していました。
-
[SDCOMP-62732]
--no_merge
を指定せずにリンクすると、リンカーはマージされた文字列に対して誤ったデバッグ情報を生成する可能性がありました。
-
[SDCOMP-60627] C++ソース言語モードでコンパイルされ、リンク時間最適化 (LTO) が有効になっている入力オブジェクトをリンクすると、リンカーが以下のエラーを誤ってレポートすることがありました:
-
L6654E: Rejected Local symbol [Anonymous Symbol] referred to from non group member <object>(<section>)
-
[SDCOMP-59938] AArch64状態にリンクする場合、以下のリンカーオプションの出力では、静的関数の呼び出しが誤って考慮されていませんでした:
-
--callgraph
-
--info=stack
-
--info=summarystack
fromelf
-
[SDCOMP-63738]
fromelf
ユーティリティは、
WLS
または
WLSTP
命令のラベルオペランドを、PC相対オフセットではなく即時オフセットとして誤って逆アセンブルしていました。
-
[SDCOMP-63683]
-g
を使用して ELF形式の入力ファイルを処理し、入力ファイルがポインター認証コード (PAC) 分岐保護を有効にして AArch64状態用に構築されている場合、
fromelf
ユーティリティは呼び出しフレームのデバッグ情報で
DW_CFA_AARCH64_negate_ra_state
の代わりに
unknown(45)
を誤ってレポートしていました。
-
[SDCOMP-63390] デバッグ情報を含む ELF形式の入力ファイルを
-g
で処理するときに、
fromelf
ユーティリティは
DW_AT_*
形式の特定の DWARF属性を正しくデコードしていませんでした。
ライブラリとシステムヘッダ
-
[SDCOMP-62756] AArch64状態の
memmove()
関数の Arm Cライブラリ実装により、稀に4GBをコピーする時にメモリを誤って破損する可能性がありました。