検索

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

download PDF

システム GCC がバージョン 11.5 にリベースされました

RHEL 9 の GCC のシステムバージョンがバージョン 11.5 に更新されました。この更新では多数のバグが修正されました。

Jira:RHEL-35635

glibc の新しい調整可能パラメーターを使用して動的オブジェクトをより近くに配置することで、パフォーマンスが向上します。

以前は、glibc の動的ローダーは、セキュリティーを強化するために、使用可能なアドレス空間全体に動的オブジェクトをランダムに配置していました。その結果、オブジェクト間が遠くなりすぎて、オブジェクト間の呼び出しが非効率的になることが少なくありませんでした。

この更新により、次の調整パラメーターを設定することで、オブジェクトをより近くに (具体的にはアドレス空間の最初の 2 Gb に) 配置できるようになりました。

export GLIBC_TUNABLES=glibc.cpu.prefer_map_32bit_exec=1

この調整パラメーターを設定すると、一部のアプリケーションで、アドレス空間配置のランダム化 (ASLR) がわずかに低下する代わりにパフォーマンスが向上する可能性があります。

Jira:RHEL-20172[1]

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

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

注記

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

Jira:RHEL-25046[1]

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-25531[1]

GDB のシステムバージョンがバージョン 14.2 にリベースされ、GDB が GCC Toolset から削除されました

GDB がバージョン 14.2 に更新されました。RHEL 9.5 以降、GDB は、RHEL のマイナーリリースでシステムバージョンがリベースされた Rolling Application Stream に移行しています。したがって、GDB は RHEL 9 の GCC Toolset 14 には含まれていません。

以下の段落では、GDB 12.1 から GDB 14.2 への主な変更点を示します。

全般:

  • 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 出力形式を受け入れるようになりました。たとえば printf "%V[-array-indexes on]", <array> のように、コマンドの後に括弧 […] で囲んだ追加の print オプションを使用して、出力形式を変更することもできます。
  • 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 のベース有効化のサポートを追加しました。

アプリケーションストリームのローリングの詳細は、Red Hat Enterprise Linux アプリケーションストリームライフサイクル を参照してください。

JIRA:RHEL-36211、JIRA:RHEL-10550、JIRA:RHEL-39555

elfutils がバージョン 0.191 にリベース

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

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

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

Jira:RHEL-29194

SystemTap がバージョン 5.1 にリベースされました

SystemTap トレーシングおよびプローブツールがバージョン 5.1 に更新されました。主な変更点は、以下のとおりです。

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

Jira:RHEL-29528

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-29534、Jira:RHEL-10551

libabigail バージョン 2.5 にリベース

libabigail ライブラリーがバージョン 2.5 に更新されました。主な変更点は、以下のとおりです。

  • 柔軟な配列データメンバーの厳密な変換の抑制仕様が改善されました。
  • C++ バイナリーの pointer-to-member 型のサポートが追加されました。
  • abicompat ツールの weak モードが改善されました。
  • オペレーティングシステムの ABI を管理するための新しい abidb ツール。
  • 多くのバグ修正。

Jira:RHEL-30013, Jira:RHEL-7332, Jira:RHEL-7325

新しい GCC Toolset 14

GCC Toolset 14 は、最新バージョンの開発ツールを提供するコンパイラーツールセットです。これは、AppStream リポジトリー内の Software Collection の形式で Application Stream として利用できます。

以下のツールおよびバージョンは、GCC Toolset 14 で利用できます。

  • GCC 14.2
  • binutils 2.41
  • annobin 12.70
  • dwz 0.14

GDB のシステムバージョンがリベースされ、GDB は GCC ツールセットに含まれなくなった ことに注意してください。

GCC Toolset 14 をインストールするには、ルートとして次のコマンドを入力します。

# dnf install gcc-toolset-14

GCC Toolset 14 のツールを実行するには、以下のコマンドを実行します。

$ scl enable gcc-toolset-14 <tool>

GCC Toolset 14 のツールバージョンによってこのツールのシステムバージョンをオーバーライドするシェルセッションを実行するには、以下のコマンドを実行します。

$ scl enable gcc-toolset-14 bash

GCC Toolset 14 コンポーネントは、GCC Toolset 14 Toolchain コンテナーイメージで利用できます。

詳細は、GCC Toolset 14 および GCC Toolset の使用 を参照してください。

Jira:RHEL-29758[1]、Jira:RHEL-29852

GCC Toolset 14: GCC がバージョン 14.2 にリベース

