4.13. コンパイラーおよび開発ツール
glibc
最適化データをキャプチャーするための新しいコマンド
新しい ld.so --list-diagnostics
コマンドは、IFUNC の選択や glibc-hwcaps
の設定など、glibc
の最適化の決定に影響を与えるデータを単一の機械可読ファイルにキャプチャーします。
glibc
文字列関数が Fujitsu A64FX 用に最適化される
今回の更新により、glibc
文字列関数は A64FX CPU でスループットの向上とレイテンシーの削減を実現します。
(BZ#1929928)
12 時間制の新しい UTF-8 ロケール en_US@ampm
この更新により、12 時間制の新しい UTF-8 ロケール en_US@ampm
を使用できるようになりました。この新しいロケールは、LC_TIME
環境変数を使用して他のロケールと組み合わせることができます。
libffi
の自己変更コードの新しい場所
この更新では、libffi
の自己変更コードは、RHEL 8 カーネルの機能を利用して、ファイルシステムに依存しない適切なファイルを作成します。その結果、libffi
の自己修正コードは、ファイルシステムの一部を不安定にすることに依存しなくなりました。
GCC Toolset 11 の更新
GCC Toolset 11 は最新バージョンの開発ツールを提供するコンパイラーツールセットです。このツールセットは、AppStream
リポジトリーにおいて、Software Collection の形式で、Application Streams として利用できます。
RHEL 8.6 で導入された主な変更点は、以下のとおりです。
- GCC コンパイラーがバージョン 11.2.1 に更新されました。
-
annobin
がバージョン 10.23 に更新されました。
以下のツールおよびバージョンは、GCC Toolset 10 で利用できます。
ツール | バージョン |
---|---|
GCC | 11.2.1 |
GDB | 10.2 |
Valgrind | 3.17.0 |
SystemTap | 4.5 |
Dyninst | 11.0.0 |
binutils | 2.36.1 |
elfutils | 0.185 |
dwz | 0.14 |
make | 4.3 |
strace | 5.13 |
ltrace | 0.7.91 |
annobin | 10.23 |
GCC Toolset 11 をインストールするには、root で以下のコマンドを実行します。
# yum install gcc-toolset-11
GCC Toolset 11 のツールを実行するには、以下のコマンドを実行します。
$ scl enable gcc-toolset-11 tool
GCC Toolset バージョン 11 のツールバージョンが、このようなツールのシステムバージョンをオーバーライドするシェルセッションを実行するには、次のコマンドを実行します。
$ scl enable gcc-toolset-11 bash
使用についての詳細は、GCC Toolset の使用 を参照してください。
GCC Toolset 11 コンポーネントが、以下のコンテナーイメージ 2 つで利用可能になりました。
-
GCC コンパイラー、GDB デバッガー、
make
自動化ツールを含むrhel8/gcc-toolset-11-toolchain
-
SystemTap や Valgrind などのパフォーマンス監視ツールを含む
rhel8/gcc-toolset-11-perftools
コンテナーイメージをプルするには、root で以下のコマンドを実行します。
# podman pull registry.redhat.io/<image_name>
GCC Toolset 11 コンテナーイメージのみがサポートされるようになりました。以前のバージョンの GCC Toolset コンテナーイメージが非推奨になりました。
コンテナーイメージの詳細は、GCC Toolset コンテナーイメージの使用 を参照してください。
GDB 逆アセンブラーが新しい arch14 命令をサポートするようになりました
この更新により、GDB は新しい arch14 命令を逆アセンブルできるようになりました。
(BZ#2012818)
LLVM Toolset がバージョン 13.0.1 にリベース
LLVM Toolset がバージョン 13.0.1 にアップグレードされました。主な変更点は、以下のとおりです。
-
Clang は、C++ のステートメント属性
[[clang::musttail]]
および C の__attribute__((musttail))
をサポートするようになりました。 -
Clang は、
-Wreserved-identifier
警告をサポートするようになりました。これは、コードで予約済み識別子を使用するときに開発者に警告します。 -
Clang の
-Wshadow
フラグは、シャドウされた構造化バインディングもチェックするようになりました。 -
Clang の
-Wextra
は、Wnull-pointer-subtraction
も意味するようになりました。
(BZ#2001133)
RustToolset が 1.58.1 にリベース
RustToolset
はバージョン 1.58.1 にリベース以下は、主な変更点です。
-
Rust コンパイラーは、クロージャーの disjoint キャプチャー、配列の
IntoIterator
、新しい Cargo 機能リゾルバーなどを備えた 2021 年版の言語をサポートするようになりました。 - 新しいカスタムプロファイルの Cargo サポートが追加されました。
- Cargo はコンパイラーエラーを重複排除します。
- 新しいオープンレンジパターンが追加されました。
- フォーマット文字列にキャプチャーされた識別子を追加しました。
詳細は、以下を参照してください。
(BZ#2002883)
Go Toolset がバージョン 1.17.7 にリベース
Go Toolset がバージョン 1.17.7 にアップグレードされました。主な変更点は、以下のとおりです。
- スライスを配列ポインターに変換するオプションを追加しました。
- //go:build 行のサポートを追加しました。
- amd64 での関数呼び出しのパフォーマンスを改善しました。
- 関数引数を、スタックトレースでより明確にフォーマットしました。
- クロージャーを含む関数をインライン化できるようにしました。
- x509 証明書の解析におけるリソース消費を削減しました。
(BZ#2014088)
pcp
が 5.3.5-8 にリベースされました。
pcp
パッケージはバージョン 5.3.5 にリベースされました。主な変更点は、以下のとおりです。
-
CPU とディスクの飽和に関する新しい
pmieconf(1)
ルールが追加されました。 -
pmproxy(1)
サービスの安定性とスケーラビリティが向上しました。 -
pmlogger(1)
サービスのサービスレイテンシーと堅牢性が向上しました。 - 電力に関連する新しいパフォーマンスメトリックを追加しました。
-
pcp-htop(1)
ユーティリティーに新機能を追加しました。 -
pcp-atop(1)
ユーティリティーに新機能を追加しました。 - Nvidia GPU メトリックを更新しました。
- 新しい Linux カーネル KVM とネットワークメトリックを追加しました。
- 新しい MongoDB メトリックエージェントが追加されました。
-
新しいソケットメトリックエージェントと
pcp-ss(1)
ユーティリティーが追加されました。 -
pmcd(1)
およびpmproxy(1)
Avahi サービスのアドバタイズをデフォルトで無効にしました。
grafana
パッケージがバージョン 7.5.11 にリベース
grafana
パッケージがバージョン 7.5.11 にリベースされました。主な変更点は、以下のとおりです。
-
新しいデータフレーム形式をサポートしないパネルの下位互換性のために、新しい
prepare time series
変換が追加されました。
grafana-pcp
が 3.2.0 にリベース
grafana-pcp
パッケージがバージョン 3.2.0 にリベースされました。主な変更点は、以下のとおりです。
- PCP Redis 用の新しい MS SQL サーバーダッシュボードに追加
- PCP Vector eBPF/BCC 概要ダッシュボードに空のヒストグラムバケットの可視性を追加しました。
-
PCP Redis の
metric()
関数がすべてのメトリック名を返さないバグを修正しました。
js-d3-flame-graph
が 4.0.7 にリベース
js-d3-flame-graph
パッケージはバージョン 4.0.7 にリベースされました。主な変更点は、以下のとおりです。
- 新しい青と緑の配色を追加しました。
- フレームグラフのコンテキストを表示する機能が追加されました。
PCP で電力消費メトリックが利用可能に
新しい pmda-denki
Performance Metrics Domain Agent (PMDA) は、消費電力に関連するメトリックを報告します。具体的には以下の項目が報告されます。
- 最近のインテル製 CPU で利用可能な RAPL(Running Average Power Limit) 測定値に基づく消費メトリック
- バッテリーを搭載したシステムで利用可能な、バッテリー放電に基づく消費メトリック
(BZ#1629455)
新しいモジュール: log4j:2
新しい log4j:2
モジュールが AppStream リポジトリーで利用できるようになりました。このモジュールには、Java ロギングユーティリティーである Apache Log4j 2
と、さまざまな出力ターゲットにログステートメントを出力できるライブラリーが含まれています。
Log4j 2
は、Log4j 1
よりも大幅に改善されています。特に、Log4j 2
では、Logback
フレームワークに拡張機能が導入され、Logback
アーキテクチャーでいくつかの固有の問題を修正しています。
log4j:2
モジュールストリームをインストールするには、以下を実行します。
# yum module install log4j:2
(BZ#1937468)