4.10. コンパイラーおよび開発ツール
新しい GCC Toolset 14
GCC Toolset 14 は、最新バージョンの開発ツールを提供するコンパイラーツールセットです。これは、AppStream リポジトリー内の Software Collection の形式で Application Stream として利用できます。
GCC Toolset 14 では、RHEA-2024:8851 アドバイザリーのリリースに伴い、次のツールとバージョンが提供されます。
- GCC 14.2
- GDB 14.2
-
binutils
2.41 -
annobin
12.70 -
dwz
0.14
GCC Toolset 14 をインストールするには、root として次のコマンドを実行します。
# yum 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-34596[1], Jira:RHEL-30411
GCC Toolset 14: GCC がバージョン 14.2 にリベース
GCC Toolset 14 では、RHEA-2024:8864 アドバイザリーのリリースに伴い、GNU コンパイラーコレクション (GCC) がバージョン 14.2 に更新されました。
主な変更点は、以下のとおりです。
- 最適化と診断の改善
-
一連のハードニングフラグを有効化する新しい包括的な
-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-30412[1]
GCC Toolset 14: GDB がバージョン 14.2 にリベース
GCC Toolset 14 では、RHBA-2024:8862 アドバイザリーのリリースに伴い、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>-packet
とshow remote <name>-packet
を参照)。 - デバッガーアダプタープロトコルのサポートが追加されました。
-
新しい
inferior
キーワードを使用して、ブレークポイントを inferior 固有のブレークポイントに設定できるようになりました (コマンドのbreak
またはwatch
を参照)。 -
新しい
$_shell()
簡易関数を使用して、式の評価中にシェルコマンドを実行できるようになりました。
既存コマンドの変更点:
break
、watch
-
break
およびwatch
コマンドでthread
またはtask
キーワードを複数回使用すると、キーワードの最後のインスタンスのスレッドまたはタスク ID が使用されるのではなく、エラーが発生するようになりました。 -
同じ
break
またはwatch
コマンドでthread
、task
、inferior
キーワードを複数使用できなくなりました。
-
printf
、dprintf
-
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 characters
、print -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
クラス-
新しいメソッド:
name
、is_valid
、pc
、language
、find_sal
、block
、function
。これらはgdb.Frame
クラスの同様のメソッドを反映しています。 -
create_unwind_info
関数のframe-id
引数は、pc
、sp
、および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_env
、set_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 は、文字列をヘルプ出力として使用する前に、
gdb.Objfile
クラス-
新しい
is_file
属性。
-
新しい
-
新しい
gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE)
関数。逆アセンブラーからアドレス、シンボル、オフセット情報を出力する際に同じ形式を使用します。 -
新しい
gdb.current_language
関数。現在の言語の名前を返します。 -
GDB の逆アセンブラーをラップするための新しい Python API。
gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH)
、gdb.disassembler.Disassembler
、gdb.disassembler.DisassembleInfo
、gdb.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 Z ターゲット上の新しい
IBM Power Systems、リトルエンディアン
- POWER11 のベース有効化のサポートを追加しました。
Jira:RHELDOCS-18598[1], Jira:RHEL-36225, Jira:RHEL-36518
GCC Toolset 14: annobin
がバージョン 12.70 にリベース
GCC Toolset 14 では、RHBA-2024:8863 アドバイザリーのリリースに伴い、annobin
がバージョン 12.70 に更新されました。更新されたバイナリーテスト用の annobin
ツールセットにより、さまざまなバグ修正が提供され、新しいテストが導入され、新しいバージョンの GCC、Clang、LLVM、および Go コンパイラーをビルドして使用するようにツールが更新されます。強化されたツールにより、非標準的な方法でビルドされたプログラムの新しい問題を検出できます。
Jira:RHEL-30409[1]
GCC Toolset 13: GCC が AMD Zen 5 をサポートするようになる
RHBA-2024:8829 アドバイザリーのリリースに伴い、GCC の GCC Toolset 13 バージョンに AMD Zen 5 プロセッサーマイクロアーキテクチャーのサポートが追加されました。サポートを有効にするには、-march=znver5
コマンドラインオプションを使用します。
Jira:RHEL-36524[1]
LLVM ツールセットが 18.1.8 に更新される
RHBA-2024:8828 アドバイザリーのリリースに伴い、LLVM Toolset がバージョン 18.1.8 に更新されました。
LLVM の主な更新点:
-
以下の命令の定数式バリアントが削除されました。
and
、or
、lshr
、ashr
、zext
、sext
、fptrunc
、fpext
、fptoui
、fptosi
、uitofp
、sitofp
。 -
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
オプションを使用してください。
-
Clang は、グローバルモジュールフラグメント内の宣言に対して One Definition Rule (ODR) チェックを実行しなくなりました。より厳密な動作を有効にするには、
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 ah
がahgch
ファイルをプローブするときに、そのファイルが 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-30907[1]
Rust Toolset がバージョン 1.79.0 にリベース
RHBA-2024:8827 アドバイザリーのリリースに伴い、Rust Toolset がバージョン 1.79.0 に更新されました。以前提供されていたバージョン 1.75.0 以降の主な機能拡張は次のとおりです。
-
新しい
offset_of!
マクロ - C 文字列リテラルのサポート
-
インライン
const
式のサポート - 関連型の位置における境界のサポート
- 一時的な自動有効期間延長の改善
-
unsafe
前提条件のデバッグアサーション
Rust ツールセットは Rolling Application Stream であり、最新バージョンのみがサポートされます。詳細は、Red Hat Enterprise Linux Application Streams ライフサイクル ドキュメントを参照してください。
Jira:RHEL-30073[1]
Go Toolset がバージョン 1.22 にリベース
RHSA-2024:8876 アドバイザリーのリリースに伴い、Go Toolset がバージョン 1.22 に更新されました。
主な機能拡張は、次のとおりです。
- 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-46972[1]
elfutils
がバージョン 0.190 にリベース
elfutils
パッケージが、バージョン 0.190 に更新されました。以下は、主な改善点です。
-
libelf
ライブラリーが、相対再配置 (RELR) をサポートするようになりました。 -
libdw
ライブラリーが、.debug_[ct]u_index
セクションを認識するようになりました。 -
eu-readelf
ユーティリティーが、ELF セクションを使用せずに動的セグメントを使用してシンボルを表示する、新しい-Ds
,--use-dynamic --symbol
オプションをサポートするようになりました。 -
eu-readelf
ユーティリティーが、.gdb_index
バージョン 9 を表示できるようになりました。 -
新しい
eu-scrlines
ユーティリティーは、指定された DWARF または ELF ファイルに関連付けられたソースファイルのリストをコンパイルします。 -
debuginfod
サーバースキーマが変更され、ファイル名の表現が 60% 圧縮されました (インデックスの再作成が必要です)。
valgrind
が 3.22 に更新される
valgrind
パッケージがバージョン 3.22 に更新されました。以下は、主な改善点です。
-
valgrind
memcheck
は、C 関数memalign
、posix_memalign
、およびaligned_alloc
に指定された値と、C++17 で調整されたnew
Operator が有効なアラインメント値であるかどうかをチェックするようになりました。 -
valgrind
memcheck
は、C++14 サイズおよび C++17 に揃えられたnew
およびdelete
Operator の不一致検出をサポートするようになりました。 -
DWARF デバッグ情報の遅延読み取りのサポートが追加され、
debuginfo
パッケージがインストールされている場合に起動が高速化されました。
Clang リソースディレクトリーが移動しました
Clang が内部ヘッダーとライブラリーを保存する Clang リソースディレクトリーが、/usr/lib64/clang/17
から /usr/lib/clang/17
に移動しました。
新しい grafana-selinux
パッケージ
以前は、grafana-server
のデフォルトのインストールは unconfined_service_t
SELinux タイプとして実行されていました。この更新では、grafana-server
用の SELinux ポリシーが含まれ、grafana-server
とともにデフォルトでインストールされる、新しい grafana-selinux
パッケージが追加されます。その結果、grafana-server
は grafana_t
SELinux タイプとして実行されるようになりました。
GCC Toolset 13 の更新
GCC Toolset 13 は、最新バージョンの開発ツールを提供するコンパイラーツールセットです。これは、AppStream リポジトリー内の Software Collection の形式で Application Stream として利用できます。
RHEL 8.10 で導入された注目すべき変更点は次のとおりです。
- GCC コンパイラーがバージョン 13.2.1 に更新され、アップストリーム GCC で利用可能な多くのバグ修正と機能拡張が提供されます。
-
binutils
は、-march=znver5
コンパイラースイッチを通じて、znver5
コアに基づく AMD CPU をサポートするようになりました。 -
annobin
がバージョン 12.32 に更新されました。 -
GCC の
annobin
プラグインは、オブジェクトファイルに保存するメモに対して、より圧縮された形式をデフォルトで使用するようになりました。その結果、特に大規模で複雑なプログラムでは、オブジェクトファイルが小さくなり、リンク時間が短縮されます。
次のツールとバージョンが GCC Toolset 13 によって提供されます。
ツール | バージョン |
---|---|
GCC | 13.2.1 |
GDB | 12.1 |
binutils | 2.40 |
dwz | 0.14 |
annobin | 12.32 |
GCC Toolset 13 をインストールするには、root として次のコマンドを実行します。
# yum install gcc-toolset-13
GCC Toolset 13 からツールを実行するには、以下を使用します。
$ scl enable gcc-toolset-13 tool
GCC Toolset 13 のツールバージョンがこれらのツールのシステムバージョンをオーバーライドするシェルセッションを実行するには、以下を使用します。
$ scl enable gcc-toolset-13 bash
詳細は、GCC Toolset 13 および GCC Toolset の使用 を参照してください。
Jira:RHEL-25405[1]
LLVM Toolset がバージョン 17.0.6 にリベース
LLVM Toolset がバージョン 17.0.6 に更新されました。
主な機能拡張は、次のとおりです。
- Opaque ポインターの移行が完了しました。
- ミドルエンド最適化におけるレガシーパスマネージャーのサポートが削除されました。
Clang の変更:
- C++20 コルーチンは実験的なものとはみなされなくなりました。
-
最適化されていないビルドでの
std::move
関数などのコード生成が改善されました。
詳細は、LLVM および Clang のアップストリームリリースノートを参照してください。
Rust Toolset がバージョン 1.75.0 にリベース
Rust Toolset がバージョン 1.75.0 に更新されました。
主な機能拡張は、次のとおりです。
- 定数評価時間が無制限になる
- よりクリーンなパニックメッセージ
- Cargo レジストリー認証
-
トレイト内の
async fn
と不透明な戻り値のタイプ
Go Toolset がバージョン 1.21.0 にリベース
Go Toolset がバージョン 1.21.0 に更新されました。
主な機能拡張は、次のとおりです。
-
min
、max
、clear
ビルトインが追加されました。 - プロファイルに基づく最適化の正式サポートが追加されました。
- パッケージの初期化順序がより正確に定義されるようになりました。
- 型推論が改善されました。
- 下位互換性のサポートが改善されました。
詳細は、アップストリームの Go リリースノートを参照してください。
Jira:RHEL-11872[1]
papi
は、新しいプロセッサーマイクロアーキテクチャーをサポートする
この機能拡張により、次のプロセッサーマイクロアーキテクチャー上の papi
イベントプリセットを使用して、パフォーマンス監視ハードウェアにアクセスできるようになります。
- AMD Zen 4
- 第 4 世代 Intel® Xeon® スケーラブルプロセッサー
Jira:RHEL-9336[1]、Jira:RHEL-9320、Jira:RHEL-9337
Ant がバージョン 1.10.9 にリベース
ant:1.10
モジュールストリームがバージョン 1.10.9 に更新されました。このバージョンでは、プロバイダークラスとプロバイダー引数を使用したコード署名のサポートが提供されます。
更新された ant:1.10
モジュールストリームは、ant
および ant-lib
パッケージのみを提供します。Ant に関連する残りのパッケージは、サポートされていない CodeReady Linux Builder (CRB) リポジトリーの javapackages-tools
モジュールで配布されており、更新されていません。
更新された ant:1.10
モジュールストリームからのパッケージは、javapackages-tools
モジュールからのパッケージと並行して使用することはできません。Ant 関連パッケージの完全なセットを使用する場合は、ant:1.10
モジュールをアンインストールして無効にし、CRB リポジトリーを有効 にして、javapackages-tools
モジュールをインストールする必要があります。
新しいパッケージ: maven-openjdk21
maven:3.8
モジュールストリームに、maven-openjdk21
サブパッケージが含まれるようになりました。このサブパッケージは、OpenJDK 21 用の Maven JDK バインディングを提供し、システム OpenJDK 21 を使用するように Maven を設定します。
Jira:RHEL-17126[1]
cmake
がバージョン 3.26 にリベース
cmake
パッケージがバージョン 3.26 に更新されました。以下は、主な改善点です。
- C17 および C18 の言語規格のサポートが追加されました。
-
cmake
は、/etc/os-release
ファイルでオペレーティングシステムの識別情報をクエリーできるようになりました。 -
CUDA 20 および
nvtx3
ライブラリーのサポートが追加されました。 - Python 安定アプリケーションバイナリーインターフェイスのサポートが追加されました。
- Simplified Wrapper and Interface Generator (SWIG) ツールに Perl 5 のサポートが追加されました。