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

grafana がバージョン 6.3.6 にリベースされました。

grafana パッケージがバージョン 6.3.6 にアップグレードされ、バグ修正および機能強化が複数追加されました。以下は、主な変更点です。

  • Database - パフォーマンスを向上させるために、システム統計クエリーを再書き込みします。
  • Explore:

    • Safari ブラウザーの分割表示でのクエリーフィールドレイアウトを修正します。
    • サポートされているデータソースの Live オプションを追加し、目的を共有するため orgId を URL に追加します。
    • ラベルエンドポイントの新しい lokistart、および end パラメーターのサポートを追加します。
    • Explore での生クエリーモードの切り替えのサポートを追加し、メトリクスとログ間の切り替えを可能にします。
    • ログ行のコンテキストを表示します。フィールドまたはラベルで指定された場合は、ログレベルを解析しません。
    • 新しい LogQL フィルタリング構文をサポートします。
    • Grafana/UI から新しい TimePicker を使用します。
    • LogRow Highlighter で改行を処理します。
    • ダッシュボードパネルへのブラウザーバックを修正します。
    • ロググラフでシリーズレベルでのフィルタリングを修正します。
    • 読み込み時およびグラフ/テーブルを畳む時の問題を修正します。
    • ログ行の選択/コピーを修正します。
  • ダッシュボード - プロパティーが足りないパネルリンクでローディングエラーを起こしたダッシュボード init を修正し、またコンマ区切り値 (CSV) のデータリンクへのエクスポート時に、ダッシュボードのタイムゾーン設定を修正します。
  • エディター - 行全体しかコピーされていなかった問題を修正します。
  • LDAP - multi ldap および ldap 認証コンポーネントを統合します。
  • Profile/UserAdmin - 32 ビットビルドで grafana-server をクラッシュさせるユーザーエージェントパーサーを修正します。
  • Prometheus:

    • Prometheus データソースへの切り替え時にパネルエディターがクラッシュするのを防ぎ、brace-insertion 動作が気にならないように変更します。
    • label_replace でクエリーを修正し、クエリーエディターのロード時に $1 のマッチを削除します。
    • エディターのマルチラインクエリーを常時許可し、ステップの調整にタイムゾーンを考慮します。
    • ダッシュボード範囲の代わりに、オーバーライドされた $__range のパネル範囲を使用します。
    • 時系列ラベルクエリーに時間範囲フィルターを追加し、挿入された PromQL 変数内の | リテラルをエスケープします。
    • Explore にコロンを含むメトリクスのラベルの追加中に修正します。
  • Auth - API キーの期限切れを許可し、HTTP API でユーザー認証トークンをリッスンしながら、デバイス、OS、およびブラウザーを返し、UI でユーザー認証トークンのリストと取り消しをサポートします。
  • DataLinks - スコープ付き変数をデータリンクに正確に適用し、グラフコンテンツメニューでデータポイントのタイプスタンプを表示中にタイムゾーンをフォローし、変数挿入時にデータポイントタイムスタンプを正確に使用し、${__series_name} の誤った挿入を修正します。
  • Graph - シリーズ行アイコンをクリックして凡例の問題とウィンドウで表示される水平スクロールバーの問題を修正し、新しいグラデーション塗り潰しオプションを追加します。
  • Graphite - 単一値配列変数の glob を防止し、最後に動かしたエイリアスと関数の問題を修正し、seriesByTag と変数パラメーターのある関数の問題を修正し、/metrics/find リクエストの POST を使用します。
  • TimeSeries - 値がすべて数値であると想定します。
  • Gauge/BarGauge - 失われたしきい値の問題と avg 統計で Gauge をロードする問題を修正します。
  • PanelLinks - パネルリンク (ドリルダウンリンク) のある Gauge および Bar Gauge パネルのクラッシュの問題を修正し、パネルの説明がない場合のレンダリングの問題を修正します。
  • OAuth - SameSite クッキーポリシーに起因する missing saved state OAuth ログインの失敗を修正し、DS プロキシーの OAuth リフレッシュで更新された誤ったユーザートークンを修正します。
  • Auth Proxy - キャッシュキーの一部として追加のヘッダーを含めます。
  • cli: dev モードにおける認識を修正し、sql エラーでの encrypt-datasource-passwords の失敗の問題を修正します。
  • Permissions - 非管理者ユーザーに対しナビゲーションでプラグインを表示しますが、プラグイン設定は非表示にします。
  • TimePicker - ドロップダウンのクイック範囲の高さの最大値を増加させ、ポップオーバーのカスタム範囲のスタイルの問題を修正します。
  • Loki - Explore で、リアルタイム表示のログを正しい順番で表示します。
  • Timerange - カスタム時間範囲が協定世界時 (UTC) に従っていなかったバグを修正します。
  • remote_cache - redis connstr 解析を修正します。
  • Alerting - ルールを警告するタグを追加し、所定のすべてのメールアドレスに対するメール通知の送信を試行します。また、警告ルールのテストを改善し、Discord アラート通知者のコンテンツフィールドの設定をサポートします。
  • Alertmanager - ラベル名の下線付きの禁則文字を置き換えます。
  • AzureMonitor - Azure Logs のクラッシュする組み込み Grafana 変数またはマクロ名を変更します。
  • CloudWatch - Amazon Web Services (AWS) Cloudwatch Expressions でリージョンを可視化し、AWS DocDB メトリクスを追加します。
  • GraphPanel - レジェンドテーブルとソート列が非表示の場合に、シリーズをソートしません。
  • InfluxDB - Explore におけるログの可視化をサポートします。
  • MySQL/Postgres/MSSQL - 日、週、年間隔でのマクロな解析を追加し、クライアント証明書の定期的なリロードのサポートを追加します。
  • Plugins - plugin.json ファイルで dataFormats リストを skipDataQuery フラグに置き換えます。
  • Refresh picker - 空の間隔を処理します。
  • Singlestat - y 最小/最大設定をシングルスタットのスパークラインに追加します。
  • Templating - ページのリロード後に多値変数で __text を正常に表示し、多値変数のフィルタリングされた値すべての選択をサポートします。
  • Frontend - Json ツリーコンポーネントが機能していない問題を修正します。
  • InfluxDB - ラベルの値フィルターでシングルクォートがエスケープされていない問題を修正します。
  • Config - defaults.ini ファイルの remote_cacheconnectionstring オプションを修正します。
  • Elasticsearch - Explore で、ワイルドカードとして送られなければならない空のクエリー (テンプレート変数経由) を修正し、デフォルトの最大同時シャード要求数を修正し、ログの視覚化をサポートします。
  • TablePanel - アノテーション表示を修正します。
  • Grafana-CLI - コマンドライン経由で受け取るフラグを修正します。RPM/DEB パッケージ内の grafana-cli 用のラッパーと config/homepath は、グローバルフラグになりました。
  • HTTPServer - X-XSS-Protection ヘッダー形式を修正し、新しいヘッダー X-Content-Type-OptionsX-XSS-Protection および Strict-Transport-Security を返すオプションを選択肢とします。また、Strict-Transport-Security ヘッダーを修正し、Grafana にカスタムの URL パス接頭辞を提供します。

(BZ#1725278)

pcp がバージョン 5.0.2 にリベースされました。

pcp パッケージがバージョン pcp-5.0.2 にアップグレードされ、バグ修正および機能強化が複数追加されました。以下は、主な変更点です。

  • pcp-webapp-* パッケージが、grafana-pcp パッケージと pmproxy に置き換えられました。
  • pcp-collectl ツールが pmrep 設定に置き換えられました。
  • 新規および改善された Performance Metric Domain Agents (PMDA) は、以下のとおりです。

    • pmdamssql - Microsoft SQL Server 実装用の新しい PMDA。
    • pmdanetcheck - ネットワークチェックを実行する新しい PMDA。
    • pmdaopenmetrics - prometheus エージェントの名前を openmetrics に変更します。
    • pmdanfsclient - per-op および per-mount rpc エラーメトリクスを追加します。
    • pmdalmsensors - 名前解析とエラー処理を改善します。
    • pmdaperfevent - マルチノードシステムで hv_24x7 ネストイベントをサポートします。
    • pmdalinux:

      • スパースな、または不規則な NUMA ノードを適切に処理します。
      • per-cpu NUMA 統計情報に CPU の instname を使用し、instid を使用しません。
      • アクティブなスラブと合計スラブを slabinfo v2 解析に追加します。
      • 複数の unix ソケット、icmp6 メトリクス、hugepage メトリクス値の計算、および、CPU 数が大きい割り込みコードでの segfault を修正します。
      • --container 名前空間でさらにネットワークメトリクスを取得します。
    • pmdabcc - bcc 0.10.0 以降のバージョンの tracepoints モジュールを修正します。
    • pmdabpftrace - bpftrace スクリプトのメトリクスの新しい PMDA。
    • pmdaproc -

      • pidlist 更新でメモリーリークを修正します。
      • cgroups_scan での過度な統計呼び出しを回避します。
      • cgroup パス、およびアンエスケープインスタンス名のみを保持します。
    • pmdaroot - キャッシュされた、または非アクティブな cgroup 動作の処理を改善し、また、cgroup fs 変更のコンテナー indom も更新します。
  • コレクター (サーバー) ツールの修正は以下のとおりです。

    • pmproxy - /metrics エンドポイント経由の Openmetrics サポート、pmseries/grafana REST API の統合、および新しい async PMWEBAPI(3) REST API 実装を追加します。
    • selinux - 数多くの pcp ポリシーを更新します。
    • python pmdas - 認証サポートを有効化し、新しい set_comm_flags メソッドによる通信フラグを設定します。
    • python api- pmdaGetContext() をエクスポートし、デバッグラッパーを追加します。
    • perl api - python ラッパーを使用するのと同様に、PMDA ストア用のコンテキスト設定を保証します。
    • systemd - すべてのサービスに 120 秒のタイムアウトを追加し、pmlogger サービスの起動の失敗を修正します。
  • 分析 (クライアント) ツールの修正は次のとおりです。

    • pmchart - 取得エラーの状況におけるチャートの自動スケーリングを修正します。
    • pmrep - collectl-dm-sD および collectl-sDwait.formula を修正します。
    • pmseries - delta キーワードのサポートとタイムスタンプの改善を提供します。
    • pcp-atop - 書き込みモード (-w) を修正して、proc メトリクスと hotproc メトリクスの比較を処理します。
    • pcp-atopsar - いくつかのコマンドライン引数の誤処理を修正します。
    • pcp-dstat - CSV 出力のヘッダーの位置ずれと、--bitsコマンドラインオプションの処理を修正します。
    • libpcp - ローカルコンテキストのある cockpit-pcp segv と、破損アーカイブを処理する複数アーカイブの再生エラーを修正します。

(BZ#1723598)

RHEL 8.2 で grafana-pcp が利用できるようになりました。

grafana-pcp パッケージは、新しい grafana データソース、ならびに PCPgrafana を接続するアプリケーションプラグインを提供します。grafana-pcp パッケージを使用すると、過去の PCP メトリクスとリアルタイムの PCP メトリクスを、pmseries クエリー言語と対応する pmwebapi ライブサービスを使用して分析できます。詳細は、「 Performance Co-Pilot Grafana Plugin 」を参照してください。

(BZ#1685315)

GCC Toolset 9 の更新

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

RHEL 8.2 で導入された主な変更点は、以下のとおりです。

  • GCC コンパイラーがバージョン 9.2.1 に更新され、アップストリームの GCC で利用可能なバグ修正および機能拡張が数多く追加されました。
  • GCC Toolset 9 コンポーネントが、以下のコンテナーイメージ 2 つで利用可能になりました。

    • GCC コンパイラー、GDB デバッガー、make 自動化ツールを含む rhel8/gcc-toolset-9-toolchain
    • SystemTap や Valgrind などのパフォーマンス監視ツールを含む rhel8/gcc-toolset-9-perftools

      コンテナーイメージをプルするには、root で以下のコマンドを実行します。

      # podman pull registry.redhat.io/<image_name>

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

ツールバージョン

GCC

9.2.1

GDB

8.3

Valgrind

3.15.0

SystemTap

4.1

Dyninst

10.1.0

binutils

2.32

elfutils

0.176

dwz

0.12

make

4.2.1

strace

5.1

ltrace

0.7.91

annobin

9.08

GCC Toolset 9 をインストールするには、root で以下のコマンドを実行します。

# yum install gcc-toolset-9

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

$ scl enable gcc-toolset-9 tool

GCC Toolset 9 のツールバージョンが、これらのツールのシステムバージョンよりも優先されるシェルセッションを実行するには、以下のコマンドを実行します。

$ scl enable gcc-toolset-9 bash

詳細は「 GCC Toolset の使用」を参照し てください。

(BZ#1789401)

GCC Toolset 9 が NVIDIA PTX ターゲットオフロードに対応します。

GCC Toolset 9 の GCC コンパイラーが、NVIDIA PTX の OpenMP ターゲットオフロード システム GCC コンパイラーバージョン 8.3.1 が更新され、アップストリームの GCC で利用可能なバグ修正および機能拡張が数多く追加されました。

GNU コンパイラーコレクション (GCC) には、C、C++、および Fortran のプログラミング言語でアプリケーションを開発するためのツールが含まれます。

使用方法は、『 RHEL 8 での C および C++ アプリケーションの開発』 を参照してください。

(BZ#1747157)

glibc の最大 Fastbin サイズを変更するためのチューナブル (調整可能) パラメーターが追加されました。

malloc 関数は、一連の fastbin を使用して、再利用可能なメモリーを指定した最大チャンクサイズ分まで格納します。デフォルトの最大チャンクサイズは、32 ビットシステムの場合は 80 バイト、64 ビットシステムの場合は 160 バイトです。今回の機能拡張により、新しい glibc.malloc.mxfast tunable が glibc に導入され、最大 fastbin サイズを変更できるようになりました。

(BZ#1764218)

ベクトル化された math ライブラリーは、GCC Toolset 9 の GNU Fortran 向けに有効化されています。

今回の機能強化により、GCC Toolset の GNU Fortran は、ベクトル化された math ライブラリー libmvec のルーチンを使用できるようになりました以前のリリースでは、GCC Toolset の Fortran コンパイラーには、GNU C ライブラリー glibcが提供する libmvec からのルーチンを使用する前に、Fortran ヘッダーファイルが必要でした。

(BZ#1764238)

glibc.malloc.tcache 調整可能パラメーターが強化されました。

glibc.malloc.tcache_count 調整可能パラメーターは、スレッドごとのキャッシュ (tcache) に格納できる各サイズのメモリーチャンクの最大数を設定できます。今回の更新で、 glibc.malloc.tcache_count 調整可能パラメーターの上限が 127 から 65535 に増えました。

(BZ#1746933)

glibc 動的ローダーが強化され、メカニズムをプリロードする非継承ライブラリーが提供されるようになりました。

今回の機能強化により、--preload オプションにプリロードするライブラリーのコンマ区切りリストを続けることで、ユーザープログラムを呼び出すローダーを呼び出せるようになりました。この機能により、ユーザーは非継承ライブラリーのプリロードリストを使用して、ローダーから直接プログラムを呼び出すことができます。

以前は、環境を介してすべての子プロセスが継承した LD_PRELOAD 環境変数を使用する必要がありました。

(BZ#1747453)

GDB は IBM Z アーキテクチャーで ARCH(13) 拡張をサポートするようになりました。

GNU Debugger (GDB) は、今回の機能強化により、IBM Z アーキテクチャーに ARCH (13) 拡張で実装した新しい命令をサポートするようになりました。

(BZ#1768593)

elfutils がバージョン 0.178 にリベースされました。

elftils パッケージがバージョン 0.178 にアップグレードされ、バグ修正および機能強化が複数追加されました。以下は、主な変更点です。

  • elfclassify: ELF オブジェクトの分析ツールが追加されました。
  • debuginfod: HTTP 経由でファイルおよび RPM アーカイブから ELF、DWARF、およびソースをインデックス化して自動的にフェッチする新しいサーバー、クライアントツール、およびライブラリー。
  • libebllibdw.so に直接コンパイルされるようになりました。
  • eu-readelf には、注記、セクション番号、シンボルテーブルのフラグが新たに複数追加されました。
  • libdw のマルチスレッドサポートが改善されました。
  • libdw の他の GNU DWARF 拡張サポートが追加されました。

(BZ#1744992)

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

SystemTap インストラクションツールがバージョン 4.2 に更新されました。主な機能強化は、次のとおりです。

  • バックトレースに、ソースのファイル名と行番号を含めることができるようになりました。
  • ループ、タイミング、その他のプロセスなど、BPF (Berkeley Packet Filter) バックエンド拡張が多数利用できるようになりました。
  • SystemTap スクリプトの管理サービスが新たに利用できるようになりました。このサービスは、メトリクスを Prometheus 互換のモニタリングシステムに送信します。
  • SystemTap は、debuginfod と呼ばれる elfutils 用の新しい HTTP ファイルサーバーの機能を継承しました。このサーバーは、デバッグリソースを SystemTap に自動的に送信します。

(BZ#1744989)

IBM Z シリーズパフォーマンスカウンターが強化されました。

IBM Z シリーズタイプ 0x8561、0x8562、および 0x3907 (z14 ZR1) マシンが libpfm で認識されるようになりました。IBM Z シリーズで楕円曲線暗号 (ECC) 操作を監視するパフォーマンスイベントが利用できるようになりました。これにより、IBM Z シリーズマシンで追加のサブシステムを監視できるようになりました。

(BZ#1731019)

Rust Toolset がバージョン 1.41 にリベースされました。

Rust Toolset は、バージョン 1.41 に更新されました。以下は、主な変更点です。

  • 孤立したルールは厳密性が低くなったので、新規特性の実装が簡素化されました。
  • これで、#[non_exhaustive] 属性を structenum または enum バリアントにアタッチできるようになりました。
  • Foreign Function Interface (FFI) で Box<T> を使用すると、より多くの保証が提供されます。Box<T> には、FFI の T* ポインターと同じ Application Binary Interface (ABI) があります。
  • rust はコンパイル時にメモリーの安全性のバグを検出しますが、以前のボローチェッカーには制限がありました。そのため、未定義の動作が許可され、メモリーの危険性が発生していました。新しい NLL (Non-lexical lifetimes) ボローチェッカーは、メモリーの安全性の問題を、ハードエラーとして報告する可能性があります。これは、Rust 2015 および Rust 2018 エディションに適用されるようになりました。以前のリリースでは、Rust 2015 は、NLL ボローチェッカーは、このような問題に関する警告のみを表示していました。

rust-toolset モジュールストリームをインストールするには、root で以下のコマンドを実行します。

# yum module install rust-toolset

使用方法は「 Rust Toolset の使用」を参照し てください。

(BZ#1776847)

LLVM Toolset がバージョン 9.0.1 にリベースされました。

LLVM Toolset がバージョン 9.0.1 にアップグレードされました。今回の更新で、asm goto ステートメントに対応するようになりました。この変更により、AMD64 および Intel 64 アーキテクチャーで Linux カーネルをコンパイルできます。

llvm-toolset モジュールをインストールするには、root で以下のコマンドを実行します。

# yum module install llvm-toolset

詳細は、「 LLVM Toolset の使用」を参照し てください。

(BZ#1747139)

Go Toolset がバージョン 1.13 にリベースされました。

Go Toolset がバージョン 1.13 にアップグレードされました。主な機能強化は、次のとおりです。

  • RHEL システムが FIPS モードで起動すると、Go が FIPS 認定の暗号化モジュールを使用できるようになりました。GOLANG_FIPS=1 環境変数を使用してこのモードを手動で有効にできます。
  • Delve デバッガーのバージョン 1.3.2 が Go で利用可能になりました。これは、Go (golang) プログラミング言語のソースレベルのデバッガーです。

go-toolset モジュールをインストールするには、root で以下のコマンドを実行します。

# yum module install go-toolset

Delve デバッガーをインストールするには、root で以下のコマンドを実行します。

# yum install delve

Delve を使用して helloworld.go プログラムをデバッグするには、以下のコマンドを実行します。

$ dlv debug helloworld.go

Go Toolset の詳細は、「 Using Go Toolset」を参照し てください。

Delve の詳細は、アップストリームの Delve ドキュメントを参照して ください

(BZ#1747150)

OpenJDK が secp256k1 もサポートするようになりました。

以前のバージョンでは、Open Java Development Kit (OpenJDK) は NSS ライブラリーの曲線しか使用できませんでした。そのため、OpenJDK は、ECC (elliptic curve cipher) に secp256r1、secp384r1、および secp521r1 の曲線のみを提供していました。今回の更新により、OpenJDK は、内部の ECC 実装を使用し、secp256k1 曲線もサポートします。

(BZ#1746875, BZ#1746879)


このページには機械翻訳が使用されている場合があります (詳細はこちら)。