GCC Toolset 13 では、GNU Compiler Collection (GCC) がバージョン 13.1.1 に更新されました。

主な変更点は、以下のとおりです。

  • 最適化と診断の改善
  • 一連のハードニングフラグを有効化する新しい包括的な -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-29853[1]

GCC Toolset 14: annobin がバージョン 12.70 にリベース

GCC Toolset 14 で、annobin がバージョン 12.52 に更新されました。更新されたバイナリーテスト用の annobin ツールセットにより、さまざまなバグ修正が提供され、新しいテストが導入され、新しいバージョンの GCC、Clang、LLVM、および Go コンパイラーをビルドして使用するようにツールが更新されます。強化されたツールにより、非標準的な方法でビルドされたプログラムの新しい問題を検出できます。

Jira:RHEL-29850[1]

GCC Toolset 14: binutils がバージョン 2.41 にリベース

RHEL 9.5 は、GCC Toolset 14 binutils バージョン 2.41 とともに配布されます。新機能は次のとおりです。

  • 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:RHEL-29851[1]

LLVM ツールセットが 18.1.8 に更新される

LLVM Toolset がバージョン 17.0.6 に更新されました。

LLVM の主な更新点:

  • 以下の命令の定数式バリアントが削除されました。andorlshrashrzextsextfptruncfpextfptouifptosiuitofpsitofp
  • llvm.exp10 組み込み関数が追加されました。
  • グローバル変数の code_model 属性が追加されました。
  • AArch64、AMDGPU、PowerPC、RISC-V、SystemZ、x86 アーキテクチャーのバックエンドが改善されました。
  • LLVM ツールが改善されました。

Clang の主な機能拡張:

  • C++20 機能のサポート:

    • Clang は、グローバルモジュールフラグメント内の宣言に対して One Definition Rule (ODR) チェックを実行しなくなりました。より厳密な動作を有効にするには、-Xclang -fno-skip-odr-check-in-gmf オプションを使用してください。
  • C++23 機能のサポート:

    • ラムダでの属性の使用について警告するための新しい診断フラグ -Wc++23-lambda-attributes が追加されました。
  • C++2c 機能のサポート:

    • 同じスコープ内で、_ 文字をプレースホルダー変数名として複数回使用できるようになりました。
    • 属性が、文字列リテラルである属性パラメーター内で未評価の文字列を要求するようになりました。
    • C++26 の列挙型に対する非推奨の算術変換が削除されました。
    • テンプレートパラメーター初期化の仕様が改善されました。
  • 変更点の完全なリストについては、Clang のアップストリームのリリースノート を参照してください。

Clang の ABI の変更点:

  • x86_64 の SystemV ABI に従い、__int128 引数がレジスターとスタックスロット間で分割されなくなりました。
  • 詳細は、Clang の ABI 変更点のリスト を参照してください。

後方互換性のない主な変更点:

  • テンプレート化された演算子の引数の逆順に関するバグ修正により、以前は C++17 で受け入れられていたコードが C++20 では機能しなくなります。
  • GCC_INSTALL_PREFIX CMake 変数 (デフォルトの --gcc-toolchain= を設定する変数) が非推奨になり、削除される予定です。代わりに、設定ファイルで --gcc-install-dir= または --gcc-triple= オプションを指定してください。
  • プリコンパイル済みヘッダー (PCH) 生成 (-c -xc-header および -c -xc++-header) のデフォルトの拡張子名が、.gch ではなく .pch になりました。
  • -include ahahgch ファイルをプローブするときに、そのファイルが Clang PCH ファイルまたは Clang PCH ファイルを含むディレクトリーでない場合、include が ahgch を無視するようになりました。
  • __has_cpp_attribute および __has_c_attribute が特定の C++-11 スタイルの属性に対して誤った値を返すバグが修正されました。
  • 逆の operator== の追加時に一致する operator!= を検出する際のバグが修正されました。
  • 関数テンプレートの名前マングリングルールが変更され、テンプレートパラメーターリストまたは requires 句で関数をオーバーロードできるようになりました。
  • -Wenum-constexpr-conversion 警告が、システムヘッダーとマクロでデフォルトで有効になりました。これは、次の Clang リリースでハード (ダウングレード不可能な) エラーに変更されます。
  • C++20 名前付きモジュールのインポートされたモジュールへのパスが、ハードコードできなくなりました。依存するすべてのモジュールをコマンドラインから指定する必要があります。
  • import <module> を使用してモジュールをインポートできなくなりました。Clang は明示的にビルドされたモジュールを使用します。
  • 詳細は、重大である可能性のある変更点のリスト を参照してください。

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

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

