第7章 コンパイラーおよびツール
pcp がバージョン 3.11.8 にリベース
Performance Co-Pilot
アプリケーション(PCP)がアップストリームバージョン 3.11.81 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。主な機能強化は、次のとおりです。
- パフォーマンスメトリック値を
influxdb
データベースにエクスポートできるように、新しいクライアントツールpcp2influxdb
が追加されました。 - mpstat および pidstat の値を過去に解析できるように、新しいクライアントツール
pcp-mpstat
およびpcp-pidstat
が追加されました。 - デバイスマッパー、
Ceph
デバイス、cpusched cgroups、プロセッサーごとのソフト IRQ、buddyinfo
、zoneinfo
、共有メモリー、libvirt
、同じページ-sharing、lio
、Redis
、およびDocker
に新しいパフォーマンスメトリクスが追加されました。 - さまざまな PCP 分析ツールで、複数のサブシステムのパフォーマンスメトリクスが追加で利用できるようになりました。(BZ#1423020)
systemtap がバージョン 3.1 にリベース
systemtap パッケージがアップストリームバージョン 3.1 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
- システムコールのプローブは、
debuginfo
情報に基づくデフォルトではなくなりました。 Python
関数のプロービングのサポートが追加されました。Java
関数パラメーターへのアクセスがより均一化されました。- 統計集計変数のパフォーマンスが改善されました。
- 新しい統計演算子 @variance が追加されました。
- ユーザー空間の値を取得および設定するためのオプションが追加されました。
- サンプルで NFS の監視が改善されました。
valgrind がバージョン 3.12 にリベース
valgrind パッケージがアップストリームバージョン 3.12 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
- スタックポインターの下にあるメモリーアクセスを無視する memcheck ツールに新しいオプション --ignore-range-below-sp が追加されました。これは、現在非推奨となったオプション --workaround-gcc296-bugs=yes の一般的な代替手段です。
- --gen-suppressions=yes オプションによって生成された抑制エントリーの呼び出し元の最大数は、--num-callers オプションで指定された値と等しくなりました。
- AMD64 および Intel 64 アーキテクチャー上の
memcheck
ツールなど、最も一般的なユースケースのコードブロックをインストルメント化するコストが削減されました。 - 8KB 以下の命令アドレス範囲を大量に破棄するデバッグプログラムでは、パフォーマンスが改善されました。
- IBM Power 9 (ISA 3.0) アーキテクチャーのサポートが追加されました。
- AMD FMA4 命令の部分的なサポートが追加されました。
- 64 ビット ARM アーキテクチャーバージョン 8 での暗号化および CRC 命令のサポートが追加されました。(BZ#1391217)
新規パッケージ: unitsofmeasurement
unitsofmeasurement パッケージを使用すると、Java コードで測定単位を表現できます。新しい測定単位用の API により、物理量の処理が容易になり、エラーが発生しにくくなりました。パッケージの API は、メモリーとリソースを効率的に使用します。(BZ#1422263)
HTTP クライアントの SSL/TLS 証明書の検証が、Python 標準ライブラリーでデフォルトで有効になりました。
Python 標準ライブラリーでは、デフォルトで SSL/TLS 証明書を検証するために、HTTP クライアントのデフォルトのグローバル設定が変更されました。ファイルベースの設定を使用するお客様には影響しません。詳細は、https://access.redhat.com/articles/2039753 を参照してください。(BZ#1219110)
%gemspec_add_dep
および %gemspec_remove_dep
のサポートが追加されました。
今回の更新で、
%gemspec_add_dep
マクロおよび %gemspec_remove_dep
マクロのサポートが追加されました。このようなマクロを使用すると、rubygem-* パッケージの依存関係を簡単に調整できます。さらに、現在のすべてのマクロを拡張し、リリース前のバージョンのパッケージへの対応を改善しました。(BZ#1397390)
ipmitool がバージョン 1.8.18 にリベース
ipmitool パッケージがアップストリームバージョン 1.8.18 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
- PEF ユーザーインターフェイスの設計が変更されました。
- IP バージョン 6 のローカルエリアネットワークパラメーターに新しいサブコマンド lan6 が追加されました。
- VITA 固有のセンサータイプおよびイベントのサポートが追加されました。
- HMAC_MD5 および HMAC_SHA256 の暗号化のサポートが追加されました。
- PICMG 拡張機能 5.x のチェックのサポートが追加されました。
- 新しい通信インターフェイスとしての USB メディアのサポートが追加されました。
- USB ドライバーは、GNU Linux システム (BZ#1398658) でデフォルトで有効になっています。
IBM Power のリトルエンディアンバリアント用に更新された lshw
マシンのハードウェア設定の詳細を提供する lshw パッケージが、IBM Power System のリトルエンディアンバリアント向けに更新されました。(BZ#1368704)
perf
が Intel Xeon v5 でアンコアイベントに対応
この更新により、Linux (perf) のパフォーマンス分析ツールが更新され、Intel Xeon v5 サーバー CPU でのアンコアイベントがサポートされるようになりました。これらのイベントは、上級ユーザーに追加のパフォーマンス監視情報を提供します。(BZ#1355919)
dmidecode が更新される
dmidecode パッケージが新しいバージョンに更新され、バグ修正およびハードウェア有効化の改善がいくつか行われました。(BZ#1385884)
iSCSI が targetcliを使用した ALUA 操作の設定に対応
イニシエーターからターゲットへのパスが複数ある場合は、非対称論理ユニットアクセス (ALUA) を使用して、パスを不均一に優先的に使用する方法のプリファレンスを設定することができます。Linux-IO (LIO) カーネルターゲットは、常にこの機能をサポートしてきました。今回の更新で、targetcli コマンドシェルを使用して ALUA 操作を設定できるようになりました。(BZ#1243410)
jansson がバージョン 2.10 にリベース
jansson
ライブラリーがバージョン 2.10 に更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。特に、clevis
、tang
、および jose
アプリケーションに対応するためにインターフェイスが追加されました。(BZ#1389805)
egrep
および fgrep
用の新しい互換性環境変数
以前の
grep
リベースでは、egrep コマンドと fgrep コマンドは、それぞれ grep -E コマンドと grep -F に置き換えられました。ps コマンドのアウトアップットに grep
のみが表示されたため、この変更はお客様のスクリプトに影響を与える可能性があります。このような問題を防ぐために、この更新により、新しい互換性環境変数 GREP_LEGACY_EGREP_FGREP_PS
が導入されました。ps 出力に egrep
と fgrep
を表示し続けるには、変数を 1 に設定します。
GREP_LEGACY_EGREP_FGREP_PS=1
(BZ#1297441)
lastcomm が --pid オプションをサポートするようになりました。
lastcomm コマンドが --pid オプションをサポートするようになりました。このオプションは、カーネルでサポートされている場合、各レコードのプロセス ID (PID) と親プロセス ID (PPID) を表示します。(BZ#1255183)
新規パッケージ: perl-Perl4-CoreLibs
新しいperl-Perl4-CoreLibs パッケージが、Red Hat Enterprise Linux 7 のベースチャンネルで利用できるようになりました。このパッケージには、Perl 4 で利用可能であったけれども、Red Hat Enterprise Linux 7 で配布されている Perl 5.16 で削除されたライブラリーが含まれています。以前のリリースでは、これらのライブラリーは、Optional チャネルを介して Perl サブパッケージで提供されていました。(BZ#1366724)
アーカイブから抽出する際に tar がディレクトリーへのシンボリックリンクに従うようになりました。
今回の更新で、--keep-directory-symlink オプションが tar コマンドに追加されました。このオプションは、抽出しようとしているディレクトリーと同じ名前のシンボリックリンクが発生した場合の tar の動作を変更します。デフォルトでは、tar は最初にシンボリックリンクを削除してから、ディレクトリーの抽出を続行します。--keep-directory-symlink オプションはこの動作を無効にし、アーカイブから抽出するときにディレクトリーへのシンボリックリンクに従うように tar に指示します。(BZ#1350640)
IO::Socket::SSL
Perl モジュールが TLS バージョンの制限をサポート
Net:SSLeay
Perl モジュールが、セキュリティーを強化するために TLS プロトコルバージョン 1.1 または 1.2 の明示的な仕様をサポートするように更新され、IO::Socket::SSL
モジュールがそれに応じて更新されました。新しい IO::Socket::SSL
オブジェクトが作成されると、SSL_version
オプションをそれぞれ TLSv1_1 または TLS v1_2 に設定して、TLS バージョンを 1.1
または 1. 2
に制限できるようになりました。または、TLSv11
および TLSv12
を使用することもできます。この値では大文字と小文字が区別されることに注意してください。(BZ#1335035)
Net:SSLeay
Perl モジュールが TLS バージョンの制限をサポート
Net:SSLeay
Perl モジュールが、TLS プロトコルバージョンの明示的な仕様をサポートするように更新されました。これは、セキュリティーを強化するために使用できます。TLS のバージョンを 1.1 または 1.2 に制限するには、Net::SSLeay::ssl_version
変数をそれぞれ 11
または 12
に設定します。(BZ#1335028)
wget
が TLS プロトコルバージョンの仕様をサポートするようになりました
以前は、
wget
ユーティリティーは、リモートサーバーに接続する際に、デフォルトで最も高い TLS プロトコルバージョン 1.2 を使用していました。今回の更新で、wget
が拡張され、wget コマンドに --secure-protocol=TLSv1_ 1 または --secure-protocol=TLSv1 _2 コマンドラインオプションを追加して、TLS プロトコル マイナーバージョンを明示的に選択できるようになりました。(BZ#1439811)
tcpdump がバージョン 4.9.0 にリベース
tcpdump パッケージがアップストリームバージョン 4.9.0 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
- 多くのセキュリティー上の脆弱性が修正されました。
- 一般的なネットワークプロトコルの分析において、多くの改善が行われました。
- デフォルトの snaplen 機能が 262144 バイトに増えました。
- キャプチャーバッファーが 4 MiB に拡大されました (BZ#1422473)
tcpdump
のキャプチャー方向を設定するオプションが -P から -Qに変更になりました。
以前は、Red Hat Enterprise Linux の
tcpdump
ユーティリティーは -P オプションを使用してキャプチャーの方向を設定していましたが、アップストリームバージョンでは -Q を使用していました。-Q オプションが実装され、推奨されています。-P オプションは、以前の機能を -Q のエイリアスとして保持しますが、警告が表示されます。(BZ#1292056)
OpenJDK
が 64 ビット ARM アーキテクチャーで SystemTap
に対応
OpenJDK
プラットフォームは、64 ビット ARM アーキテクチャー上の SystemTap
インストルメンテーションツールを使用したイントロスペクションをサポートするようになりました。(BZ#1373986)
sos がバージョン 3.4 にリベース
sos パッケージがアップストリームバージョン 3.4 に更新され、以下のような機能拡張、新機能、バグ修正が数多く追加されました。
ceph_ansible
、collectd
、crypto
、dracut
、gnocchi
、jars
、nfsganesha
、nodejs
、npm
、openstack_ansible
、openstack_instack
、openstack_manila
、salt、
、およびsalt
masterstorageconsole
に新しいプラグインが追加されました。- API プラグインの機能強化
- 国際化に関する更新
- ネットワーク名に一重引用符
'
が含まれている場合に、ネットワークプラグインがクラッシュしなくなりました。 foreman-debug
プラグインが、収集されたforeman-debug
情報が不完全になるのを防ぐために、より長いタイムアウトで実行されるようになりました。- 特定のプライベート SSL 証明書ファイルが収集されなくなりました。(BZ#1414879)
targetd がバージョン 0.8.6 にリベース
targetd パッケージがアップストリームバージョン 0.8.6 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。特に、
targetd
サービスは Python 2 または Python 3 のランタイムで実行され、次の API が追加されました: initiator_list
、access_group_list
、access_group_create
、access_group_destroy
、access_group_init_add
、access_group_init_del
、 access_group_map_list
、access_group_map_create
、および access_group_map_destroy
以下は、主なバグ修正です。
Targetd
が JSON-RPC 応答バージョン 2.0 に準拠するようになりました。export_create
API を使用して、同じ LUN を複数のイニシエーターにマッピングできるようになりました。targetd
は、起動時に SSL 証明書が存在するようになりました。(BZ#1162381)
shim がバージョン 12-1 にリベース
今回の更新で、shim パッケージがアップストリームバージョン 12-1 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、32 ビット UEFI ファームウェアおよび Extensible Firmware Interface (EFI) ユーティリティーのサポートが追加されたことです。(BZ#1310766)
rubygem-abrt がバージョン 0.3.0 にリベース
rubygem-abrt パッケージがバージョン 0.3.0 にリベースされ、以前のバージョンに比べていくつかのバグ修正と機能拡張が提供されています。以下に例を示します。
Ruby ABRT
ハンドラーは、自動匿名マイクロレポートであるuReports
をサポートするようになりました。uReports
を有効にすると、開発者はアプリケーションの問題について速やかに通知され、バグを修正し、問題を迅速に解決できます。- 以前は、
Ruby
アプリケーションがBundler
を使用してその依存関係を管理し、エラーが発生した場合に、Ruby ABRT
ハンドラーのコンポーネントを読み込むのに正しくないロジックを使用していました。その結果、適切なABRT
レポートではなく、予期しないLoadReport
エラーが報告されていました。読み込みロジックが修正され、Ruby
アプリケーションエラーが正しく処理され、ABRT
を使用して報告されるようになりました。(BZ#1418750)
新規パッケージ: http-parser
新しい http-parser パッケージには、HTTP メッセージを解析するユーティリティーが含まれます。要求と応答の両方を解析します。パーサーは、HTTP パフォーマンスを管理するアプリケーションで使用されるように設計されています。syscall や割り当ては行われず、データはバッファーリングされず、いつでも中断される可能性があります。アーキテクチャーによっては、メッセージストリームごとに約 40 バイトのデータしか必要ありません。(BZ#1393819)
すべてのデフォルトの POSIX ミューテックスに対する Intel および IBM POWER のトランザクションメモリーのサポート
デフォルトの POSIX ミューテックスは、Intel および IBM POWER のトランザクションメモリーサポートに透過的に置き換えることができます。これにより、ロック取得コストが大幅に削減されます。すべてのデフォルトの POSIX ミューテックスに対してトランザクションメモリーサポートを有効にするには、
RHEL_GLIBC_TUNABLES=glibc.elision.enable
環境変数を 1
に設定します。その結果、一部のアプリケーションのパフォーマンスを改善できます。
開発者は、プロファイリングを使用して、この機能を有効にするとアプリケーションのパフォーマンスが向上するかどうかを判断することをお勧めします。(BZ#841653, BZ#731835)
glibc
がグループマージをサポートするようになりました。
異なるネームサービスモジュールからグループメンバーをマージする機能が
glibc
に追加されました。その結果、集中型のユーザーアクセス制御と、複数のホストにわたるグループメンバーシップの管理が容易になりました。(BZ#1298975)
glibc
が、IBM POWER9 アーキテクチャーで最適化された文字列比較機能に対応
glibc
ライブラリーの文字列比較関数 strcmp
および strncmp
は、IBM POWER9 アーキテクチャー向けに最適化されています。(BZ#1320947)
Intel SSE、AVX、および AVX512 の機能を使用して動的に読み込まれたライブラリーのパフォーマンスが改善されました。
Intel SSE、AVX、および AVX512 の機能を使用するライブラリーの動的ライブラリー読み込みが更新されました。その結果、このライブラリーの読み込み時のパフォーマンスが改善されました。さらに、LD_AUDIT スタイルの監査に対応するようになりました。(BZ#1421155)
elfutils がバージョン 0.168 にリベース
futils パッケージがアップストリームバージョン 0.168 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。
eu-readelf
ユーティリティーのオプション--symbols
で、シンボルを表示するセクションを選択できるようになりました。- ELF/DWARF 文字列テーブルを作成する新しい関数が
libdw
ライブラリーに追加されました。 DW_UNDEFINED_PL1
定数がDW_UNDEFINED_PLI
に変更されました。以前の名前は引き続き使用できます。libelf
ライブラリーのgelf_newehdr
関数およびgelf_newphdr
関数の戻り値のタイプが、他のlibelf
実装とのソースの互換性のためにvoid*
に変更されました。この変更により、Red Hat Enterprise Linux でサポートされているすべてのプラットフォームでバイナリー互換性が維持されます。(BZ#1400302)
bison がバージョン 3.0.4 にリベース
bison パッケージがアップストリームバージョン 3.0.4 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。
- キャレットエラーによる永続的な診断が修正されました。
- 指定した警告をエラーとして扱うために、-Werror=CATEGORY オプションが追加されました。警告は、-W オプションを使用して明示的にアクティブ化する必要はありません。
- 優先ルールと役に立たないルールの処理に多くの改善が加えられました。
また、以下の変更により、後方互換性がなくなりました。
YYFAIL
、YYLEX_PARAM
、YYPARSE_PARAM
、yystype
、yyltype
の機能が非推奨になりました。- アクションの最後に欠落しているセミコロンが自動的に追加されなくなりました。
システムのデフォルトの CA バンドルは、コンパイル済みデフォルト設定または Mutt
の設定でデフォルトとして設定されています。
以前は、TLS/SSL 経由で新しいシステムに接続する場合、
Mutt
メールクライアントはユーザーが証明書を保存する必要がありました。今回の更新で、システム認証局(CA)バンドルがデフォルトで Mutt
に設定されます。その結果、Mutt
は、証明書の承認または拒否を要求せずに、SSL/TLS 経由で、有効な証明書を持つホストに接続するようになりました。(BZ#1388511)
objdump
混合リストの速度
以前は、DWARF デバッグ情報を解析してソースコードを見つけるための BFD ライブラリーは非常に低速でした。BFD ライブラリーは、
objdump
ツールによって使用されます。その結果、ソースコードと逆アセンブリーの混合リストを作成すると、objdump
が大幅に遅くなりました。BFD ライブラリーのパフォーマンスが改善されました。その結果、objdump
を使用した混合リストの作成が速くなります。(BZ#1366052)
fjes
ドライバーから人間が読める形式の出力に対する ethtool
サポート
ethtool
ユーティリティーが拡張され、fjes
ドライバーから、人間が読める形式のレジスターダンプ出力が提供されるようになりました。これにより、ethtool
のユーザーは、Fujitsu Extended Socket Network Device ドライバーをより詳細に検査できます。(BZ#1402701)
ecj がバージョン 4.5.2 にリベース
ecj パッケージがアップストリームバージョン 4.5.2 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、バージョン 8 で Java 言語に追加された機能のサポートが完了したことです。その結果、Java 8 機能を使用した Java コードのコンパイルに失敗することがなくなりました。これには、Java ランタイム環境が提供するシステムクラスなど、Java 8 の機能を使用していないコードが、これらの機能を使用しているコードを参照しているケースも含まれます。(BZ#1379855)
rhino がバージョン 1.7R5 にリベース
rhino パッケージがアップストリームバージョン 1.7R5 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、以前からあった正規表現の解析中に無限ループになる問題が修正されたことです。以前このバグに遭遇した
Rhino
を使用するアプリケーションが正しく機能するようになりました。(BZ#1350331)
scap-security-guide および oscap-docker
がコンテナーをサポート
ユーザーは、
oscap-docker
ユーティリティーおよび SCAP セキュリティーガイド を使用して、誤検出の結果に遭遇することなく、コンテナーまたはコンテナーイメージのコンプライアンスを評価できるようになりました。パーティショニングなど、コンテナーコンテキストでは意味のないテストが not applicable
値に設定されていると、選択したセキュリティーポリシーでコンテナーをスキャンできるようになりました。(BZ#1404392)