4.13. コンパイラーおよび開発ツール


glibc は、高度なスケジューラーオプションのために sched_setattrsched_getattr を サポートするようになりました。

以前は、glibc は<sched.h> で定義された関数を通じて、限られたセットの Linux スケジューラーオプションへのアクセスのみを提供していました。この制限により、アプリケーションが高度なスケジューリング機能にアクセスするには、直接のシステムコールまたは Linux カーネルヘッダーを使用する必要がありました。

この機能強化により、sched_setattr および sched_getattr による拡張可能なスケジューラー設定メカニズムが、glibc の<sched.h> ヘッダーファイルを通じて利用できるようになりました。この変更には、SCHED_DEADLINE などの追加のスケジューリングポリシーのサポートが含まれています。

その結果、アプリケーションは、直接のシステムコールやカーネル固有のヘッダーに依存することなく、より幅広いスケジューリングオプションを選択できるようになりました。これにより、開発者の移植性と柔軟性が向上します。

Jira:RHEL-56627[1]

glibc pthread_gettid_np 関数が libc_nonshared.a に追加されました

従来、glibc の pthread_t ハンドルから Linux のタスク ID またはスレッド ID(TID) を直接取得する方法はありませんでした。_GNU_SOURCE が 定義されているときに <pthread.h> で宣言される、新しく実装された pthread_gettid_np 関数により、sched_setattr を 使用するアプリケーションなど、TID を必要とするアプリケーションが、pthread_t ハンドルから TID 値を直接取得できるようになりました。

その結果、アプリケーションは pthread_t ハンドルから TID を取得した後、TID を必要とする関数を使用できるようになり、互換性が向上し、スレッド管理が簡素化されます。

Jira:RHEL-83017

inet_ntopinet_pton に対する glibc の要塞化のサポートが追加されました

以前は、glibc API の inet_ntopinet_pton に はソースコード強化機能が含まれていなかったため、コンパイラーはプログラム実行前に一部のバッファーエラーを検出することができませんでした。

今回のアップデートにより、inet_ntopinet_pton に属性アクセスアノテーションが追加され、コンパイラーがバッファーの誤用の可能性について警告できるようになりました。これらの API は、現在 Source Fortification の対象となっており、セキュリティーと信頼性が向上しました。

Jira:RHEL-44920[1]

GDB が IBM の z17 CPU アーキテクチャーをサポートするようになりました

gdb パッケージは、IBM の z17 CPU アーキテクチャーで導入された新しいハードウェア命令を使用するバイナリーをサポートするように拡張されました。この更新により、開発者およびシステム管理者は、RHEL 9.7 上で、最新の IBM Z ハードウェア用にコンパイルされたアプリケーションをデバッグできるようになります。

Jira:RHEL-50069[1]

GCC Toolset15 が利用可能になりました

今回のアップデートにより、gcc-toolset-15 が RHEL 9.7 で利用可能になりました。このツールセットには、サポートされている最新バージョンの GCC と関連ユーティリティーが含まれており、開発者は最新のコンパイラー技術を使用してアプリケーションを構築、テスト、デプロイできます。

Jira:RHEL-81741[1]

ppc64le での -fpatchable-function-entry の ELFv2 ABI サポート

以前は、gcc-fpatchable-function-entry オプションは ppc64le アーキテクチャー上の ELFv2 ABI をサポートしていなかったため、その ABI に対して NOP 命令が誤った場所に生成されるという問題が発生していました。この問題により、ELFv2 をターゲットとする場合に、このオプションを正しく使用できませんでした。

今回のアップデートにより、ppc64le 上で -fpatchable-function-entry オプションを使用して ELFv2 ABI 用のプログラムを作成できるようになり、NOP が正しく配置されることが保証され、このプラットフォーム上で開発を行うユーザーの互換性が向上します。

Jira:RHEL-75806[1]

llvm-toolset が LLVM 20 にリベースされました

llvm-toolset が LLVM 20 にアップデートされ、C、C++、Rust のワークフロー全体にわたって、コード生成の改善、パフォーマンスの最適化、言語フロントエンドとライブラリーのサポートの拡張が実現しました。このリベースでは、rustannobinbccbpftraceqt5-qttoolsmesa の再ビルドを含む、RHEL の依存コンポーネントを整合します。ビルドは llvm-20.1.8-3.el9 で検証されています。

主な変更点は次のとおりです。

  • ppc64le の修正を含むバックエンドの改善
  • 全般的なパフォーマンスと信頼性を向上させるために、Clang および LLVM パスの最適化と診断機能を強化
  • LLVM 20 との互換性を確保するために、関係各所が連携してパッケージを再ビルドすることにより、ツールチェーンエコシステムを更新
  • このストリームの ARM および MIPS に関するアップストリームの方針に従って、古いターゲットの非推奨化を継続

Jira:RHEL-81006

複数の動的リンカー名前空間を持つアプリケーションをデバッグするための _r_debug 拡張のサポートが改善されました

glibc パッケージには、複数の名前空間をサポートするためにバックポートされた _r_debug 拡張機能が含まれるようになりました。従来、実行中のプロセスにアタッチしたり、コアダンプを分析したりする際に、アプリケーションが dlmopen モジュールや audit モジュールで複数の名前空間を使用している場合、GDB などのデバッガーではロードされたすべての共有オブジェクトを表示できませんでした。

この更新により、最近のバージョンの GDB で、すべての動的リンカー名前空間の共有オブジェクトを表示できるようになりました。これにより、包括的なデバッグおよび分析機能が提供されます。

Jira:RHEL-101986[1]

glibc における例外処理パフォーマンスの向上

この更新前は、大規模なアプリケーションでの例外処理が遅かったため、特にユーザー数が多い環境や例外が頻繁に発生する環境で、パフォーマンスに影響が出ていました。これは、_Unwind_Find_FDE から呼び出される __dl_iterate_phdr 関数で費やされる時間が原因でした。

この更新により、glibc の例外処理アルゴリズムが改善され、例外処理の速度が向上しました。このアップデートでは、GLIBC_2.35 の一部として、__epoll_pwait2_time64__memcmpeq_dl_find_objectepoll_pwait2posix_spawn_file_actions_addtcsetpgrp_npposix_spawnattr_tcgetpgrp_np、および posix_spawnattr_tcsetpgrp_np を含む新しいシンボルが ABI に追加されます。

Jira:RHEL-93320

メモリー割り当て失敗時における glibc qsort の動作の強化

メモリー割り当てが失敗した場合、glibc パッケージの qsort 関数qsort_r 関数はヒープソートによるフォールバックを使用します。この変更により、無効な比較関数の処理が改善され、メモリー割り当てが失敗した場合のパフォーマンスがより予測可能なものになります。

フォールバックが安定ソートではないため、等しい要素が異なる順序で現れる可能性があります。C 言語の標準規格では、安定性は要求されていません。

Jira:RHEL-24168

gdb がバージョン 16.3 にリベースされました

RHEL 9.7 における 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 が提供されます。
  • Debug Adapter Protocol (DAP) の変更:

    • "scopes" リクエストが更新され、グローバル変数と最後の戻り値が含まれるようになりました。
    • "launch" および "attach" リクエストはいつでも使用でき、"configurationDone" 後に有効になります。
    • "variables" リクエストが人工的なシンボルを返さなくなりました。
    • "process" イベントと "cancel" リクエストのサポートが追加されました。
    • "attach" リクエストでプログラムの指定がサポートされるようになりました。
  • スタイル設定、言語フレームの不一致に関する警告、見つからない objfile のハンドラー、および関数呼び出しのタイムアウト用の新しいコマンドが導入されました。
  • いくつかのコマンドが強化され、名前が変更されました。これには、disassemble のエラー処理の改善や、set unwindonsignal から set unwind-on-signal への名前変更が含まれます。
  • リモートパケットのサポートが拡張されました。これには、ファイルステータスおよびメモリーフェッチ用の新しいパケット、および clone などの新しいストップ停止理由が含まれます。
  • スレッドごとのイベントレポートオプションと、アドレスタギングのチェック機能が導入されました。

Jira:RHEL-91381

AMD GPU 用の pmda が、グローバルの GPU データ収集のために有効化されました

この更新前は、完全なサポートに必要な特定の機能がカーネルに欠けていたため、AMD GPU 用の PMDA (Performance Co-Pilot メトリクスエージェント) を RHEL で利用できませんでした。

この更新により、ユーザーは pcp-pmda-amdgpu パッケージを使用して、AMD GPU 上のグローバルの GPU データを RHEL で収集できるようになりました。

Jira:RHEL-83154

IBM Z z17 の初期サポートが glibc に追加されました。

glibc の動的ローダーが強化され、IBM z17 CPU またはその特定の機能の検出をサポートするようになりました。その結果、/usr/lib64/glibc-hwcap/z17/ ディレクトリーにインストールされている IBM z17 最適化ライブラリーは、z17 システム上で自動的にロードされます。この更新により、IBM Z z17 プラットフォームのハードウェア互換性とパフォーマンスが向上します。

Jira:RHEL-50086[1]

Rust Toolset がバージョン 1.88.0 にリベースされました

RHEL 9.7 には、Rust Toolset バージョン 1.88.0 が同梱されています。この更新には、次の主な機能拡張が含まれています。

  • Rust 2024 Edition が安定版になりました。これは、大幅な言語変更を可能にするメジャーオプトインリリースであり、これまでにリリースされた最大のエディションです。
  • let チェーンを備えた 2024 年版を使用すると、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 ライフサイクル ドキュメントを参照してください。

Jira:RHEL-81601

tzdata に NEWS ファイルが含まれるようになりました

今回のアップデートにより、tzdata パッケージには各リリースに NEWS ファイルが含まれるようになり、タイムゾーンデータの変更に関する詳細な説明が提供されるようになりました。その結果、変更内容を詳細に確認できるようになります。ユーザーは、含まれている NEWS ファイルを確認して、更新の変更内容を把握できます。

Jira:RHEL-105043[1]

メトリクスロールが Apache Spark メトリクスの収集とエクスポートをサポートするようになりました

以前は、ユーザーはメトリクスロールを使用して Apache Spark メトリクスを直接収集またはエクスポートすることはできませんでした。今回のアップデートにより、rhel-system-roles パッケージは Apache Spark からメトリクスを収集および更新する機能をサポートします。次の 2 つの新しいブールパラメーターが導入されました。

  • metrics_into_spark: false これにより、Spark へのメトリクス値のエクスポートが有効になります。
  • metrics_from_spark: false これにより、Spark からのメトリクスの収集が有効になります。

Spark からメトリクスを取得し、メトリクス情報を Spark に送信できるようになり、Spark ワークロードの統合および監視機能が向上しました。

Jira:RHEL-78306

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る