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


RHEL 10 で GCC 14.2 が導入される

RHEL 10 には、GNU Compiler Collection (GCC) バージョン 14.2 が含まれています。

GCC 13 以降の主な変更点は次のとおりです。

  • 最適化と診断の改善
  • 一連のハードニングフラグを有効化する新しい包括的な -fhardened オプション
  • 関数の途中に制御を移す攻撃を検出する新しい -fharden-control-flow-redundancy オプション
  • 関数と変数のスタックスクラビングプロパティーを制御する新しい strub 型属性
  • 特定の mem* 関数のインライン展開を強制する新しい -finline-stringops オプション
  • 新しい OpenMP 5.1、5.2、6.0 機能のサポート
  • いくつかの C23 の新機能
  • 複数の新しい C++23 および C++26 機能
  • いくつかの C++ 不具合報告の解決
  • C++ ライブラリーにおける C++20、C++23、C++26 の実験的サポートの新規追加と改良
  • 64 ビット ARM アーキテクチャーの新しい CPU のサポート
  • 64 ビット Intel アーキテクチャーの複数の新しい命令セットアーキテクチャー (ISA) 拡張 (例: AVX10.1、AVX-VNNI-INT16、SHA512、SM4)
  • GCC の静的アナライザーの新しい警告
  • 一部の警告をエラーに変更 (詳細は、GCC 14 への移植 を参照)
  • さまざまなバグ修正

GCC 14 の変更点の詳細は、アップストリームの GCC リリースノート を参照してください。

Jira:RHEL-45041

GCC 14 のデフォルトは x86-64-v3

RHEL 10 の GCC 14 では、デフォルトのマイクロアーキテクチャーレベルが x86-64-v3 になりました。このレベルでは、AVX および AVX2 命令セットや Fused Multiply-Add (FMA) 命令セットなどの特定の機能がデフォルトで有効になります。詳細は関連する こちらの記事 を参照してください。

Jira:RHEL-33254

GCC が IBM Power Systems ではデフォルトで IEEE128 浮動小数点形式を使用する

RHEL10 では、GCC は IBM Power Systems 上のすべての long double 浮動小数点数に対して、従来のソフトウェア専用の IBM-DOUBLE-DOUBLE コードではなく、デフォルトで IEEE128 浮動小数点形式を使用します。その結果、long double 浮動小数点数を使用して計算を実行する C または C++ コードのパフォーマンスが向上することを確認できます。

この 128 ビット long double 浮動小数点 ABI は、RHEL 8 以前のバージョンで使用されていた浮動小数点 ABI と互換性がないことに注意してください。IEEE128 操作を実行するためのハードウェア命令のサポートは、IBM POWER9 以降で利用できます。

Jira:RHEL-24760[1]

GCC 14 が FUJITSU-MONAKA CPU をサポートする

RHEL 10.0 以降、GNU Compiler Collection (GCC) は FUJITSU-MONAKA をサポートします。その結果、-mcpu=fujitsu-monaka コマンドラインオプションを使用して、このプラットフォーム用のコードを作成できます。

Jira:RHEL-65765[1]

GCC 14 が POWER 11 アーキテクチャーをサポートする

RHEL 10.0 以降、GNU Compiler Collection (GCC) は POWER 11 アーキテクチャーをサポートします。その結果、-mcpu=power11 コマンドラインオプションを使用して POWER 11 用のコードを作成できます。

Jira:RHEL-24762[1]

RHEL 10 には annobin バージョン 12.55 が含まれる

RHEL 10 には annobin バージョン 12.55 が含まれています。以前に利用可能であったバージョン 12.32 からの主な変更点は、以下のとおりです。

  • GCC、Clang、LLVM、Go コンパイラーの新しいバージョンをビルドして使用するためのツールを更新
  • GCC コマンドラインオプション -Wimplicit-int および -Wimplicit-function-declaration の使用の記録とテスト
  • LLVM のサポートの改善
  • 新しいテスト
  • 非推奨となった OpenSSL Engine コードが使用されているかを識別するための新しいチェック
  • 複数の --debug-rpm オプションをサポート
  • さまざまなバグ修正

Jira:RHEL-526[1]

RHEL 10 には binutils バージョン 2.41 が含まれる

RHEL 10 には binutils バージョン 2.41 が含まれています。以前に利用可能であったバージョン 2.40 からの主な変更点は、以下のとおりです。

  • binutils ツールは、64 ビット Intel および ARM アーキテクチャーのアーキテクチャー拡張をサポートします。
  • リンカーが、--remap-inputs <PATTERN>=<FILE> コマンドラインオプションを受け入れるようになりました。これにより、<PATTERN> に一致する入力ファイルを <FILE> に置き換えることができます。さらに、--remap-inputs-file=<FILE> オプションを使用して、このような再マッピングディレクティブを任意の数含むファイルを指定できます。
  • ELF ターゲットの場合、リンカーのコマンドラインオプション --print-map-locals を使用して、リンカーマップにローカルシンボルを含めることができます。
  • ほとんどの ELF ベースのターゲットでは、--enable-linker-version オプションを使用して、リンカーのバージョンを文字列として .comment セクションに挿入できます。
  • リンカースクリプト構文に、出力セクション用の新しいコマンド ASCIZ "<string>" が追加されました。このコマンドは、現在の場所にゼロ終端の文字列を挿入します。
  • 新しい -z nosectionheader リンカーコマンドラインオプションを使用して、ELF セクションヘッダーを省略できます。

Jira:RHELDOCS-18761[1]

GCC は Power 10 以降の ROP 保護命令を生成できる