Jira:RHEL-28687

Rust Toolset がバージョン 1.79.0 にリベース

Rust Toolset がバージョン 1.75.0 に更新されました。以前提供されていたバージョン 1.75.0 以降の主な機能拡張は次のとおりです。

  • 新しい offset_of! マクロ
  • C 文字列リテラルのサポート
  • インライン const 式のサポート
  • 関連型の位置における境界のサポート
  • 一時的な自動有効期間延長の改善
  • unsafe 前提条件のデバッグアサーション

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

Jira:RHEL-30070

Go Toolset がバージョン 1.22 にリベース

Go Toolset がバージョン 1.21.0 に更新されました。

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

  • for ループ内の変数がイテレーションごとに作成されるようになりました。これにより、不慮のバグの共有を防ぐことができます。さらに、for ループは整数の範囲をカバーできるようになりました。
  • ワークスペース内のコマンドで、ワークスペースの依存関係にベンダーディレクトリーを使用できるようになりました。
  • go get コマンドが、従来の GOPATH モードをサポートしなくなりました。この変更は、go build コマンドと go test コマンドには影響しません。
  • vet ツールが、for ループの新しい動作に合わせて更新されました。
  • 型ベースのガベージコレクションメタデータを各ヒープオブジェクトの近くに保持することで、CPU パフォーマンスが向上するようになりました。
  • インライン化の最適化が改善され、プロファイルに基づく最適化のサポートの強化によりパフォーマンスが向上しました。
  • 新しい math/rand/v2 パッケージが利用可能です。
  • メソッドとワイルドカードのサポートにより、HTTP ルーティングパターンが強化されました。

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

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

Jira:RHEL-29527[1]

PCP がバージョン 6.2.2 にリベースされました

Performance Co-Pilot (PCP) がバージョン 6.2.2 に更新されました。利用可能であった以前のバージョン 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:RHEL-30198

Grafana がバージョン 10.2.6 にリベース

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

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

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

その他の変更点:

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

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

Jira:RHEL-31246[1]

GCC Toolset 13: GCC が AMD Zen 5 をサポートするようになる

GCC の GCC Toolset 13 バージョンでは、AMD Zen 5 プロセッサーマイクロアーキテクチャーのサポートが追加されました。サポートを有効にするには、-march=znver5 コマンドラインオプションを使用します。

Jira:RHEL-36523[1]

OpenJDK 17 の Red Hat ビルドが RHEL 9 のデフォルトの Java 実装になりました

デフォルトの RHEL 9 Java 実装は、ライフサイクル終了 (EOL) に達した OpenJDK 11 から OpenJDK 17 に変更されます。この更新後、OpenJDK 17 Java ランタイム環境と OpenJDK 17 Java ソフトウェア開発キットを提供する java-17-openjdk パッケージは、java および java-devel パッケージも提供するようになります。詳細は、OpenJDK のドキュメント を参照してください。

java/bin または java-OpenJDK/bin を直接呼び出す RHEL 9 の既存のパッケージは、すぐに OpenJDK 17 を使用できるようになります。

java または java-devel パッケージを直接必要とする RHEL 9 の既存のパッケージ (つまり tomcatsystemtap-runtime-java) は、適切な依存関係を自動的に取得します。

Ant、Maven、および javapackages-tools パッケージを通じて間接的に Java を使用しているパッケージは、RHEL 9.5 の一般提供開始後すぐに非同期更新で完全に移行されます。

OpenJDK を初めてインストールする必要がある場合、または依存関係チェーンを通じてデフォルトパッケージがインストールされていない場合は、DNF を使用します。

# dnf install java-17-openjdk-devel

詳細は、yum を使用して RHEL に OpenJDK の Red Hat ビルドの複数のマイナーバージョンをインストールする を参照してください。

重要

RHEL 9 の現在の java-11-OpenJDK パッケージは、これ以上更新されません。ただし、Red Hat は、2027 年 10 月 31 日まで、OpenJDK 11 の Red Hat ビルドの更新を含む延長ライフサイクルサポート (ELS) フェーズ 1 を提供します。

OpenJDK ELS プログラムと OpenJDK ライフサイクルに固有の情報については、OpenJDK ライフサイクルおよびサポートポリシー を参照してください。

Jira:RHEL-56094[1]

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.