6.11. コンパイラーおよび開発ツール
glibc が、高度なスケジューラーオプションとして sched_setattr と sched_getattr をサポートするようになりました
以前の glibc では、<sched.h> で定義された関数を通じて、限られた Linux スケジューラーオプションしか利用できませんでした。この制限により、アプリケーションが高度なスケジューリング機能にアクセスするには、直接のシステムコールまたは Linux カーネルヘッダーを使用する必要がありました。
この機能拡張により、sched_setattr および sched_getattr の拡張可能なスケジューラー設定メカニズムが、glibc の <sched.h> ヘッダーファイルを通じて利用可能になりました。この変更には、SCHED_DEADLINE などの追加のスケジューリングポリシーのサポートも含まれます。
その結果、アプリケーションは、直接のシステムコールやカーネル固有のヘッダーに依存することなく、より幅広いスケジューリングオプションを選択できるようになりました。これにより、開発者の移植性と柔軟性が向上します。
grafana-pcp の PCP Valkey データソースにジオマップのサポートが追加されました
以前は、PCP Valkey データソースがジオマップパネルに必要な経度と緯度のラベルを提供していなかったため、ユーザーは Grafana のマップ上で PCP メトリクスを視覚化できませんでした。この制限により、別々の場所にある監視対象システムのパフォーマンスを比較することが困難でした。
Grafana で PCP メトリクスのジオマップ視覚化を作成するには、次の手順を実行します。新しいパネルを作成します。ジオマップパネルタイプを選択します。他の PCP 視覚化の場合と同様に、クエリーウィンドウに視覚化するメトリクスを入力します。クエリーウィンドウの下にある Format ドロップダウンメニューで、Geomap を選択します。Grafana によって経度と緯度のラベルが自動的に検出され、データが地図上に配置されます。追加のオプションとカスタマイズは、Grafana のドキュメント を参照してください。
この機能拡張により、grafana-pcp の PCP Valkey データソースに PCP メトリクスからの経度と緯度のラベルが含まれるようになり、インスタンスをジオマップ上に正確に配置できるようになりました。ユーザーは Grafana でジオマップの視覚化を作成し、システムのパフォーマンスを地理的に比較できます。
Jira:RHEL-77946[1]
llvm-toolset が LLVM 20 にリベースされました
llvm-toolset が LLVM 20 に更新されました。これにより、C、C++、および Rust のワークフロー全体にわたり、コード生成の改善、パフォーマンスの最適化、言語フロントエンドとライブラリーサポートの拡張が提供されます。このリベースに伴い、RHEL 内の依存コンポーネントとの整合性も確保されています。これには、rust、annobin、bcc、bpftrace、qt5-qttools、および mesa のリビルドが含まれます。ビルドは llvm-20.1.8-1.el10 で検証済みです。
主な変更点は次のとおりです。
-
ppc64leの修正を含むバックエンドの改善 - 全般的なパフォーマンスと信頼性を向上させるために、Clang および LLVM パスの最適化と診断機能を強化
- LLVM 20 との互換性を確保するために、関係各所が連携してパッケージを再ビルドすることにより、ツールチェーンエコシステムを更新
- このストリームの ARM および MIPS に関するアップストリームの方針に従って、古いターゲットの非推奨化を継続
GCC Toolset15 が利用可能になりました
この更新により、gcc-toolset-15 が RHEL 10.1 で利用できるようになりました。このツールセットには、サポートされている最新バージョンの GCC と関連ユーティリティーが含まれています。そのため、開発者は最新のコンパイラーテクノロジーを使用して、アプリケーションをビルド、テスト、デプロイできます。
Jira:RHEL-81745[1]
glibc が x86_64 上で GLIBC_ABI_GNU2_TLS シンボルを提供するようになりました
x86_64 システム上の glibc には、GLIBC_ABI_GNU2_TLS シンボルが含まれています。gnu2 のスレッドローカルストレージアクセス規約を使用するプログラムは、起動するためにこのシンボルを必要とする場合があります。この更新前は、glibc がこのシンボルを提供していなかったため、関連するプログラムが起動に失敗していました。この更新により、GLIBC_ABI_GNU2_TLS に依存するプログラムが期待どおりに起動して実行されるようになりました。
glibc に x86_64 用の GLIBC_ABI_DT_X86_64_PLT シンボルのサポートが追加されました
この更新前は、GLIBC_ABI_DT_X86_64_PLT シンボルが glibc で利用できないため、これを必要とするプログラムが起動に失敗していました。この機能拡張により、glibc に x86_64 システム用の GLIBC_ABI_DT_X86_64_PLT シンボルが追加されました。この機能拡張により、起動するためにこのシンボルを必要とするプログラムが期待どおりに動作するようになりました。
glibc ヘッダーファイルが Linux 6.12 UAPI に合わせて更新されました
Red Hat Enterprise Linux 10 の glibc ヘッダーファイルが更新され、MAP_*、PIDFD_*、SCHED_*、および SYS_* に関連する、Linux カーネルバージョン 6.12 の最新の Linux User-space API (UAPI) 定数が組み込まれました。その結果、開発者がアプリケーションの構築時に新規および改訂された UAPI 定数にアクセスできるようになりました。これにより、最新のカーネル機能との一貫性と互換性が確保されます。
gdb がバージョン 16.3 にリベースされました
RHEL 10.1 における gdb バージョン 16.3 への更新により、次の主な機能拡張が提供されます。
- Intel MPX のサポートが削除されました。
- Intel の Linear Address Masking (LAM) や aarch64 の Memory Tagging Extension (MTE) など、タグ付きデータポインターのサポートが追加されました。
- パフォーマンス向上のために、バックグラウンド DWARF 読み取りが有効になりました。
Intel Process Trace (
record btrace) の強化:-
set record btrace pt event-tracingによって非同期イベント出力が有効になりました -
Ptwrite ペイロードが、
RecordAuxiliaryオブジェクトとして Python でアクセスできるようになりました。
-
Python 統合の強化:
-
停止イベントに、MI の "*stopped" イベントを反映した
details属性が含まれるようになりました。 -
gdb.Progspace()がオブジェクトを直接作成しなくなりました。オブジェクトは他の API を使用して取得する必要があります。 -
gdb.Inferiorおよびgdb.InferiorThreadオブジェクトにユーザー定義属性を追加できます。 -
新しいイベントソース
gdb.tui_enabledが導入されました。 -
現在の記録のトレースデータをクリアする
gdb.record.clearが追加されました。 - 見つからない objfiles とデバッグ情報を処理するためのモジュールが追加されました。
-
新しいクラス
gdb.missing_debug.MissingDebugInfoをサブクラス化して、不足しているデバッグ情報を処理できます。 -
新しい属性
gdb.Symbol.is_artificial。 - 複数のドメインにわたるシンボル検索用の新しい定数。
-
新しい関数
gdb.notify_mi(NAME, DATA)により、カスタムの非同期通知が発行されます。 -
値の内容を読み書きするための新しい属性
gdb.Value.bytes。 -
CTRL-C 割り込みをシミュレートするための
gdb.interruptが追加されました。 -
新しい属性
gdb.InferiorThread.ptid_stringにより、ターゲット ID が提供されます。
-
停止イベントに、MI の "*stopped" イベントを反映した
Debug Adapter Protocol (DAP) の変更:
- "scopes" リクエストが更新され、グローバル変数と最後の戻り値が含まれるようになりました。
- "launch" および "attach" リクエストはいつでも使用でき、"configurationDone" 後に有効になります。
- "variables" リクエストが人工的なシンボルを返さなくなりました。
- "process" イベントと "cancel" リクエストのサポートが追加されました。
- "attach" リクエストでプログラムの指定がサポートされるようになりました。
- スタイル設定、言語フレームの不一致に関する警告、見つからない objfile のハンドラー、および関数呼び出しのタイムアウト用の新しいコマンドが導入されました。
-
いくつかのコマンドが強化され、名前が変更されました。これには、
disassembleのエラー処理の改善や、set unwindonsignalからset unwind-on-signalへの名前変更が含まれます。 -
リモートパケットのサポートが拡張されました。これには、ファイルステータスおよびメモリーフェッチ用の新しいパケット、および
cloneなどの新しいストップ停止理由が含まれます。 - スレッドごとのイベントレポートオプションと、アドレスタギングのチェック機能が導入されました。
IBM z16 の GCC チューニングが s390x でデフォルトになりました
RHEL 10.1 の s390x アーキテクチャーにおいて、gcc コンパイラーによって生成されるコードのデフォルトチューニングが、IBM z16 に準拠したものになりました。
この更新前は、gcc の s390x コード生成のデフォルトチューニングが、古い IBM アーキテクチャー用に設定されていました。
この更新により、s390x 上の RHEL 10.1 で gcc を使用してコンパイルされたコードが、デフォルトで IBM z16 用にチューニングされるようになりました。別のアーキテクチャー向けに最適化する必要がある場合は、gcc の呼び出し時に -mtune フラグを使用して目的のアーキテクチャーを指定することにより、この設定をオーバーライドできます。
Jira:RHEL-86679[1]
glibc に IBM Z z17 の初期サポートが追加されました
glibc の動的ローダーが強化され、IBM z17 CPU またはその固有機能の検出がサポートされるようになりました。その結果、IBM z17 向けに最適化されたライブラリーが /usr/lib64/glibc-hwcap/z17/ ディレクトリーにインストールされている場合、z17 システムに自動的にロードされるようになりました。この更新により、IBM Z z17 プラットフォームのハードウェア互換性とパフォーマンスが向上します。
Jira:RHEL-72564[1]
Rust Toolset がバージョン 1.88.0 にリベースされました
RHEL 10.1 には、Rust Toolset バージョン 1.88.0 が同梱されています。この更新には、次の主な機能拡張が含まれています。
- Rust 2024 Edition が安定版になりました。これは、大幅な言語変更を可能にするメジャーオプトインリリースであり、これまでにリリースされた最大のエディションです。
-
2024 エディションでは
letチェーンを活用できます。これにより、if条件とwhile条件内でletステートメントを&&を使用してスムーズに連鎖させることができるため、ネストを減らし、可読性を向上できます。 -
ハイパフォーマンスコンピューティング向けに、ターゲット機能を有効にすると、safe Rust から複数の
std::arch組み込み関数を直接呼び出すことができます。これにより、特定の CPU 機能に直接アクセスできます。 -
asyncクロージャーがサポートされ、非同期プログラミング用のファーストクラスのソリューションが提供されるようになりました。これらのクロージャーにより、キャプチャーからの借用が可能になり、AsyncFn トレイトを使用して高階関数シグネチャーを適切に表現できるようになります。 -
トレイトのアップキャストにより、トレイトオブジェクトへの参照をそのスーパートレイトへの参照に変換できるようになりました、これにより、特に
Anyトレイトを使用する一般的なパターンが簡素化されます。 - Cargo がキャッシュを自動的に消去し、1 - 3 カ月間アクセスされていない古いダウンロードファイルを削除するようになりました。これにより、ディスク領域の管理が容易になります。
Rust Toolset は Rolling Application Stream であり、Red Hat は最新バージョンのみをサポートします。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。
tzdata に NEWS ファイルが含まれるようになりました
この更新により、タイムゾーンデータの変更に関する正確な記述を提供するために、tzdata パッケージに、リリースごとに NEWS ファイルが含まれるようになりました。その結果、何が変更されたかを詳細に確認できるようになります。ユーザーは、含まれている NEWS ファイルを確認して、更新の変更内容を把握できます。
Jira:RHEL-105042[1]