IBM Power 10 以降のプラットフォームには、プログラムの脆弱性を悪用するために使用される一般的なプリミティブである Return-Oriented Programming (ROP) に対する保護機能が備わっています。この機能拡張により、{{-mrop-protect}} フラグを使用できるようになり、GCC はこれらのプラットフォーム用の ROP 保護命令を作成します。ランタイムサポートがないため、生成された命令は現時点では効果がなく、CPU はそれらを無操作 (NOP) 命令として扱うことに注意してください。ただし、開発者は {{-mrop-protect}} フラグを使用して ROP 保護メカニズムを組み込むことができ、今後これらのプラットフォームで ROP 保護が有効になったときに、アプリケーションのセキュリティーが強化されます。

Jira:RHEL-36791[1]

binutils が IBM Z 命令セットの arch15 エクステンションをサポートするようになる

この機能拡張により、binutils は IBM Z プラットフォーム上の CPU の arch15 エクステンションをサポートするようになりました。開発者は、アセンブラーのソースファイルで arch15 エクステンションの新機能を使用できるようになり、更新されたコンパイラーが利用可能な場合は、コンパイルされたプログラムでも使用できます。これにより、プログラムのサイズが小さくなり、速度も速くなります。

Jira:RHEL-56896[1]

binutilsld リンカーが --section-ordering-file オプションをサポートする

デフォルトのシステムリンカーである ld.bfd で新しい --section-ordering-file コマンドラインオプションを使用して、互いに近接していることでメリットが得られるコードまたはデータのセクションをグループ化できるようになりました。

この機能は、キャッシュミスを減らすことでプログラムのパフォーマンスを向上させます。プロファイリングツールを使用して、時間の経過に伴うプログラムコードの使用を分析し、実行可能イメージ内のコードのグループ化を改善できます。その結果、メモリー内のプログラムのレイアウトをより細かく制御できるようになります。

--section-ordering-file オプションは、すでにこの機能を提供している gold および lld リンカーとの互換性も強化します。

詳細は、ブログ記事 A practical guide to linker section ordering を参照してください。

Jira:RHEL-36305

glibc は、Intel APX 対応関数の動的リンクをサポートするようになる

互換性のない動的リンカートランポリンが、Intel Advanced Performance Extensions (APX) アプリケーションの非互換性の原因になっている可能性が特定されました。回避策として、BIND_NOW 実行可能ファイルを使用するか、標準の呼び出し規則のみを使用できます。この更新により、glibc の動的リンカーは APX 関連のレジスターを保持します。

注記

この変更により、スタックの最上部を超える追加の空間が必要になります。この空間を厳密に制限するユーザーは、場合によってはスタック制限を調整または評価する必要があります。

Jira:RHEL-25045

RHEL 10 では glibc バージョン 2.39 が提供される

RHEL 10 で GNU C ライブラリー (glibc) バージョン 2.39 が導入される

Jira:RHEL-25850

glibc での AMD Zen 3 および Zen 4 のパフォーマンスが最適化される

以前は、AMD Zen 3 および Zen 4 プロセッサーは、最適な選択かどうかにかかわらず、memcpy および memmove ライブラリールーチンの Enhanced Repeat Move String (ERMS) バージョンを使用することがありました。この glibc 更新により、AMD Zen 3 および Zen 4 プロセッサーは最適なバージョンの memcpymemmove を使用するようになりました。

Jira:RHEL-25530

RHEL 10 では GDB バージョン 14.2 が提供される

GDB がバージョン 14.2 に更新されました。以下の段落では、GDB 12.1 以降の主な変更点を示します。

全般:

  • info breakpoints コマンドは、無効なブレークポイントの有効なブレークポイントの位置を y- 状態で表示するようになりました。
  • ELF の Zstandard (ELFCOMPRESS_ZSTD) で圧縮されたデバッグセクションのサポートが追加されました。
  • テキストユーザーインターフェイス (TUI) では、現在の位置を示すインジケーターで強調表示されるソースコードとアセンブリコードのスタイルがデフォルトで設定されなくなりました。スタイルを再度有効にするには、新しいコマンド set style tui-current-position を使用します。
  • 新しい簡易変数 $_inferior_thread_count には、現在の inferior 内のライブスレッドの数が含まれます。
  • コード位置が複数あるブレークポイントの場合、GDB は <breakpoint_number>.<location_number> 構文を使用してコードの場所を出力するようになりました。
  • ブレークポイントにヒットすると、GDB は $_hit_bpnum および $_hit_locno 簡易変数をヒットしたブレークポイント番号とコード位置番号に設定するようになりました。これで、disable $_hit_bpnum コマンドを使用して最後にヒットしたブレークポイントを無効にしたり、disable $_hit_bpnum.$_hit_locno コマンドを使用して特定のブレークポイントコードの位置のみを無効にしたりできるようになりました。
  • NO_COLOR 環境変数のサポートが追加されました。
  • 64 ビットを超える整数型のサポートが追加されました。
  • マルチターゲット機能設定用の新しいコマンドを使用して、リモートターゲット機能セットを設定できます (コマンドの set remote <name>-packetshow remote <name>-packet を参照)。
  • デバッガーアダプタープロトコルのサポートが追加されました。
  • 新しい inferior キーワードを使用して、ブレークポイントを inferior 固有のブレークポイントに設定できるようになりました (コマンドの break または watch を参照)。
  • 式の評価中にシェルコマンドを実行するための新しい便利な関数 $_shell() が使用可能になりました。

既存コマンドの変更点:

  • breakwatch

    • break および watch コマンドで thread または task キーワードを複数回使用すると、キーワードの最後のインスタンスのスレッドまたはタスク ID が使用されるのではなく、エラーが発生するようになりました。
    • 同じ break または watch コマンドで threadtaskinferior キーワードを複数使用できなくなりました。
  • printfdprintf

    • printf および dprintf コマンドは、print コマンドと同じ方法で式をフォーマットする %V 出力形式を受け入れるようになりました。コマンドの後に括弧 […​] で囲んだ追加の print オプションを使用して、出力形式を変更することもできます (例: printf "%V[-array-indexes on]", <array>)。
  • list

    • . 引数を使用して、現行フレームの実行ポイント付近の位置、または inferior が開始されていない場合は main() 関数の開始付近の位置を出力できるようになりました。
    • ファイル内で利用可能な行数より多くのソース行をリストしようとすると、警告が出され、ユーザーに . 引数を参照するよう指示されます。
  • document user-defined

    • ユーザー定義のエイリアスを文書化できるようになりました。

