Arm Compiler for Embedded 6.18 のリリースノート
目次
-
紹介
-
Arm Compiler for Embedded 6.18 コンフィギュレーション
-
Arm Compiler for Embedded 6.18 でサポートされたこと
-
インストール方法とIDEへの統合
-
フィードバックとサポート
-
リリース履歴と変更
-
Arm Compiler for Embedded 6.18 での変更点
1. 紹介
Arm Compiler for Embedded 6.18 は、ベアメタルソフトウェア、ファームウェア、およびリアルタイムオペレーティングシステム(RTOS) アプリケーションを開発するための、Arm の最新の組み込みC/C++コンパイルツールチェインです。
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.18 は2022年03月現在の最新リリースであり、それ以前のリリースの置き換えとなります。
Arm Compiler for Embedded 6.18 のキーとなる機能は以下のサポートを含みます:
-
Armv9.3-A
-
Armv8.8-A
-
A-プロファイル Hinted Conditional Branches Extension
-
A-プロファイル Memory Operations Extension
-
Armv8.4-A でのオプションAArch64パフォーマンスモニタ拡張機能サポートの有効および無効化機能
-
SVEおよびSVE2の自動ベクタライズ
-
Cortex-X1Cプロセッサ
-
AArch64 Ubuntu Desktop Edition 20.04 LTSホストプラットフォームでのツールチェーンの使用
-
User-based ライセンシング
1.1 Arm Compiler for Embedded 6.18 コンフィギュレーション
Arm Compiler for Embedded 6.18 は以下を含みます:
-
ツールチェインコンポーネント:
-
armclang:
LLVMとClangテクノロジをベースとしたコンパイラおよび統合アセンブラ
-
armar:
ELFオブジェクトファイル群をまとめるアーカイバ
-
armlink:
オブジェクトやライブラリをまとめ、実行可能形式を生成するリンカ
-
fromlef:
イメージ変換ユーティリティ兼逆アセンブラ
-
armasm:
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 ダウンロードページ
で確認できます。
ツールチェインは以下で使用できます:
-
Arm Development Studio ツールキットとともに使用
-
Keil MDK ツールキットとともに使用
-
スタンドアローンなインストレーションとして使用
これらの商品については、
代理店
にお問い合わせください。
ライセンス管理や、トラブルシューティングの為のリソースは
https://developer.arm.com/support/licensing
よりアクセスできます。
1.2 Arm Compiler for Embedded 6.18 でサポートされたこと
ライセンス条件に従い、Arm Compiler for Embedded 6.18 を使用して、以下のArm アーキテクチャおよびプロセッサ用のビルドが行えます:
Architecture
|
Cortex
|
Neoverse
|
Other
|
Standard
|
Automotive Enhanced
|
Armv9.3-AまでのArmv9-A |
X2
A710, A510 |
|
|
|
Armv8.8-AまでのArmv8-A |
X1C, X1
A78C, A78, A77, A76, A75, A73, A72
A65
A57, A55, A53
A35, A34, A32 |
A78AE, A76AE
A65AE |
V1
N2, N1
E1 |
|
Armv7-A |
A17, A15, A12
A9, A8, A7, A5 |
|
|
|
Armv8-R AArch64 [BETA] |
R82 [BETA] |
|
|
|
Armv8-R |
R52+, R52 |
|
|
|
Armv7-R |
R8, R7, R5, R4F, R4 |
|
|
|
Armv8.1-MまでのArmv8-M |
M55
M35P, M33
M23 |
|
|
STAR-MC1 |
Armv7-M |
M7, M4, M3 |
|
|
SecurCore SC300 |
Armv6-M |
M1, M0, M0+ |
|
|
SecurCore SC000 |
アーキテクチャとプロセッサのサポートレベルの詳細については、関連するIDE のドキュメントを参照してください。
[COMMUNITY], [ALPHA], および [BETA] 機能についての詳細はUser Guide内のSupport level definitionsの章を参照してください。
将来のアーキテクチャテクノロジおよび特定のプロセッサのサポートは、Arm DS Platinum Editionの一部としてのみ利用できます。Arm DS Platinum Editionは、最新のIPを開発するArmパートナー向けにデバイスがリリースされる前の開発用にのみ提供されています。Arm DS Gold Editionのすべての機能が含まれ、さらにArmから発表された最新のIPをサポートしています。詳細については、弊社
info-arm@dts-insight.co.jp
までお問い合わせください。
2. インストール方法とIDEへの統合
Arm Compiler for Embedded 6.18 は以下のホストアーキテクチャとホストオペレーティングシステムをサポートします:
Host architecture |
Host operating system |
Toolchain download package |
サポートされる使用方法 |
x86_64 |
Red Hat Enterprise Linux 7
Red Hat Enterprise Linux 8
Ubuntu Desktop Edition 18.04 LTS
Ubuntu Desktop Edition 20.04 LTS |
x86_64 Linux |
スタンドアロン製品として使用
Arm Development Studioに統合 |
Windows Server 2012
Windows Server 2016
Windows Server 2019
Windows 8.1
Windows 10 |
x86_64 Windows |
スタンドアロン製品として使用
Arm Development Studioに統合 |
x86_64 Windows for Keil MDK |
Keil MDKに統合 |
AArch64 |
Ubuntu Desktop Edition 20.04 LTS |
AArch64 Linux |
スタンドアロン製品として使用 |
注意:
-
Arm Compiler for Embedded 6.18 は、以下の環境での動作は期待できません
-
上記にリストされたものより古いホストオペレーティングシステムプラットフォーム
-
2.15よりも古いglibcのバージョンのLinuxホストオペレーティングシステム
-
Keil MDKライセンスを使用する場合、Arm Compiler for Embedded 6.18 はWindowsプラットフォームのみサポートします。
-
Windows 32-bit x86 ホストプラットフォームはサポートされません。
-
FlexNet Publisher フローティングライセンスを使用する場合、ライセンスサーバで
armlmd
と
lmgrd
の両方においてversion 11.14.1.0 以上を実行している必要があります。Armは常に
https://developer.arm.com/products/software-development-tools/license-management/downloads
から入手できる、最新のバージョンのライセンスサーバソフトウェアをお使いいただくことを推奨します
ツールキット、例えばArm Development Studio の一部としてArm Compiler for Embedded 6.18 を受け取った場合、ツールキットのインストーラはインストールプロセスを実行します。
この場合、ツールキットのインストール手順に従ってください。
それ以外の場合、Arm Compiler for Embedded 6.18 の使用方法に応じて適切なインストール場所を選択する必要があります:
-
Arm Development Studio Bronze/Silver/Gold Edition 2021.2 以降に統合
-
Arm Development Studio Platinum Edition 2021.c 以降に統合
-
Keil MDK-Professional 5.36 以降に統合
-
スタンドアロン製品として使用
関連する手順については以下を参照してください:
3. フィードバックとサポート
お客様からのフィードバックは我々にとって重要です。
製品のいかなる側面についても、障害報告と改善に関する提案を歓迎します。
不具合修正と機能拡張は、Arm Compiler for Embedded maintenance ポリシーに従って将来のリリースに対して検討されます。
プロジェクトに長期保守要件または機能安全要件がある場合、
LTSおよび機能安全認証版
のArm Compiler for Embedded FuSa の使用を検討してください。
フィードバックあるいはサポートが必要な問題について、お仕事あるいはアカデミックなE-mailアドレスを使用してお客様の製品の購入元にご連絡をいただくか、可能であれば
https://support.developer.arm.com
でcaseをオープンしてください。
必要に応じて、以下の情報をお書き添えください:
-
ツールからの
--vsn
の出力
-
ツールが生成するエラーメッセージの完全な内容
-
問題を再現するのに必要なプリプロセス済みのソースコード、その他のファイル、コマンドラインオプション。プリプロセス済みのソースコードの生成方法はReference Guide 内の-E の章を参照してください。
当社へのお問い合わせは、
こちら
。
4. リリース履歴と変更
以下に、Arm Compiler for Embedded 6.18 シリーズのリリース日付を示します:
-
6.18 (2022年03月にリリースされました)
以下に、Arm Compiler for Embedded 6.18 での新しい機能と修正された不具合の概要を示します。
Arm Compiler for Embedded 6.18 は長期メンテナンスリリースではありません。Arm Compiler for Embedded maintenance ポリシーに従って、今後のリリースにおいてさらなる不具合修正と機能拡張が検討されます。
以下の情報には、技術的な不正確さや誤植が含まれる場合があります。
それぞれの変更点には、ユニークな識別子SDCOMP-
が割り振られています。
もしArmへこのリリースノート内の特定の問題について連絡が必要な場合、適切な識別子を通知してください
Arm Compiler for Embedded 6.18 での変更点
以下に直前のリリースであるArm Compiler 6.17 からの変更点を示します。
Arm Compiler for Embedded 6.18 での一般的な変更
-
[SDCOMP-60274] Armv9.3-A アーキテクチャのサポートが追加されました。Armv9.3-A をターゲットとするには以下のarmclangオプションを使用してください:
状態 |
オプション |
AArch64 |
--target=aarch64-arm-none-eabi -march=armv9.3-a |
AArch32 |
--target=arm-arm-none-eabi -march=armv9.3-a |
-
[SDCOMP-60273] Armv8.8-A アーキテクチャのサポートが追加されました。Armv8.8-A をターゲットとするには以下のarmclangオプションを使用してください:
状態 |
オプション |
AArch64 |
--target=aarch64-arm-none-eabi -march=armv8.8-a |
AArch32 |
--target=arm-arm-none-eabi -march=armv8.8-a |
-
[SDCOMP-60265] ツールは以前STAR-MC1プロセッサに対してStarという名前を使用していました。これは変更され、STAR-MC1をターゲットとするには以下のオプションを使用してください:
DSP |
浮動小数点 |
armclang |
armasm、armlink およびfromelf |
含まれる |
含まれる |
--target=arm-arm-none-eabi -mcpu=star-mc1 |
--cpu=Star-MC1 |
含まれる |
含まれない |
--target=arm-arm-none-eabi -mcpu=star-mc1 -mfloat-abi=soft |
--cpu=Star-MC1.no_fp |
含まれない |
含まれる |
--target=arm-arm-none-eabi -mcpu=star-mc1+nodsp |
--cpu=Star-MC1.no_dsp |
含まれない |
含まれない |
--target=arm-arm-none-eabi -mcpu=star-mc1+nodsp -mfloat-abi=soft |
--cpu=Star-MC1.no_dsp.no_fp |
-
[SDCOMP-60138] 以前、コンパイラはC++ non-PODタイプに対する __attribute__((packed)) を無視していませんでした。コンパイラはこれを無視するようになりました。
-
[SDCOMP-60121] Linux ホストプラットフォーム用Arm Compiler for Embedded インストーラは以下のオプションのサポートを廃止しました。
-
[SDCOMP-60066] 以下のオプション機能に対する自動ベクタライズをサポートしました:
-
Armv8-A Scalable Vector Extension (SVE)
-
Armv9-A Scalable Vector Extension version 2 (SVE2)
より詳細についてはReference Guide内-fvectorize, -fno-vectorizeの章を参照してください。
-
[SDCOMP-60044] Arm Compiler for Embedded はAArch64 Ubuntu Desktop Edition 20.04 LTS ホストオペレーティングシステムをサポートしました。このようなシステム上でコンパイラを使用するにはAArch64 Linux パッケージをダウンロードしてください。
-
[SDCOMP-59863] A-プロファイル Hinted Conditional Branches Extension をサポートしました。拡張機能の特定の機能セットコンフィギュレーションをターゲットとするには、次のオプションから選択してください:
Base Architecture |
デフォルト |
Armv9.3-A |
拡張有効 |
Armv9.2-A |
拡張無効 |
Armv8.8-A |
拡張有効 |
Armv8.7-A |
拡張無効 |
-
デフォルトで無効化されている拡張を有効にするには
+hbc -march
または
-mcpu
オプションを使用してコンパイルしてください。
-
デフォルトで有効化されている拡張を無効にするには
+nohbc -march
または
-mcpu
オプションオプションを使用してコンパイルしてください。
より詳細については、Reference Guide内の-marchおよび-mcpuの章を参照してください。
-
[SDCOMP-59736] C++11およびそれ以降のソース言語モードのPointer safety
[util.dynamic.safety]
機能用Arm C++ ライブラリのサポートは廃止されました。
std::pointer_safety
タイプおよび以下のpointer safety 関数はサポートされません:
-
std::declare_no_pointers()
-
std::declare_reachable()
-
std::get_pointer_safety()
-
std::undeclare_no_pointers()
-
std::undeclare_reachable()
-
[SDCOMP-59400] A-プロファイル Memory Operations Extension をサポートしました。拡張機能の特定の機能セットコンフィギュレーションをターゲットとするには、次のオプションから選択してください:
Base Architecture |
デフォルト |
Armv9.3-A |
拡張有効 |
Armv9.2-A |
拡張無効 |
Armv8.8-A |
拡張有効 |
Armv8.7-A |
拡張無効 |
-
デフォルトで無効化されている拡張を有効にするには
+mops -march
または
-mcpu
オプションを使用してコンパイルしてください。
-
デフォルトで有効化されている拡張を無効にするには
+nomops -march
または
-mcpu
オプションオプションを使用してコンパイルしてください。
より詳細については、Reference Guide内の-marchおよび-mcpuの章を参照してください。
-
[SDCOMP-59207] 以下のリンカワーニングは注釈にダウングレードされました:
-
L6413W: Disabling merging for <object>(<section>), Section contains misaligned string(s)
-
[SDCOMP-58875] 以下のリンカワーニングは注釈にダウングレードされました:
-
L6440W: Disabling merging for <object>(<string_section>), unsupported relocation R_ARM_REL32 from <object>
(<other_section>) to STT_SECTION type symbol
-
[SDCOMP-58814] -march および-mcpuオプションに対する+pmuv3 および+nopmuv3 の機能のサポートが追加されました。これらの機能はAArch64 Performance Monitors Extension に対するオプションのサポートを有効または無効にします。これらの追加のサポートをコンフィギュレーションするには次のオプションからいずれかを選択してください。:
ターゲット |
デフォルト |
+pmuv3 |
+nopmuv3 |
Armv8-A, Armv9-A, Armv8-R アーキテクチャ |
無効 |
有効 |
無効 |
Armv8-A, Armv9-A, Armv8-R プロセッサ |
有効 |
有効 |
無効 |
-
これらの機能は、C/C++ソースコードの_builtin_readcyclecounter()の呼び出しのコード生成のみを制御します。
-
特定のアーキテクチャおよびプロセッサに対するデフォルトの動作がArm Compilerfor Embedded 6.17 以降、変更されていることに注意してください。
-
より詳細については、Reference Guide内の-marchおよび-mcpuの章を参照してください。
Arm Compiler for Embedded 6.18 での機能改善
armclang
-
[SDCOMP-59790] Cortex-X1C プロセッサのサポートが追加されました。Cortex-X1C をターゲットとするには以下のarmclangオプションを使用してください:
状態 |
Cryptographic Extension |
オプション |
AArch64 |
あり |
--target=aarch64-arm-none-eabi -mcpu=cortex-x1c |
AArch64 |
なし |
--target=aarch64-arm-none-eabi -mcpu=cortex-x1c+nocrypto |
AArch32 |
あり |
--target=arm-arm-none-eabi -mcpu=cortex-x1c -mfpu=crypto-neon-fparmv8 |
AArch32 |
なし |
--target=arm-arm-none-eabi -mcpu=cortex-x1c -mfpu=neon-fp-armv8 |
-
[SDCOMP-59314] トリビアルな自動変数の初期化を制御する
-ftrivial-auto-var-init
オプションをサポートしました。
より詳細についてはReference Guide内-ftrivial-auto-var-init の章を参照してください。
-
[SDCOMP-57657] 以前、C++14およびそれ以降のソース言語モードでコンパイルする際デフォルトで
-fno-sized-deallocation
が選択されていました。これは変更され、このような状況では
-fsized-deallocation
オプションがデフォルトで選ばれるようになりました。
-
[SDCOMP-57610] Aggresive Jump Threading(AJT) 最適化を有効または無効化する
-faggressive-jump-threading
および
-fnoaggressive-jump-threading
オプションがサポートされました。
より詳細については、Reference Guide内の-faggressive-jump-threading, -fnoaggressive-jump-threadingの章を参照してください。
-
[SDCOMP-57588] Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile のIssue G.a で
IT
ブロックの部分的な非推奨について取り消しが行われました。コンパイラおよび統合アセンブラはこの変更に合わせて更新されました。
以前、T32状態のArmv8-A またはArmv9-A ターゲットに対するアセンブル時、インラインアセンブラおよび統合アセンブラは非推奨な命令を含む
IT
ブロックに対して以下のいずれかのワーニングをレポートしていました:
-
applying IT instruction to more than one subsequent instruction is deprecated
-
deprecated instruction in IT block
この動作は変更され、インラインアセンブラおよび統合アセンブラは以前非推奨とされていた命令を含む
IT
ブロックに対してワーニングをレポートしなくなりました。
それに加えて、コンパイラは以前非推奨とされていた命令を含む
IT
ブロックをコード生成するようになりました。この動作を制御する
-mrestrict-it
および
-mno-restrict-it
オプションがサポートされました。
より詳細についてはReference Guide内-mrestrict-it, -mno-restrict-it の章を参照してください。
armlink
-
[SDCOMP-57665]
--require_bti
および
--info=bti
オプションがサポートされました。
以前、全部ではないものの少なくとも1つの入力オブジェクトがM-プロファイルPACBTI Extension 分岐保護機能ありとしてビルドされている場合に、
--library_security=pacbti-m
オプションなしでリンクを行うと、リンカは以下のエラーをレポートしていました:
-
Cannot link object <non_BTI_object> as its attributes are incompatible with the image attributes. ... BTI compatible clashes with BTI incompatible.
この動作は以下のように変更されました:
--require_bti |
リンカの振る舞い |
あり |
以下のエラーをレポート:
L6111E: Composition of BTI and non-BTI objects detected. Use --info=bti to print outthe list of objects with their corresponding BTI mark |
なし |
以下のワーニングをレポート:
L6110W: Composition of BTI and non-BTI objects detected. The PACBTI-M library variant has been selected. Use --info=bti to print outthe list of objects with their corresponding BTI mark |
より詳細についてはReference Guide内の以下の章を参照してください:
-
--info=topic[,topic,...] (armlink)
-
--library_security=protection
-
--require_bti
ライブラリとシステムヘッダ
-
[SDCOMP-58721] [ALPHA] Arm C++ library Thread-Porting Layer(TPL) に対し、
__ARM_TPL_condvar_monotonic_timedwait()
関数が追加されました。
より詳細についてはArm C and C++ Libraries and Floating-Point Support User Guide 内Condition variables [ALPHA] の章を参照してください。
Arm Compiler for Embedded 6.18 で修正された不具合
armclang
-
[SDCOMP-60177] AArch64 状態に対し
-march=armv8-r
を使用した場合、 コンパイラと統合アセンブラは誤って以下の機能を有効化していました:
-
AArch64 Performance Monitors Extension に対するArmv8.4-A additions
-
半精度浮動小数点拡張
-
Speculation Barrier 命令
-
Speculation 制限命令
-
Speculative Store Bypass Safe
-
[SDCOMP-60103] AArch64 状態のArmv8-R をターゲットとしてアセンブルした場合、インラインアセンブラおよび統合アセンブラは以下のいずれかのシステムレジスタにアクセスする
MSR
または
MRS
命令に対して誤ってエラーのレポートに失敗することがありました:
-
PRBAR0_EL1
-
PRBAR0_EL2
-
PRLAR0_EL1
-
PRLAR0_EL2
代わりに、インラインアセンブラおよび統合アセンブラはこれらのレジスタをそれぞれ以下のレジスタのエイリアスとして誤って処理をしていました:
-
PRBAR_EL1
-
PRBAR_EL2
-
PRLAR_EL1
-
PRLAR_EL2
この問題は修正され、インラインアセンブラおよび統合アセンブラは以下のうちのいずれかのエラーを返すようになりました:
-
expected readable system register
-
expected writable system register or pstate
-
[SDCOMP-59879]
__VERSION__
事前定義マクロに基となるClangバージョンの後に余分な文字が誤って追加されていました。
-
[SDCOMP-59809] コンパイラは、PATH環境変数で指定されたディレクトリ内の特定の不要なファイルを誤って検索していました。 これによってコンパイルが遅くなる可能性がありました。
-
[SDCOMP-59788]
-O0
以外の任意の最適化レベルを指定して、Armv7-M またはArmv8-M をターゲットとした場合、
char
または
short
の配列要素にアクセスする際に誤って以下のいずれかの命令を生成することがありました。
-
LDRBT
-
LDRHT
-
LDRSBT
-
LDRSHT
-
STRBT
-
STRHT
-
[SDCOMP-59656] AArch64状態に対し最適化レベル
-O0
でコンパイルする場合、64ビット未満で表すことができ、ポインタ型にキャストされる整数リテラルに対して誤ったコードを生成する可能性がありました。
-
[SDCOMP-59654] Armv8.1-M をターゲットとして、Pointer Authentication Code (PAC) を有効にする
-mbranchprotection=protection
オプションを指定した場合、不正なコードを生成する可能性がありました。
-
[SDCOMP-59605]
-mno-unaligned-access
オプションを指定した場合、
__attribute__((packed))
または
#pragma pack
によって注釈されたC++ クラスまたはクラスデータメンバに対してワーニングのレポートに失敗することがありました。この問題は修正され、以下のワーニングをレポートするようになりました:
-
field <member> within '<class A>' is less aligned than '<class B>' and is usually due to '<class A>' being packed, which can lead to unaligned accesses
-
[SDCOMP-59059]
-frwpi
と、
-g
または
-gdwarf-version
を指定した場合、
const
ではないグローバル変数について不正なデバッグ情報を生成する可能性がありました。
-
[SDCOMP-58523] コンパイラ、インラインアセンブラおよび統合アセンブラは誤ってArmv8-R AArch64 ターゲットに対してデフォルトで暗号化命令を有効にしていました。
-
[SDCOMP-57884] C++ 例外を有効にしてC++ ソース言語モードでコンパイルした場合、負の配列長または配列長よりも長い初期化子を指定するnew nothrough 例外に対して、誤って
std::bad_array_new_length
例外を引き起こすコードを生成することがありました。
-
[SDCOMP-52680] Armv8-R AArch64 ターゲットに対するアセンブル時、インラインアセンブラおよび統合アセンブラはアクセスするシステムレジスタとして
VSTTBR_EL2
または
VTTBR_EL2
を定義した
MRS
または
MSR
命令に対して誤ってエラーのレポートに失敗することがありました。この問題は修正され、インラインアセンブラおよび統合アセンブラは以下のいずれかのエラーを返すようになりました
-
expected readable system register
-
expected writable system register or pstate
armlink
-
[SDCOMP-59391] AArch64状態に対するリンクで、入力オブジェクト内にセクションシンボルへの分岐が含まれている場合、リンカは次のエラーを誤ってレポートすることがありました:
-
L6286E: Relocation #RELA:<relocation_number> in <object>(<section>) with respect to [Anonymous Symbol]. Value(<value>) out of range(<range>) for (R_AARCH64_CALL26)
-
[SDCOMP-57994] リンカは、2つの同じリンカ呼び出しに対して
cbrtf()
または
strcmp()
Arm C ライブラリ関数について異なる実装を誤って選択することがありました。
fromelf
-
[SDCOMP-59890] DWARF 4デバッグ情報とバージョン4未満のDWARFラインテーブルストラクチャを含むELF形式の入力ファイルを処理する場合、デバッグ行情報の生成を失敗することがありました。
ライブラリとシステムヘッダ
-
[SDCOMP-60224] PACBTI拡張機能を持つArmv8.1-Mターゲットの
cbrtf()
関数のArm Cライブラリバリアントが、予期しない実行時の動作を引き起こす可能性がありました。
-
[SDCOMP-60157] POSIX
mbsnrtowcs()
関数のArm Cライブラリ実装は、ディスティネーションポインタがnullポインタの場合、ソースポインタを誤って更新する可能性がありました。
-
[SDCOMP-59569]
std::mutex::try_lock()
および
std::recursive_mutex::try_lock()
関数のArm C++ ライブラリThread-Porting Layer (TPL) 実装が誤った戻り値を返す可能性がありました。
-
[SDCOMP-59054]
std::allocator<T>::allocate()
関数のArm C++ライブラリ実装は
std::bad_alloc
または
std::bad_array_new_length
の代わりに誤って
std::length_erro
例外を引き起こすことがありました。
-
[SDCOMP-58926]
std::reverse_iterator<Iter>::operator=
のArm C++ ライブラリ実装に誤りがありました。これによって以下のいずれかを引き起こす可能性がありました:
-
コンパイラが、有効であるものの不要な変換コンストラクタの呼び出しを行う
-
コンパイラが以下のエラーを返します:
-
no matching member function for call to 'operator='