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 |
詳細については以下のドキュメントを参照してください:
- Arm Development Studioプロダクトページ
- Keil MDK 5プロダクトページ
- Keil Studio for VS Codeプロダクトページ
- Arm Compiler for Embedded User Guideの Support level definitions の章
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_v5\ARM\ARMCompiler6.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
- [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 状態のリターン アドレス署名強化のサポートが追加されました。
より詳細については以下を参照してください:
- Reference Guide 内、-mharden-pac-retの章
- Reference Guide 内、__attribute__((target("options"))) function attributeの章
- User Guide 内、Security features supported in Arm Compiler for Embeddedの章
- PACMAN のセキュリティ脆弱性に関する記事(https://developer.arm.com/documentation/ka005109/latest)
- [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 を指定してコンパイルします。
- [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 AUTHORITY\Authenticated Users is not a valid user or group.
- [SDCOMP-62927] AArch64状態の Straight-Line Speculation の強化オプション -mharden-sls=<option> のサポートが追加されました。
- Reference Guideの-mharden-slsの章
- User Guide のOverview of Straight-Line Speculation hardeningの章
- Straight-Line Speculation Whitepaperの記事(https://developer.arm.com/documentation/102825/latest)
- [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 プリプロセッサマクロに関するワーニングを誤ってレポートできませんでした。コンパイラは次のワーニングをレポートするようになりました:
- undefining builtin macro
- [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
- [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
- [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をコピーする時にメモリを誤って破損する可能性がありました。
詳細については、Reference Guideの-marchの章を参照してください。
より詳細については、Reference Guideの-fsanitize、-fno-sanitizeの章を参照してください。
より詳細については、以下をご参照ください:
より詳細については、以下をご参照ください: