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


LLVM Toolset が 19.1.7 に更新される

LLVM Toolset がバージョン 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-57460

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

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

Jira:RHEL-68696

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-70328

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

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-61964

PCP がバージョン 6.3.2 にリベース

Performance Co-Pilot (PCP) がバージョン 6.3.2 に更新されました。利用可能であった以前のバージョン 6.2.2 からの主な変更点は、以下のとおりです。

  • pmdaopenmetrics: 仮想大規模言語モデル (vLLM) メトリクスがデフォルトで追加されるようになりました。
  • pmdalinux: Hyper-V バルーンメトリクスのサポートが追加されました。
  • pmdalinux: ネットワークと hugepages カーネルメトリクスが更新されました。
  • pmdaamdgpu: この新しいエージェントは、libdrm および libdrm-amdgpu ライブラリーからメトリクスを収集します。
  • pmdabpftrace: 多数のまたは遅い bpftrace スクリプトでのこのエージェントの起動が修正されました。
  • pmdaproc: このエージェントは、Linux fdinfo インターフェイスから AMD GPU の新しいメトリクスを収集するようになりました。
  • pmdahacluster: 新しい Pacemaker バージョンをサポートするためにメトリクスが更新されました。
  • pmdastatsd: 負荷がかかったときにクラッシュを回避するようにバグを修正しました。
  • pcp-htop: AMD GPU メトリクスのサポートが追加されました。
  • pcp-htop: プラットフォーム設定が修正され、画面タブが有効になりました。
  • pcp-xsos: このユーティリティーが追加されました。詳細は、pcp-xsos がシステムの迅速な概要を提供する を参照してください。
  • pmrep: 多数の設定ファイルメトリクスセットが更新されました。
  • pmlogconf: 多数の設定ファイルの自動レコードが更新されました。
  • libpcp および pmcd: セキュリティー強化のためのいくつかの改善が追加されました。
  • libpcp および pmlogger: アーカイブのオプションの zstd 圧縮のサポートが追加されました。

Jira:RHEL-58953

glibc ライブラリーの IBM POWER10 の最適化が改善される

この機能拡張により、glibc ライブラリーにおける IBM POWER10 プラットフォームのハードウェアサポートが改善されました。その結果、このプラットフォームでは strcmp() および memchr() API のパフォーマンスが大幅に向上しました。

Jira:RHEL-24740[1]

valgrind がバージョン 3.24.0 にリベース

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

  • --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-64070

libabigail がバージョン 2.6 にリベース

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

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

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

Jira:RHEL-64069

SystemTap がバージョン 5.2 にリベース

SystemTap トレーシングおよびプローブツールがバージョン 5.2 に更新されました。

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

Jira:RHEL-64066

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

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

  • debuginfod サービスは、RHEL の RPM Integrity Measurement Architecture (IMA) スキームを使用してファイルごとの署名検証を実行し、整合性をチェックできるようになりました。
  • ファイル名からビルド ID をクエリーするなど、サーバーのメタデータをクエリーするための新しい debuginfod API が追加されました。
  • カーネル debuginfo パッケージからの Debuginfod サーバー側ファイル抽出が大幅に高速化されました。
  • dwfl_set_sysrootdwfl_frame_unwound_source、および dwfl_unwound_source_str 関数が libdw ライブラリーに追加されました。
  • eu-stacktrace ユーティリティーはテクノロジープレビューとして利用できます。詳細は、eu-stacktrace がテクノロジープレビューとして利用可能になる を参照してください。

Jira:RHEL-64067

ld リンカーは、アプリケーションがメモリーリージョンに対して読み取り、書き込み、実行権限を使用しているかを検出するようになる

読み取り、書き込み、実行の権限を同時に持つメモリーリージョンは、バッファーオーバーフローによって実行可能コードがメモリーに注入され、実行される可能性があるため、潜在的な攻撃ポイントとなります。

この機能拡張により、ld リンカーは、アプリケーションがこれらの 3 つの権限を持つメモリーリージョンを使用しているかを検出し、アプリケーションに対して次のエラーを報告します。

ld: error: <file_name> has a LOAD segment with RWX permissions
Copy to Clipboard Toggle word wrap

ld-no-error-rwx-segments オプションとともに使用して、エラーを抑制できます。ただし、リンカーがこのエラーを報告した場合にアプリケーションの潜在的なリスクを防ぐために、ソースコードを修正し、ビルド方法を変更して問題を解消してください。

Jira:RHEL-59802[1]

ld リンカーは、アプリケーションが実行可能スタックを使用しているかを検出するようになる

バッファーのオーバーランにより実行可能なコードが配置される場合、メモリーの実行可能領域に保持されるスタックは、潜在的な攻撃ポイントになります。

この機能拡張により、ld リンカーはアプリケーションが実行可能スタックを使用して作成されているかを検出し、次のようなエラーを報告します。

error: creating an executable stack because of -z execstack command line option
error: <file>: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)
error: <file>: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
Copy to Clipboard Toggle word wrap

-no-error-execstack オプションを指定して ld を使用すると、エラーを抑制できます。ただし、ld がエラーを報告した場合にアプリケーションの潜在的なリスクを防ぐために、ソースコードを変更し、実行可能なスタックを使用しないようにビルドマシンを変更することが推奨されます。

Jira:RHEL-59801[1]

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

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

Jira:RHEL-50068[1]

boost-devel パッケージが BoostConfig.cmake とその他の公式 CMake スクリプトを提供する

この機能拡張により、BoostConfig.cmake およびその他の公式 CMake スクリプトが boost-devel パッケージに追加されます。CMake は、boost 機能が存在するかをテストするために、これらのスクリプトを使用します。その結果、boost 機能をテストする CMake プロジェクトがより堅牢に機能するようになりました。

Jira:RHEL-67177

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

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

glibc が GB18030-2022 エンコード標準をサポートするようになる

この機能拡張により、glibc の GB18030 エンコード標準のサポートがバージョン 2005 から 2022 に更新されます。バージョン 2022 では、この標準によって導入された 31 個の新しいトランスコーディング関係と追加の文字およびコードポイントを使用できます。

Jira:RHEL-56032[1]

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

RHSA-2025:10676 アドバイザリーのリリースに伴い、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-101074[1]

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat