第7章 コンパイラーとツール

linuxptp パッケージがクロック同期で active-backup のボンディングをサポート可能に

今回の更新で、ptp4l アプリケーションが active-backup モードに設定されたボンディングインターフェースを使用するように指定できるようになりました。その結果、ptp4l は、ボンディングのアクティブなインターフェースのクロックを Precision Time Protocol (PTP) のクロックとして使用し、フェイルオーバー時には、ボンディングの別のインターフェースに切り替えることができるようになりました。また、自動モード (-a オプション) の phc2sys ユーティリティーでは、PTP スレーブとして稼動している場合はシステムクロックをアクティブなインターフェースの PTP クロックに、PTP マスターとして稼働している場合は PTP クロックをシステムクロックに、それぞれ同期することができます。(BZ#1002657)

partedresizepart コマンドを使用してパーティションのサイズを変更

resizepart NUMBER END コマンドを使用して、ディスクパーティションのサイズを変更する機能が、Red Hat Enterprise Linux 7 で配布されている parted ディスクパーティション設定ユーティリティーにバックポートされました。詳細は parted(8) man ページを参照してください。
このコマンドは、パーティションのサイズを変更しますが、パーティション上のファイルシステムは変更しません。ファイルシステムの拡大または縮小には、resize2fs などのファイルシステムユーティリティーを使用してください。(BZ#1423357)

binutils がバージョン 2.27 にリベース

binutils パッケージが、アップストリームのバージョン 2.27 にリベースされました。このバージョンでは、以下の変更が追加されました。
  • 圧縮デバッグセクションのサポート
  • リンク時における孤立セクションの処理が改善
  • LLVM プラグインのサポート
  • objcopy ユーティリティーを使用して、新しいシンボルをオブジェクトファイルに挿入する機能
  • IBM POWER9 アーキテクチャーのサポート
  • ARMv8.1 および ARMv8.2 の命令セット拡張のサポート
さらに、今回の更新で、以下のバグが修正されました。
  • 以前のリリースでは、binutils パッケージに、GNU コーディング規約を説明する standards.info ドキュメンテーションファイルがありませんでした。このファイルが追加され、再度 info コマンドで利用できるようになりました。
  • 以前のリリースでは、IBM Power Systems アーキテクチャーの ld リンカーは、linker コマンドラインで指定する最初のオブジェクトに中間データを保存していました。その結果、そのファイルが出力で使用されず破棄されると、セグメンテーション違反が発生してリンカーが突然終了していました。このリンカーが変更され、入力ファイルへの中間ストレージをスキップしてデータを直接出力ファイルに保存するようになったため、ここで説明されている状況でも、リンカーがセグメンテーション違反で終了することはなくなりました。(BZ#1385959、BZ#1356856、BZ#1467390、BZ#1513014)

pcp がバージョン 3.12.2 にリベース

Performance Co-Pilot (PCP) アプリケーションが 3.12.2 にリベースされ、機能拡張とバグ修正が数多く追加されました。
コレクターシステムのアップデート:
  • PMDA (Performance Metric Domain Agent) の perfevent、コンテナーおよび CGroups、MySQL スレーブメトリクス、Linux のプロセスあたりのメトリクス、エントロピーにおける Linux カーネルメトリクス、slabinfo、IPv6 ソケット、および NFSD ワーカースレッドが更新されました。
  • PMDA で、Prometheus エンドポイントおよび HAProxy が新たに利用できるようになりました。
  • デバイスマッパー統計で、API が公開されます。
監視システムのアップデート:
  • 派生メトリクス言語が、すべての監視に拡張されました。
  • pmchart チャート作成ユーティリティーに、タイムゾーンと表示に関するバグの修正が適用されました。
  • pmlogconf 設定ユーティリティーは、hotproc メトリクスのログを自動的に有効にし、atop メトリクスを追加します。パフォーマンスはさらに最適化されるようになりました。
  • pcp-atop 監視ユーティリティーが新たに --hotproc オプションを認識するようになりました。いくつかのバグが修正されています。
  • 監視ユーティリティー pcp-pidstat および pcp-mpstat が、いくつかの出力オプションを認識するようになりました。
  • レポート作成ユーティリティー pmrep が、sadf ツールと互換性のあるコンマ区切り値 (CSV) の出力をサポートするようになりました。また、PCP メトリクスをエクスポートする新しいユーティリティー pcp2zabbixpcp2xmlpcp2json、および pcp2elasticsearch も追加されました。(BZ#1472153)

DWARF 5 のサポートを各種ツールに拡大

DWARF デバッグフォーマットバージョン 5 に対するサポートが、以下のツールに拡張されました。
  • elfutils パッケージの eu-readelf ツールが、DWARF 5 タグと属性をすべて認識するようになりました。
  • binutils パッケージの readelf ツールおよび objdump ツールが、DWARF 5 タグ DW_AT_exported_symbols を認識し、デバッグ情報セクションに正しくレポートできるようになりました。(BZ#1472955、BZ#1472969)

systemtap がバージョン 3.2 にリベース

SystemTap ユーティリティーが、アップストリームバージョン 3.2 に更新されました。主な機能拡張は以下のとおりです。
  • 一致する正規表現の抽出サポートが追加されました。
  • 標準入力からの入力を受け入れるプローブエイリアスが追加されました。
  • トランスレーター診断が改善されました。
  • statx システムコールへのサポートが新たに追加されました。
  • stap 言語に、サブ文字列の位置を検出する文字列関数 strpos() が追加されました。
さらに、今回の更新で、以下のバグが修正されました。
  • 以前のリリースでは、統計抽出関数 @min() および @max() の返す値が間違っており、この関数を使用するスクリプトが適切に動作していませんでした。@min() 関数および @max() 関数が、それぞれ最大値および最小値を正しく返すように修正されたため、この影響を受けていたスクリプトが期待どおりに動作するようになりました。
  • 以前のリリースでは、stap -L コマンドを使用したときに、一部のカーネルのトレースポイントが、プローブできない時も誤って表示されていました。SystemTap が修正され、一覧表示されるトレースポイントと、プローブ可能なトレースポイントが再び一致するようになりました。
  • netdev.receive プローブが修正され、再度データを収集できるようになりました。
  • netdev.receive プローブ問題の影響を受けていたスクリプト例 nettop.stp が、再び期待どおりに動作するようになりました。
Red Hat Enterprise Linux のカーネルバージョンは eBPF (extended Berkeley Packet Filter) をサポートしていないため、関連するアップストリームの SystemTap 機能を利用できない点に注意してください。(BZ#1473722、BZ#1490862、BZ#1506230、BZ#1485228、BZ#1518462)

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

valgrind パッケージがバージョン 3.13.0 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • Valgrind が、大規模プログラムを実行するために、いくつかの点で拡張されました。Valgrind が使用できるメモリーの量が 128 GB まで増えたため、Memcheck ツールが、最大約 60 GB まで割り当てるアプリケーションの実行をサポートするようになりました。また、Valgrind は、1200 MB までの実行可能ファイルをロードできるようになりました。
  • Memcheck ツール、Helgrind ツール、および Massif ツールで、解析したアプリケーションにおけるヒープ消費をレポートするのに、新しい実行ツリー (xtree) 表現を使用できるようになりました。
  • シンボルデマングラーが更新され、C++11 規格および Rust プログラミング言語をサポートするようになりました。
  • 64 ビットの Intel および AMD アーキテクチャーで AVX2 命令を使用したコードのロングブロックで発生していた問題が解消されました。
  • PowerPC アーキテクチャーにおける 64 ビットの timebase レジスターは、Valgrind によってモデル化されなくなり、32 ビットのみとなりました。
  • IBM Power Systems アーキテクチャーのサポートが拡張され、ISA 3.0B 規格が含まれるようになりました。
  • 64 ビットの ARM アーキテクチャーにおける LL (ロードリンク) および SC (ストアコンディショナル) に代わる実装が追加されました。この実装は、必要になると自動的に有効になります。手動で有効にするには、--sim-hints=fallback-llsc オプションを使用します。(BZ#1473725、BZ#1508148)

ncat がバージョン 7.50 にリベース

ncat ユーティリティー (nmap-ncat パッケージにより提供) がアップストリームバージョン 7.50 にリベースされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • SOCKS5 認証のサポートが追加されました。
  • ポートのステータスをすぐに確認する -z オプションが追加されました。
  • --no-shutdown オプションが、リッスンモードだけでなく接続モードでも有効になりました。(BZ#1460249)

rsync がバージョン 3.1.2 にリベース

rsync パッケージがアップストリームバージョン 3.1.2 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。
今回の更新で、以下の出力が変更になりました。
  • 数値のデフォルトの出力形式で、3 桁区切り記号が使用されるようになりました (例: 1,234,567)。
  • --progress オプションの出力において、xfer および to-check で短縮形が採用され、それぞれ xfr および to-chk に変更されました。
このバージョンの主な機能拡張は以下のとおりです。
  • I/O 処理が改善されたため、データ転送が速くなりました。
  • より詳細な出力を得るために、--info オプションと --debug オプションが新たに追加されました。
  • ナノ秒に修正した時間を同期する機能が追加されました。
  • コピー操作時にファイル所有者を操作するために、--usermap オプション、--groupmap オプション、および --chown オプションが新たに追加されました。
  • --preallocate オプションが新たに追加されました。(BZ#1432899)

tcpdumpvirtio トラフィックを解析可能

tcpdump ユーティリティーは、virtio-vsock 通信デバイスをサポートするようになりました。これにより、tcpdump が、ハイパーバイザーとゲスト仮想マシンとの間の virtio 通信にフィルターを付けて解析できるようになりました。(BZ#1464390)

Vim が C++11 の構文強調表示をサポート可能に

Vim テキストエディターで C++ の構文強調表示が機能強化され、C++11 規格をサポートするようになりました。(BZ#1267826)

Vimblowfish2 暗号化メソッドをサポート可能に

Vim テキストエディターに、blowfish2 暗号化メソッドのサポートが追加されました。このメソッドは、blowfish よりも強力な暗号化を提供します。blowfish2 暗号化メソッドを設定するには、:setlocal cm=blowfish2 コマンドを使用します。blowfish2 で暗号化したファイルは、Red Hat Enterprise Linux 7 および Red Hat Enterprise Linux 6 と互換性があります。(BZ#1319760)

Perl モジュール IO::Socket::SSL がデフォルトでシステム全体の CA 証明書ストアを使用

以前のリリースでは、Perl モジュール IO::Socket::SSL に基づいている TLS アプリケーションが、認証局 (CA) の証明書への明示パスを提供しない場合は、認証局が認識されず、ピアの ID が確認できませんでした。今回の更新で、モジュールはデフォルトでシステム全体の CA 証明書ストアを使用するようになりました。ただし、IO::Socket::SSL->new() コンストラクターの SSL_ca_file オプションに undef 値を渡すことで、この証明書ストアを無効にすることができます。(BZ#1402588)

perl-DateTime-TimeZone がバージョン 1.70 にリベース

perl-DateTime-TimeZone パッケージがアップストリームバージョン 1.70 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • 今回の更新で、Bugzilla バージョン 5 をインストールできるようになりました。このバージョンでは、以前システムが提供していたバージョンよりも新しい perl-DateTime-TimeZone が必要になります。
  • Olson タイムゾーンデータベースがバージョン 2017b にアップデートされました。以前のリリースでは、DateTime::TimeZone モジュールを使用する Perl 言語で記述されたアプリケーションが、データベースが古くなったために、バージョン 2013h 以降に仕様が変更されたタイムゾーンを誤って処理していました。
  • 無効なタイムゾーン識別子のローカルタイムゾーンを使用する問題が解消されました。(BZ#1241818、BZ#1101251)

system-config-kdump で fadump を実行する際に自動または手動による kdump メモリー設定を選択可能に

今回の更新で、fadump メモリー予約のサポートが system-config-kdump パッケージに追加されたため、ファームウェア支援ダンプ を選択した場合に、自動 kdump メモリー設定 または 手動設定 のいずれかを選択できるようになりました。(BZ#1384943)

conman がバージョン 0.2.8 にリベース

conman パッケージがアップストリームバージョン 0.2.8 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • スケーラビリティーが改善されました。
  • Coverity スキャン および Clang の警告が修正され、スケーラビリティーが改善されました。
  • IPMI (Intelligent Platform Management Interface) の SOL (Serial Over LAN) コンソールにおける任意の制限が修正されました。
  • conman.confloopback 設定のデフォルト値が ON に変更されました。(BZ#1435840)

TFTP windowsize オプションのサポートを実装

今回の更新で、TFTP (Trivial File Transfer Protocol) サーバーおよびクライアントに、RFC 7440 に従った windowsize オプションのサポートが実装されました。windowsize オプションが使用されると、データブロックがバッチで送られるため、スループットが著しく改善されます。(BZ#1328827)

SOCKS5 用に curl が GSSAPI の無効化をサポート可能に

SOCKS5 プロキシーの認証方法をコントロールするために、新たな --socks5-basic および --socks5-gssapi オプションが curl ユーティリティーに、対応するオプション CURLOPT_SOCKS5_AUTHlibcurl ライブラリーに、それぞれ導入されました。(BZ#1409208)

rsync ユーティリティーがタイムスタンプにおけるナノ秒の部分が含まれるファイルをコピー

これまで rsync ユーティリティーでは、ファイルのタイムスタンプのナノ秒部分を無視してきたため、新たに作成されるファイルのナノ秒のタイムスタンプは常にゼロでした。今回の更新で、rsync ユーティリティーがナノ秒部分を認識するようになったため、新たにコピーしたファイルでも、ナノ秒をサポートするシステムでは、元のナノ秒のタイムスタンプが保持されるようになりました。(BZ#1393543)

tcpdump rebased がバージョン 4.9.2 にリベース

tcpdump パッケージがアップストリームバージョン 4.9.2 にアップグレードされ、以前のバージョンに対するバグ修正 (CVE の数が 100 近く) および機能拡張が数多く追加されました。主な変更点は以下のとおりです。
  • OpenSSL 1.1 に関連するセグメンテーション違反が修正され、OpenSSL 使用が改善されました。
  • バッファーオーバーフローの脆弱性が修正されました。
  • 無限ループの脆弱性が修正されました。
  • 多くのバッファーオーバーリードの脆弱性が修正されました。(BZ#1490842)

OProfile のサポートを Intel Xeon プロセッサーファミリーに拡大

OProfile が拡張され、Intel Xeon Phi™ Processor x200 および x205 製品ファミリーをサポートするようになりました。(BZ#1465354)

libpfmpcp、および papi における Intel Xeon v4 Uncore パフォーマンスイベントへのサポート

今回の更新で、libpfm パフォーマンス監視ライブラリー、pcp ツール、および papi インターフェースに、Intel Xeon v4 Uncore パフォーマンスイベントのサポートが追加されました。(BZ#1474999)

IBM POWER アーキテクチャーでメモリーコピーパフォーマンスが向上

以前のリリースでは、64 ビットの IBM POWER システムにおいて、GNU C ライブラリー (glibc) の memcpy() 関数が、アラインされていないベクターロードとストア命令を使用していました。その結果、memcpy() を使用して POWER9 システムのデバイスメモリーにアクセスすると、パフォーマンスが低下しました。POWER9 のメモリーに関わらずアプリケーションのパフォーマンスを向上させるために、アラインされたメモリーアクセス命令を使用するように memcpy() 関数が強化されました。前の世代の POWER アーキテクチャーでも、パフォーマンスに影響を与えません。(BZ#1498925)

TAI クロックマクロが利用可能

以前のリリースでは、カーネルは CLOCK_TAI クロックを提供していましたが、glibc ヘッダーファイル time.h で、それにアクセスする CLOCK_TAI マクロがありませんでした。マクロ定義がヘッダーに追加されました。その結果、アプリケーションが CLOCK_TAI カーネルクロックにアクセスできるようになりました。(BZ#1448822)

IBM z Systems で 4 KiB ページテーブルを選択的に使用

今回の更新で、最下位レベルの 4 KiB メモリーページテーブルを必要とする IBM z Systems アーキテクチャーのアプリケーションにマークを付けるために、binutils パッケージの ld リンカーに --s390-pgste オプションが追加されました。その結果、この機能の使用がそれを必要とするアプリケーションに制限され、システムの全アプリケーションが領域を最適に利用できるようになりました。qemu バックエンドは、実行中のすべてのアプリケーションにおいて、4 KiB の最下位ページテーブルの使用を強制しなくなりました。したがって、アプリケーションで必要な場合は、新しいオプションを指定する必要があります。(BZ#1485398)

IBM z Systems の glibc 関数がより効果的に

IBM z Systems アーキテクチャーに、glibc ライブラリーへの新たな命令が追加されました。その結果、このアーキテクチャーでコンパイルしたプログラムでは、glibc 関数のパフォーマンスが改善されています。(BZ#1375235)

ld リンカーは位置独立コードと位置依存コードを誤って混合しない

以前のリリースでは、ld リンカーは、PIE (Position Independent Executable) で構築されたかどうかを考慮せずに、IBM z Systems プラットフォームのオブジェクトファイルを結合していました。PIE コードと非 PIE コードは組み合わせて使用できないため、作成された実行ファイルを実行することができませんでした。このリンカーは、PIE コードと非 PIE コードが混合されていることを検出し、エラーメッセージを生成するように拡張されました。したがって、この方法で壊れた実行ファイルが作成されることはなくなりました。(BZ#1406430)

python-virtualenv がバージョン 15.1.0 にリベース

python-virtualenv パッケージが 15.1.0 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。今回の更新で、バンドルされた setuptools パッケージがバージョン 28.0.0 にアップグレードされ、pip パッケージがバージョン 9.0.1 にアップグレードされました。(BZ#1461154)

python-urllib3subjectAltName の IP アドレスをサポート

python-urllib3 パッケージ (接続プール設定とファイルの POST 機能を持つ Python HTTP モジュール) は、subjectAltName (SAN) フィールドの IP アドレスをサポートします。(BZ#1434114)

GCC に retpoline のサポートを追加

今回の更新で、GCC に retpoline のサポートが追加されました。カーネルは retpoline 手法を使用して、CVE-2017-5715 に記載の Spectre Variant 2 攻撃緩和のオーバーヘッドを削減します。(BZ#1535655)

Shenandoah ガーベジコレクターを完全にサポート

OpenJDK 向けの一時停止時間の短い Shenandoah ガーベジコレクターは、以前のリリースではテクノロジープレビューでしたが、Intel 64、AMD64、および 64 ビット ARM アーキテクチャーで完全にサポートされるようになりました。Shenandoah は並列退避を実行し、短い一時停止時間で大量のヒープを実行することが可能です。詳細については、「OpenJDKWiki」を参照してください。(BZ#1578075)

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