新しいコマンド:

  • set print nibbles [on|off] (デフォルト: off)、show print nibbles - print/t コマンドを使用した場合に 4 ビット (ニブル) のグループでバイナリー値を表示するかどうかを制御します。
  • set debug infcall [on|off] (デフォルト: off)、show debug infcall - inferior 関数呼び出しに関する追加のデバッグメッセージを出力します。
  • set debug solib [on|off] (デフォルト: off)、show debug solib - 共有ライブラリーの処理に関する追加のデバッグメッセージを出力します。
  • set print characters <LIMIT>show print charactersprint -characters <LIMIT> - 文字列うち何文字を出力するか制御します。
  • set debug breakpoint [on|off] (デフォルト: off)、show debug breakpoint - ブレークポイントの挿入と削除に関する追加のデバッグメッセージを出力します。
  • maintenance print record-instruction [ N ] - 指定された命令の記録された情報を出力します。
  • maintenance info frame-unwinders - 現在有効なフレームアンワインダーを優先度の高いものから順にリストします。
  • maintenance wait-for-index-cache - インデックスキャッシュへの保留中の書き込みがすべて完了するまで待機します。
  • info main - プログラムのエントリーポイントを識別するためにメインシンボルに関する情報を出力します。
  • set tui mouse-events [on|off] (デフォルト: on)、show tui mouse-events - マウスクリックイベントを、TUI および Python エクステンションに送信するか (on の場合)、ターミナルに送信するか (off の場合) を制御します。

Machine Interface (MI) の変更:

  • MI バージョン 1 は削除されました。
  • MI は、逆実行履歴をすべて使用すると、no-history が報告されるようになりました。
  • -break-insert コマンドの出力で、thread および task ブレークポイントフィールドが 2 回報告されなくなりました。
  • 存在しないスレッド ID でスレッド固有のブレークポイントを作成できなくなりました。
  • -stack-list-arguments-stack-list-locals-stack-list-variables、および -var-list-children コマンドの --simple-values 引数は、ターゲットが simple の場合に参照型を simple として扱うようになりました。
  • -break-insert コマンドは、inferior 固有のブレークポイントを作成するための新しい -g thread-group-id オプションを受け入れるようになりました。
  • ブレークポイント作成通知と -break-insert コマンドの出力に、メインブレークポイントと各ブレークポイントの位置のオプションフィールド inferior を追加できるようになりました。
  • breakpoint-hit の停止理由を示す非同期レコードに、ブレークポイントの位置が複数の場合にコードの位置番号を示すオプションフィールド locno が含まれるようになりました。

GDB Python API の変更点:

  • Events

    • 新しい gdb.ThreadExitedEvent イベント。
    • progspace および reload 属性を持つ ExecutableChangedEvent オブジェクトを出力する新しい gdb.executable_changed イベントレジストリー。
    • 新しい gdb.events.new_progspace および gdb.events.free_progspace イベントレジストリー。NewProgpspaceEvent および FreeProgspaceEvent イベント型を出力します。両方のイベント型に、GDB に追加または GDB から削除される gdb.Progspace プログラムスペースを指定するための単一の属性 progspace があります。
  • gdb.unwinder.Unwinder クラス

    • name 属性は読み取り専用になりました。
    • __init__ 関数の name 引数は str 型である必要があります。そうでない場合は TypeError が発生します。
    • enabled 属性は bool 型のみを受け入れるようになりました。
  • gdb.PendingFrame クラス

    • 新しいメソッド: nameis_validpclanguagefind_salblockfunction。これらは gdb.Frame クラスの同様のメソッドを反映しています。
    • create_unwind_info 関数の frame-id 引数は、pcsp、および special 属性に対して整数または gdb.Value オブジェクトのいずれかにできるようになりました。
  • gdb.PendingFrame.create_unwind_info 関数に渡すことができる新しい gdb.unwinder.FrameId クラス。
  • gdb.disassembler.DisassemblerResult クラスはサブクラス化できなくなりました。
  • gdb.disassembler モジュールにスタイルサポートが含まれるようになりました。
  • 新しい gdb.execute_mi(COMMAND, [ARG]…​) 関数。GDB/MI コマンドを呼び出して結果を Python ディクショナリーとして返します。
  • 新しい gdb.block_signals() 関数。GDB が処理する必要のあるすべてのシグナルをブロックするコンテキストマネージャーを返します。
  • threading.Thread クラスの新しい gdb.Thread サブクラス。start メソッドで gdb.block_signals 関数を呼び出します。
  • gdb.parse_and_eval 関数に、グローバルシンボルの解析を制限するための新しい global_context パラメーターが追加されました。
  • gdb.Inferior クラス

    • 新しい arguments 属性。既知の場合に inferior へのコマンドライン引数を保持します。
    • 新しい main_name 属性。既知の場合に inferior の main 関数の名前を保持します。
    • 新しい clear_envset_env、および unset_env メソッド。inferior が開始される前にその環境を変更できます。
  • gdb.Value クラス

    • オブジェクトの値を割り当てる新しい assign メソッド。
    • 配列のような値を配列に変換する新しい to_array メソッド。
  • gdb.Progspace クラス

    • 新しい objfile_for_address メソッド。指定されたアドレス (存在する場合) をカバーする gdb.Objfile オブジェクトを返します。
    • Progspace.filename 変数に対応する gdb.Objfile オブジェクトを保持する新しい symbol_file 属性 (ファイル名が None の場合は None)。
    • 新しい executable_filename 属性。exec-file または file コマンドによって設定されたファイル名の文字列を保持します (実行可能ファイルが設定されていない場合は None)。
  • gdb.Breakpoint クラス

    • 新しい inferior 属性。inferior 固有のブレークポイントの inferior ID (整数) が含まれます (そのようなブレークポイントが設定されていない場合は None)。
  • gdb.Type クラス

    • 新しい is_array_like および is_string_like メソッド。型の実際の型コードにかかわらず、配列型か文字列型かを反映します。
  • 新しい gdb.ValuePrinter クラス。pretty-printer を適用した結果の基本クラスとして使用できます。
  • 新しく実装された gdb.LazyString.__str__ メソッド。
  • gdb.Frame クラス

    • 新しい static_link メソッド。ネストされた関数フレームの外側のフレームを返します。
    • 新しい gdb.Frame.language メソッド。フレームの言語の名前を返します。
  • gdb.Command クラス

    • GDB は、文字列をヘルプ出力として使用する前に、gdb.Command クラスと gdb.Parameter サブクラスのドキュメント文字列を再フォーマットして、各行の先頭の不要な空白を削除するようになりました。
  • gdb.Objfile クラス

    • 新しい is_file 属性。
  • 新しい gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE) 関数。逆アセンブラーからアドレス、シンボル、オフセット情報を出力する際に同じ形式を使用します。
  • 新しい gdb.current_language 関数。現在の言語の名前を返します。
  • GDB の逆アセンブラーをラップするための新しい Python API。gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH)gdb.disassembler.Disassemblergdb.disassembler.DisassembleInfogdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)gdb.disassembler.DisassemblerResult が含まれます。
  • 新しい gdb.print_options 関数。gdb.Value.format_string 関数で受け入れられる形式で、一般的な出力オプションのディクショナリーを返します。
  • gdb.Value.format_string 関数

    • gdb.Value.format_string は、print またはその他の同様の操作中に呼び出された場合に、print コマンドで提供される形式を使用するようになりました。
    • gdb.Value.format_string は、summary キーワードを受け入れるようになりました。
  • 新しい gdb.BreakpointLocation Python 型。
  • gdb.register_window_type メソッドは、受け入れられるウィンドウ名のセットを制限するようになりました。

アーキテクチャー固有の変更:

  • AMD アーキテクチャーおよび Intel 64 ビットアーキテクチャー

    • libopcodes ライブラリーを使用した逆アセンブラースタイルのサポートが追加されました。現在、これがデフォルトとして使用されています。set style disassembler * コマンドを使用して、逆アセンブラーの出力スタイルを変更できます。代わりに Python Pygments スタイルを使用するには、新しい maintenance set libopcodes-styling off コマンドを使用します。
  • 64 ビット ARM アーキテクチャー

    • Memory Tagging Extension (MTE) のメモリータグデータをダンプするためのサポートが追加されました。
    • Scalable Matrix Extension 1 および 2 (SME/SME2) のサポートが追加されました。ZA 状態での手動関数呼び出しや、DWARF に基づく Scalable Vector Graphics (SVG) の変更の追跡など、一部の機能はまだ試験版またはアルファ版と見なされています。
    • Thread Local Storage (TLS) 変数のサポートが追加されました。
    • ハードウェアウォッチポイントのサポートが追加されました。
  • 64 ビット IBM Z アーキテクチャー

    • IBM Z ターゲット上の新しい arch14 命令の記録および再生のサポート (specialized-function-assist 命令 NNPA を除く)。
  • IBM Power Systems (リトルエンディアン)

    • POWER11 のベース有効化のサポートを追加しました。

GDB 10.2 の RHEL 9 システムバージョン以降の変更は、GDB 11.2 の GCC Toolset 12 バージョン および GDB 12.1 の GCC Toolset 13 バージョン のリリースノートを参照してください。

Jira:RHEL-33256、Jira:RHEL-39324、Jira:RHEL-24764

RHEL 10 では elfutils バージョン 0.191 が提供される

elfutils パッケージがバージョン 0.191 に更新されました。以下は、主な改善点です。

  • libdw ライブラリーの変更点:

    • dwarf_addrdie 関数が、debug_aranges セクションがないバイナリーをサポートするようになりました。
    • DWARF パッケージファイルのサポートが改善されました。
    • 新しい dwarf_cu_dwp_section_info 関数が追加されました。
  • debuginfod サーバーのキャッシュエビクションロジックが強化され、vdso.debug などの小さいファイル、頻繁に使用されるファイル、または遅いファイルの保持が改善されました。
  • eu-srcfiles ユーティリティーは、DWARF/ELF ファイルのソースファイルを取得し、それを zip アーカイブに配置できるようになりました。

Jira:RHEL-29197

RHEL 10 では SystemTap バージョン 5.1 が提供される

RHEL 10 には、SystemTap トレーシングおよびプロービングツールのバージョン 5.1 が含まれています。バージョン 5.0 以降の主な変更点は、以下のとおりです。

  • スクリプトのコンパイル中に権限を減らすための実験的な --build-as=USER フラグ。
  • ホスト PID によって識別される、コンテナー内で実行されているプローブプロセスのサポートの向上。
  • ユーザー空間ハードウェアブレークポイントとウォッチポイント用の新しいプローブ。
  • --runtime=bpf モードの --remote 操作のサポート。
  • カーネルとユーザーのトランスポートの堅牢性の向上。

Jira:RHEL-29529

RHEL 10 では Valgrind バージョン 3.23.0 が提供される

Valgrind スイートがバージョン 3.23.0 に更新されました。主な機能拡張は、次のとおりです。

  • --track-fds=yes オプションが、ファイル記述子の二重クローズに対して警告し、抑制可能なエラーを生成し、XML 出力をサポートするようになりました。
  • --show-error-list=no|yes オプションが、抑制されたエラーも出力する新しい値 all を受け入れるようになりました。
  • 64 ビット IBM Z アーキテクチャーで、Valgrind が Neural Network Processing Assist (NNPA) ファシリティーのベクトル命令 (VCNFVCLFNHVCFNVCLFNLVCRNFNNPA (z16/arch14)) をサポートするようになりました。
  • 64 ビット ARM アーキテクチャーで、Valgrinddotprod 命令 (sdot/udot) をサポートするようになりました。
  • AMD および Intel 64 ビットアーキテクチャーで、Valgrind が x86_64-v3 マイクロアーキテクチャーに対してより正確な命令サポートを提供するようになりました。
  • Valgrind が、メモリーの重複を検出できる wcpncpymemccpystrlcat、および strlcpy 関数のラッパーを提供するようになりました。
  • Valgrind が、Linux システムコール mlock2fchmodat2、および pidfd_getfd をサポートするようになりました。

Jira:RHEL-29535

RHEL 10 で Dyninst バージョン 12.3.0 が導入される

RHEL 10 には Dyninst ライブラリーバージョン 12.3.0 が含まれています。

Jira:RHEL-49597[1]

SystemTap がバージョン 5.2 で提供される

RHEL 10.0 では、SystemTap トレーシングおよびプロービングツールのバージョン 5.2 が提供されます。

主な機能拡張は、elfutils 0.192 に基づく debuginfod-metadata ベースのプローブの完全な有効化です。この機能を使用すると、debuginfod サーバーで一致するすべての名前を検索することにより、特定のバイナリーまたはライブラリーの全範囲のバージョンをターゲットとする systemtap スクリプトを作成できます。

Jira:RHEL-64042

RHEL 10 で debugedit 5.1 が導入される

RHEL 10 には debugedit 5.1 が含まれています。主な変更点は以下のとおりです。

  • debugedit ユーティリティーは、より高速な xxhash アルゴリズムを使用して buildid を生成するようになりました。
  • find-debuginfo ユーティリティーは、次の新しいオプションをサポートしています。
  • -v--verbose を使用すると、処理されたすべてのファイルに関する出力をさらに追加します。
  • -q--quiet を使用すると、エラー以外のすべての出力を抑制します。
  • find-debuginfo ユーティリティーは、dwz ツールにも -j オプションを渡すようになり、並列処理が可能になりました。
  • debugedit ユーティリティーは、圧縮された DWARF デバッグ ELF セクションを処理するようになりました。
  • debugedit ユーティリティーは、clang コンパイラーで使用されるように、より多くの DWARF5 構造を処理するようになりました。

Jira:RHEL-64137

RHEL 10 では elfutils バージョン 0.192 が提供される

elfutils パッケージがバージョン 0.192 に更新されました。以下は、主な改善点です。

  • debuginfod:

    • Fedora および RHEL の RPM IMA スキームを使用して、整合性チェックのためのファイルごとの署名検証を追加しました。
    • メタデータクエリー用の新しい API: ファイル名 buildid
    • カーネルの debuginfo パッケージからのファイルのサーバー側抽出が大幅に高速化されました。所要時間は、約 50 秒から 0.25 秒未満に短縮されました。
  • libdw:

    • 新しい関数 dwfl_set_sysrootdwfl_frame_unwound_source、および dwfl_unwound_source_str
  • stacktrace:

Jira:RHEL-64046

RHEL 10 では libabigail 2.6 が提供される

RHEL 10 は、libabigail ライブラリーのバージョン 2.6 を提供します。主な変更点は、以下のとおりです。

  • BPF Type Format (BTF) と Common Trace Format (CTF) を使用することで、Linux カーネルモジュール分析のサポートが向上しました。
  • ミドルエンドでの内部型比較アルゴリズムが改善されました。
  • abipkgdiffabidwabilint ユーティリティーのログが改善されました。
  • 多くのバグが修正されました。

さらなる変更は、アップストリームのリリースノート を参照してください。

Jira:RHEL-64063

valgrind がバージョン 3.24.0 で提供される

RHEL 10.0 では、バージョン 3.24.0 で valgrind スイートが提供されます。主な機能拡張は、次のとおりです。

  • --track-fds=yes オプションは、不正なファイル記述子を使用しているときに抑制可能なエラーを表示し、エラーを XML 出力に書き込むようになりました。このオプションを使用しない場合に表示される警告は非推奨となり、今後のバージョンで削除される予定です。
  • エラーメッセージが Ada の名前デマングルをサポートするようになりました。
  • deflate-conversion 機能 (z15/arch13) は、IBM Z プラットフォームの Deflate 圧縮呼び出し (DFLTCC) 命令をサポートするようになりました。
  • IBM Z プラットフォームでは、valgrind は、メッセージセキュリティーアシスト (MSA) 機能とその 1-9 エクステンションで提供される命令をサポートするようになりました。
  • Valgrind は、以下の新しい Linux システムコールをサポートするようになりました。

    • open_tree
    • move_mount
    • fsopen
    • fsconfig
    • fsmount
    • fspick
    • landlock_create_ruleset
    • landlock_add_rule
    • landlock_restrict_self

Jira:RHEL-64056

Go Toolset がバージョン 1.23 で提供される

RHEL 10.0 では、Go Toolset のバージョン 1.23 が提供されます。主な機能拡張は、次のとおりです。

  • for-range ループは、次のタイプのイテレーター関数を受け入れます。

    • func(func() bool)
    • func(func(K) bool)
    • func(func(K, V) bool)

      for-range ループの反復値は、イテレーター引数関数の呼び出しによって作成されます。参照リンクは、アップストリームのリリースノート を参照してください。

  • Go Toolchain により、使用状況や破損統計情報を収集できます。これは、Go チームが Go Toolchain がどのように使用され、どのように機能するかを理解するのに役立ちます。デフォルトでは、Go Telemetry はテレメトリーデータをアップロードせず、ローカルにのみ保存します。詳細は、アップストリームの Go Telemetry ドキュメント を参照してください。
  • go vet サブコマンドには、参照ファイルで使用する Go のバージョンに対して新しすぎるシンボルへの参照にフラグを立てる stdversion アナライザーが含まれています。
  • cmd および cgo 機能は、C リンカーにフラグを渡すための -ldflags オプションをサポートしています。go コマンドは、非常に大きな CGO_LDFLAGS 環境変数を使用する場合に、argument list too long エラーを回避するために、このフラグを自動的に使用します。
  • trace ユーティリティーは、部分的に壊れたトレースを許容し、トレースデータを回復しようとします。これはクラッシュが発生した場合にクラッシュに至るまでのトレースを取得できるため、特に便利です。
  • 未処理のパニックまたはその他の回復不可能なエラーが発生した後にランタイムによって出力されるトレースバックには、goroutine のスタックトレースを最初の goroutine と区別するためのインデントが含まれます。
  • プロファイルガイドによる最適化を使用したコンパイラービルド時間のオーバーヘッドが 1 桁のパーセンテージに削減されました。
  • 新しい -bindnow リンカーフラグにより、動的にリンクされた ELF バイナリーをビルドするときに即時の関数バインディングが有効になります。
  • //go:linkname リンカーディレクティブは、定義で //go:linkname でマークされていない標準ライブラリーおよびランタイムの内部シンボルを参照しなくなりました。
  • プログラムが Timer または Ticker を参照しなくなった場合、Stop メソッドが呼び出されていなくても、これらはガベージコレクションによってすぐにクリーンアップされます。Timer または Ticker に関連付けられたタイマーチャネルは、現在バッファーなし (容量 0) になっています。これにより、Reset メソッドまたは Stop メソッドが呼び出されるたびに、呼び出し後に古い値が送受信されなくなります。
  • 新しい unique パッケージは、interning または hash-consing などの値を正規化する機能を提供します。
  • 新しい iter パッケージは、ユーザー定義のイテレーターを使用するための基本的な定義を提供します。
  • slices および maps パッケージには、イテレーターで使用するいくつかの新しい関数が導入されています。
  • 新しい structs パッケージは、メモリーレイアウトなど、含まれる struct 型のプロパティーを変更する struct フィールドの型を提供します。
  • 次のパッケージにマイナーな変更が加えられました。

    • archive/tar
    • crypto/tls
    • crypto/x509
    • database/sql
    • debug/elf
    • encoding/binary
    • go/ast
    • go/types
    • math/rand/v2
    • net
    • net/http
    • net/http/httptest
    • net/netips
    • path/filepath
    • reflect
    • runtime/debug
    • runtime/pprof
    • runtime/trace
    • slices
    • sync
    • sync/atomic
    • syscall
    • testing/fstest
    • text/template
    • time
    • unicode/utf16

詳細は、アップストリームのリリースノート を参照してください。

Go Toolset は Rolling Application Stream であり、Red Hat は最新バージョンのみをサポートします。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。

Jira:RHEL-34260

RHEL 10 で LLVM ツールセット 19.1.7 が導入される

RHEL 10 には LLVM Toolset version 19.1.7 が含まれています。

LLVM コンパイラーの主な変更点:

  • LLVM は、デバッグ情報をより効率的に表現する デバッグレコード を使用するようになりました。

Clang の主な更新:

  • C++14 サイズの割り当て解除がデフォルトで有効になりました。
  • C++17 のサポートが完了しました。
  • 特にモジュール、概念、Class Template Argument Deduction (CTAD) に関する C++20 へのサポートが改善されました。
  • C++23、C++2c、C23、C2y のサポートが改善されました。

詳細は、LLVM リリースノート および Clang リリースノート を参照してください。

LLVM Toolset は Rolling Application Stream であり、最新バージョンのみがサポートされます。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。

Jira:RHEL-57456

RHEL 10.0 には Rust Toolset バージョン 1.84.1 が含まれる

RHEL 10.0 には、Rust Toolset バージョン 1.84.1 が含まれています。以前提供されていたバージョン 1.79.0 以降の主な機能拡張は次のとおりです。

  • 新しい LazyCell および LazyLock タイプは、最初の使用時まで初期化を遅延します。これらは、各インスタンスに初期化関数が含まれた以前の OnceCell および OnceLock タイプを拡張します。
  • 標準ライブラリーの新しいソート実装により、実行時のパフォーマンスとコンパイル時間が向上します。また、コンパレーターが完全な順序を生成していない場合を検出し、ソートされていないデータを返す代わりにパニックを発生させるようにしています。
  • 不透明な戻り値の型の正確なキャプチャーが追加されました。新しい use<..> 構文は、impl Trait 戻り値の型で使用されるジェネリックパラメーターと有効期間を指定します。
  • const コードに多くの新機能が追加されました。以下に例を示します。

    • 浮動小数点サポート
    • インラインアセンブリーの const immediate
    • 静的なものへの参照
    • ミュータブルな参照とポインター
  • unsafe コードに対する多くの新機能が追加されました。次に例を示します。

    • 厳密な履歴管理 API
    • &raw ポインター構文
    • 静的なものを安全に処理する
    • 安全でない extern ブロック内で安全な項目を宣言する
  • Cargo 依存関係リゾルバーはバージョンを認識するようになりました。依存関係クレートがサポートされる最小 Rust バージョンを指定している場合、Cargo は依存関係グラフを解決するときに、最新の semver 互換のクレートバージョンを使用する代わりに、この情報を使用します。

互換性に関する注意事項:

  • WebAssembly System Interface (WASI) ターゲットが rust-std-static-wasm32-wasi から rust-std-static-wasm32-wasip1 に変更されました。コマンドラインで --target wasm32-wasip1 パラメーターを使用して WASI ターゲットを選択することもできます。詳細は、アップストリームブログ投稿 Changes to Rust’s WASI targets を参照してください。
  • 分割されたパニックフックとパニックハンドラー引数 core::panic::PanicInfostd::panic::PanicInfo は異なる型になりました。
  • extern "C" 関数は、キャッチされないパニックが発生すると停止します。ABI 境界を越えてアンワインドできるようにするには、代わりに extern "C-unwind" を使用します。

Rust Toolset は Rolling Application Stream であり、Red Hat は最新バージョンのみをサポートします。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。

Jira:RHEL-59689[1]

RHEL 10 には PCP バージョン 6.3.0 が含まれる

RHEL 10 には Performance Co-Pilot (PCP) バージョン 6.3.0 が含まれています。利用可能であった以前のバージョン 6.2.0 への主な変更点は、以下のとおりです。

新しいツールとエージェント

  • pcp2openmetrics: Open Metrics 形式の PCP メトリクスをリモートエンドポイントにプッシュする新しいツール
  • pcp-geolocate: 緯度と経度のメトリクスラベルを報告する新しいツール
  • pmcheck: PCP コンポーネントを調査および制御するための新しいツール
  • pmdauwsgi: uWSGI サーバーから計装をエクスポートする新しい PCP エージェント

強化されたツール

  • pmdalinux: 新しいカーネルメトリクス (hugepages、filesystems、TCP、softnet、virtual machine balloon) が追加されました。
  • pmdalibvirt: メトリクスラベルのサポートを追加し、新しいバルーン、仮想 CPU、ドメイン情報メトリクスが追加されました。
  • pmdabpf: pcp-atop ユーティリティーと使用するための eBPF ネットワークメトリクスが改良されました。

Jira:RHELDOCS-18787[1]

RHEL 10 では Grafana バージョン 10.2.6 が提供される

Grafana プラットフォームがバージョン 10.2.6 に更新されました。

主な機能拡張は、次のとおりです。

  • 時系列およびローソク足ビジュアライゼーションの Y 軸を、Shift キーを押しながらクリックしてドラッグすることで拡大できるようになりました。
  • ダッシュボード作成時のデータソースの選択が効率化されました。
  • ユーザーインターフェイスが更新されました (ナビゲーションとコマンドパレットの更新など)。
  • 変換に対するさまざまな改善 (Add field from calculation 変換の新しい単項演算モードなど)。
  • ダッシュボードとデータの視覚化に対するさまざまな改善 (空のダッシュボードとダッシュボードパネルの再設計など)。
  • 新しいジオマップパネルとキャンバスパネル。

その他の変更点:

  • ユーザー、アクセス、認証、認可、セキュリティーに対するさまざまな改善。
  • アラートの改善と新しいアラート機能。
  • パブリックダッシュボードが利用可能になりました。

以前利用可能だった Grafana バージョン 9.2 以降の変更点の完全なリストは、アップストリームのドキュメント を参照してください。

Jira:RHEL-35761

RHEL 10 では grafana-pcp バージョン 5.2.2 が提供される

RHEL 10 には、grafana-pcp プラグインバージョン 5.2.2 が同梱されています。主な変更点は、以下のとおりです。

  • プラグインは、Redis の代わりに Valkey をデータソースとして使用するようになりました。その結果、PCP Redis データソースの名前が PCP Valkey に変更されました。
  • 新しいダッシュボード:

    • PCP Vector Top Consumers
    • PCP Vector UWSGI の概要
  • RediSearch モジュールの代替が Valkey データソースで利用可能になるまで、メトリクス検索は使用できません。

Jira:RHEL-67043

Grafana、PCP、grafana-pcp がデータの保存に Valkey を使用するようになる

RHEL 10 では Valkey キー値ストアが Redis に置き換えられます。その結果、Grafana、PCP、grafana-pcp プラグインは、Redis ではなく Valkey を使用してデータを保存するようになりました。grafana-pcp プラグインの PCP Redis データソースの名前が PCP Valkey に変更されました。

Jira:RHEL-45646

RHEL 10 では zlib-ng-compatzlib に置き換えられます。

新しい zlib-ng-compat パッケージは、さまざまなプログラムで使用される汎用のロスレスデータ圧縮ライブラリーを提供します。この実装は、RHEL 9 に含まれる zlib と比べてさまざまな利点を提供します。たとえば、zlib-ng-compat は、利用可能な場合にハードウェアアクセラレーションをサポートし、圧縮の効率とパフォーマンスを向上させます。zlib-ng-compat は、zlib からスムーズに移行するように、API および ABI 互換モードで構築されています。

Jira:RHEL-24058[1]

CRB リポジトリーで利用可能な SWIG 4.3.0

Simplified Wrapper and Interface Generator (SWIG) バージョン 4.2.1 が CodeReady Linux Builder (CRB) リポジトリーで利用可能になりました。主な変更点は、以下のとおりです。

  • Python 標準テンプレートライブラリー (STL) コンテナーラッパーは、Python Iterator プロトコルを使用するようになりました。
  • SWIG は現在以下をサポートしています。

    • Python stable Application Binary Interface (ABI)
    • Python 3.12 および Python 3.13
    • Ruby 3.2 および Ruby 3.3
    • Tcl 9.0
    • PHP 8; PHP 7 のサポートは削除されました。
  • C++11 の auto 変数に対して、C++14 の auto 変数と同様に後置戻り値型なしで使用できるサポートが追加されました。
  • 暗黙的、デフォルト、削除されたもの、および関連する代入不可能な変数ラッパーを含む、コンストラクター、デストラクター、および代入演算子が修正されました。
  • Node.js binary stable ABI Node-API をターゲットとする新しい Javascript ジェネレーターが利用可能になりました。
  • 複数の非推奨機能が削除されました。
  • ターゲット言語として C の実験的サポートが追加されました。
  • nspace 機能を使用する際の名前空間の処理が強化されました。
  • std::unique_ptrstd::string_viewstd::filesystem objects に対して STL ラッパーが強化されました。
  • C++17 の折り畳み式と C++11 の後置戻り値型のサポートが追加されました。
  • 文字列および文字リテラルの処理が改善されました。

