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

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

Jira:RHEL-83017

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

以前は、glibc の API である inet_ntopinet_pton に、Source Fortification のサポートが含まれていませんでした。そのため、コンパイラーがプログラムを実行する前に一部のバッファーエラーを検出できませんでした。

この更新により、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 をターゲットとする場合に、このオプションを正しく使用できませんでした。

この更新により、-fpatchable-function-entry オプションを ppc64le で使用して ELFv2 ABI 用のプログラムを作成できるようになりました。これにより、NOP が正しく配置されるようになり、このプラットフォーム上でビルドするユーザーにとっての互換性が向上しました。

Jira:RHEL-75806[1]

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

llvm-toolset が LLVM 20 に更新されました。これにより、C、C++、および Rust のワークフロー全体にわたり、コード生成の改善、パフォーマンスの最適化、言語フロントエンドとライブラリーサポートの拡張が提供されます。このリベースに伴い、RHEL 内の依存コンポーネントとの整合性も確保されています。これには、rustannobinbccbpftraceqt5-qttools、および mesa のリビルドが含まれます。ビルドは llvm-20.1.8-3.el9 で検証済みです。

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

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

Jira:RHEL-81006

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

glibc パッケージに、複数の名前空間をサポートするために、バックポートされた _r_debug 拡張が含まれるようになりました。以前は、実行中のプロセスにアタッチしたり、コアダンプを分析したりするときに、アプリケーションが dlmopen または監査モジュールで複数の名前空間を使用している場合、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_npposix_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

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

glibc の動的ローダーが強化され、IBM z17 CPU またはその固有機能の検出がサポートされるようになりました。その結果、IBM z17 向けに最適化されたライブラリーが /usr/lib64/glibc-hwcap/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 が安定版になりました。これは、大幅な言語変更を可能にするメジャーオプトインリリースであり、これまでにリリースされた最大のエディションです。
  • 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 ライフサイクル ドキュメントを参照してください。

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 をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat