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 のドキュメントを参照してください。
- Arm Development Studio : https://developer.arm.com/tools-and-software/embedded/arm-development-studio
- Keil MDK : https://developer.arm.com/tools-and-software/embedded/keil-mdk
[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 以降に統合
- スタンドアロン製品として使用
関連する手順については以下を参照してください:
- インストール手順: User Guide 内 Installing Arm Compiler の章
- ライセンスとツールキットのコンフィギュレーション手順:https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration
※本内容は弊社FAQページでも日本語での解説を行っております。内容の一部は保守契約ユーザ様にのみ公開をしておりますのであらかじめFAQページにログインの上ご参照ください:
Arm Compilerを呼びだす環境別のライセンスおよび設定について ( LIC-D-25 )
- User-based ライセンスに関するドキュメンテーション:https://lm.arm.com
- Arm Development Studio への統合手順:
1.ツールチェインをArm Development Studio をインストールしたディレクトリ以外の任意のディレクトリにインストールします
2.Arm Developer Studio User Guide のRegister a compiler toolchain の章にある手順に従ってツールチェインを使用するようにプロジェクトをコンフィギュレーションします
- Keil MDK への統合手順:
1.ツールチェインをKeil MDK インストールディレクトリのARM サブディレクトリにインストールします
例えば、Keil MDK インストールディレクトリがC:\Keil_v5 にある場合、推奨されるインストールパスはC:\Keil_v5\ARM\ARMCompiler6.18 です。
2.http://www.keil.com/support/man/docs/uv4/uv4_armcompilers.htmにある手順に従ってツールチェインを使用するようにプロジェクトをコンフィギュレーションします
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 インストーラは以下のオプションのサポートを廃止しました。
- --gunzip
- --pager
- --tar
- [SDCOMP-60066] 以下のオプション機能に対する自動ベクタライズをサポートしました:
- Armv8-A Scalable Vector Extension (SVE)
- Armv9-A Scalable Vector Extension version 2 (SVE2)
- [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オプションオプションを使用してコンパイルしてください。
- [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オプションオプションを使用してコンパイルしてください。
- [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 ブロックをコード生成するようになりました。この動作を制御する-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='