CodeReady Linux Builder リポジトリーに含まれるパッケージは、サポート対象外であることに注意してください。

Jira:RHELDOCS-19059[1]

Red Hat build of OpenJDK 21 が RHEL 10 のデフォルトの Java 実装になる

デフォルトの RHEL 10 Java 実装は OpenJDK 21 です。OpenJDK 21 Java Runtime Environment と OpenJDK 21 Java Software Development Kit を提供する java-21-openjdk パッケージを使用します。詳細は、OpenJDK のドキュメント を参照してください。

Jira:RHEL-51248

Clang と LLVM はデバッグセクションの圧縮に zstd をサポートするようになる

デフォルトでは、Clang および LLVM ツールはデバッグセクションの圧縮アルゴリズムとして Zlib を使用します。この機能拡張により、ユーザーは Zlib よりも高い圧縮率を達成できる Zstandard (zstd) アルゴリズムを代わりに使用できるようになります。

たとえば、Clang でプログラムをコンパイルするときに zstd 圧縮を使用する場合は、次のコマンドを使用します。

$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
Copy to Clipboard Toggle word wrap

Jira:RHEL-70325

llvm-doc パッケージにアップストリームドキュメントへの参照のみが含まれるようになる

以前のバージョンでは、llvm-doc パッケージには HTML 形式の LLVM ドキュメントが含まれていました。この更新により、パッケージはアップストリームドキュメントへの参照を含む /usr/share/doc/llvm/html/index.html ファイルのみを提供します。

Jira:RHEL-58900

RHEL 10 では cmake のバージョン 3.30.5 が提供される

RHEL 10 には cmake バージョン 3.30.5 が含まれています。主な変更は、アップストリームのリリースノート を参照してください。

Jira:RHEL-65234

RHEL 10 で .NET バージョン 9.0 と 8.0 を提供

自動メモリー管理と最新のプログラミング言語を備えた汎用開発プラットフォームである .NET の最新バージョン (9.0) と、現在の .NET (8.0) の長期サポートは、Red Hat Enterprise Linux (RHEL) 10 でサポートされます。.NET を使用すると、高品質のアプリケーションを効率的に構築できます。

インストールと使用方法の詳細は、.NET 9.0 および .NET 8.0 のドキュメントを参照してください。

Jira:RHELDOCS-20066[1]

RHEL 10.0 では、Go Toolset のバージョン 1.24.4 が提供される

RHSA-2025:10677 アドバイザリーのリリースに伴い、Go Toolset がバージョン 1.24.4 に更新されました。

主な機能拡張と変更点は次のとおりです。

  • 言語:

    • ジェネリック型エイリアスが完全にサポートされるようになりました。これにより、型エイリアスにパラメータを持たせることが可能になり、ジェネリックを扱う際の柔軟性が向上します。
  • ツール:

    • Go モジュールシステムは、go.mod ファイル内の tool ディレクティブをサポートし、実行可能ファイルの依存関係を直接管理できるようにします。
    • go buildgo installgo test コマンドは、構造化された出力用の -json フラグをサポートするようになりました。
    • 新しい GOAUTH 環境変数は、プライベートモジュールの強化された認証を提供します。
  • ランタイムとパフォーマンス:

    • ランタイムの改善により、CPU オーバーヘッドが平均で 2-3% 削減されます。
    • 主な変更点として、Swiss Tables に基づく新しいマップの実装と、より効率的なメモリー割り当てが挙げられます。
  • 標準ライブラリー:

    • 新しい os.Root タイプにより、ディレクトリー制限のあるファイルシステムアクセスが可能になります。
    • testing.B.Loop メソッドによりベンチマークが改善されます。
    • runtime.AddCleanup 関数は、より柔軟なファイナライズメカニズムを提供します。
    • 新しい weak パッケージでは、weak ポインターが導入されています。
  • 暗号化:

    • ML-KEM 耐量子計算機鍵交換 (crypto/mlkem)、HKDF、PBKDF2、および SHA-3 の新しいパッケージが利用可能になりました。
    • Go Cryptographic Module は現在、FIPS 140-3 認定に向けて審査中です。
  • 追加の更新:

    • vet ツールには、テストや例によくある間違いを検出するための新しいアナライザーが含まれています。
    • objdump ツールは、より多くのアーキテクチャーをサポートするようになりました。
    • Cgo では、パフォーマンスと正確性を向上させるためにアノテーションが導入されています。

詳細は、アップストリームのリリースノート を参照してください。

Go Toolset は Rolling Application Stream であり、Red Hat は最新バージョンのみをサポートします。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。

Jira:RHEL-101075[1]

IBM Semeru JDK が RHEL 10 で利用可能になる

IBM Semeru は、Technology Compatibility Kit (TCK) 認定済みの Java Runtime Environment (JRE) 実装です。これは Red Hat Enterprise Linux (RHEL) 10 に組み込まれており、IBM によってメンテナンスされています。java-21-ibm-semeru-certified-jdk-devel パッケージは、RHEL Supplementary リポジトリー で提供されており、RHEL AppStream リポジトリー で提供されている Open Java Development Kit (OpenJDK) ディストリビューションの代替として利用できます。

Jira:RHELDOCS-20591[1]

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat