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

IBM z Systems z13 での新たな命令のサポート

GCC の新バージョンでは、SIMD 命令のサポートに加え、IBM z Systems z13 の新規ハードウェアの命令もサポートされています。新規の組み込みを有効にするには、-march=z13 コマンドラインオプションが必要になります (BZ#1182152)。

GCC が POWER8 向けに最適化されたコードを生成

PowerPC 64 LE アーキテクチャー上では、GCC コンパイラーは --with-cpu=power8--with-tune=power8 のパラメーターで設定され、GCC が POWER8 プラットフォーム向けに最適化されたコードを生成するようになっています (BZ#1213268)。

Intel メモリー保護キー (IMPK) のサポート

今回の更新で GCC コンパイラーは、IMPK のサポートを提供するようになりました。これでコンパイラーが新規 PKU 命令を生成することができます。この新規命令は、-mpku コマンドラインオプションを使用すると有効にできます (BZ#1304449)。

gcc-libraries のリベース

gcc-libraries パッケージが最新の GCC 5 バージョンにリベースされ、アップストリームバージョンからの各種バグ修正や機能拡張を含むようになっています (BZ#1265252)。

GDB が IBM z13 機能をサポート

今回の更新では、IBM z13 機能を活用したデバッグコードの GDB 拡張が提供されています。これには、拡張 IBM z13 指示の逆アセンブル、128 ビット幅のベクトルレジスタ v0-v31 を使用した SIMD 命令のサポートが含まれます。IBM z13 向けに最適化されたコードは GDB でデバッグできるようになり、inferior call 中に正確な命令ニーモニックやベクトルレジスタを表示し、ベクトルレジスタコンテンツを取得し、渡します (BZ#1182151)。

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

リベースされた binutils パッケージの主な特徴は以下の通りです。
  • strings プログラムで --data コマンドラインオプションが利用可能になり、読み込み可能で初期化されたデータセクションの文字列のみをプリントします。デフォルト動作は、--all コマンドラインオプションに合致するように変更されています。
  • strings プログラムで --include-all-whitespace コマンドラインオプションが利用可能になり、非表示 ASCII 文字を文字列の一部として扱います。これには、Enter キーや行終端文字とみなされるであろう改行文字が含まれます。
  • objcopy プログラムで --dump-section コマンドラインオプションが利用可能になり、名前付けされたセクションを抽出して、別のファイルにコピーします。
  • objcopy プログラムでセクション名を取るコマンドラインオプションでワイルドカード文字に対応するようになっています。
  • as アセンブラーで --gdwarf-sections コマンドラインオプションが利用可能になり、コード別セクションの DWARF.debug_line セクションの生成が可能になっています。これにより、対応するコードセクションがリンカーガベージコレクションにより削除される際に、該当セクションの削除が促進されます (BZ#1341730)。

IBM z Systems アーキテクチャーへの z13 拡張のサポート

今回の更新では、複数のアップストリームパッチが単一のものにまとめられ、Red Hat Enterprise Linux 7 binutils パッケージに適用されています。z13 拡張がサポートされるようになっています (BZ#1364516)。

MWAITX のサポート

更新された 32 ビット AMD および Intel アーキテクチャー向け binutils パッケージは MWAITX 命令をサポートしています (BZ#1335684)。

Zeppelin のサポート

更新された 32 ビット AMD および Intel アーキテクチャー向け binutils パッケージは Zeppelin 拡張をサポートしています (BZ#1335313)。

大型システム拡張のサポート

更新された binutils パッケージは、AArch64 への大型システム拡張をサポートしています。また、.arch_extension 擬似命令のサポートも追加されています (BZ#1276755)。

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

elfutils パッケージには、実行可能コードの作成とメンテナンスに関連する多くのユーティリティーおよびライブラリーが含まれています。これがバージョン 0.166 にアップグレードされました。主な改善点は以下の通りです。
  • stripunstrip - これらのユーティリティーは、マージした strtab/shstrtab 表のある ELF ファイルを処理できるようになっています。
  • elfcompress - ELF セクションを圧縮、圧縮解除する新たなユーティリティーです。
  • readelf - 新たな -z,--decompress オプションです。
  • libelf および libdw に新たな関数が追加され、以下の圧縮された ELF セクションを処理します: elf_compresself_compress_gnuelf32_getchdrelf64_getchdr、および gelf_getchdr
  • libdwelf - 新たな dwelf_scn_gnu_compressed_size() 関数です。
  • 新たな libelf および libdw pkgconfig (パッケージ設定) ファイル。
(BZ#1296313)

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

Valgrind は、メモリーのデバッグ、メモリーリークの検出、およびアプリケーションのプロファイルに使用されるインストルメンテーションフレームワークです。これがアップストリームのバージョン 3.11.0 にアップグレードされました。主な改善点は以下の通りです。
  • JIT のレジスタアロケータが大幅に速くなり、プログラムの起動といった JIT 集約型アクティビティーがおよそ 5% 速くなっています。
  • Intel AVX2 のサポートが 64 ビットのターゲットでより完全なものになっています。AVX2 対応ホスト上で、シミュレートされた CPUID が AVX2 サポートを示すようになっています。
  • 自動 D-I キャッシュコヒーレンスを提供するターゲット上における --smc-check オプションのデフォルト値が stack から all-non-file に変更されています。この結果、デフォルトでは全ターゲット上でJIT が生成した自己書き換えコードの透過的サポートが提供されます。
Memcheck ユーティリティーの主な新機能は以下の通りです。
  • --leak-check-heuristics オプションのデフォルト値が none から all に変更されました。これにより、特に C++ アプリケーションにおけるブロック損失の数が削減されます。
  • --keep-stacktraces オプションのデフォルト値が malloc-then-free から malloc-and-free に変更されています。これはメモリーを多少費やしますが、Memcheck で、ブロックが割り当てられた場所、ブロックが解放された場所、解放後にアクセスされた場所という、ダングリングリファレンスの 3 つのスタックトレースを表示できるようになります。
  • --partial-loads-ok オプションのデフォルト値が no から yes に変更され、特定のベクトル化ループから発生する誤検知エラーを回避します。
  • 新たな gdb モニターコマンド xb [addr] [len][addr][len] バイトの有効性を示します。監視コマンド xbは、バイトデータ値を対応する有効性ビットに関連付ける必要がある際に、get_vbits よりも簡単に使用できます。
  • block_list gdb モニターコマンドの機能が拡張されました。損失レコードの範囲がプリント可能で、オプション引数 limited [max_blocks] を受け付けてプリントするブロック数を制御できます。ヒューリスティックを使用してブロックが発見された場合は、block_list ではブロックサイズの後にそのヒューリスティックを表示します。プリントする損失レコード/ブロックは、指定されたヒューリスティックで見つかったブロックに限定することができます。
  • コマンドラインオプション --expensive-definedness-checks=yes|no が新たに追加されました。これは、最適化されたコードで時折発生する無効な初期化されていない値のエラーを回避するために有効です。ランタイムが低下する恐れがあり、最大 25% にもなることがあることに注意してください。ただし、この遅延は特定のアプリケーションにおいて発生するものです。デフォルト値は no です。
(BZ#1296318)

valgrind でのユーザー定義の割り当て関数のインターセプション

アプリケーションによっては glibc アロケーターを使用しないものもあります。このため、valgrind でそのようなアプリケーションを実行することは常に便利なものとは限りませんでした。今回の更新では、valgrind は、通常の glibc アロケーターを使用しているかのように、自動的にユーザー定義のメモリー割り当て関数を傍受し、プログラム上で設定することなく memcheck のようなメモリー追跡ユーティリティーを使用することが可能になっています (BZ#1271754)。

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

systemtap パッケージがアップストリームバージョン 3.0 にアップグレードされ、多くのバグ修正と機能拡張が提供されています。例えば、トランスレーターは必要とするメモリーが少なくなり、より速いコードを作成し、より多くの関数呼び出し先プローブをサポートします。また、改善された診断をプリントし、関数オーバーロードとプライベートスコーピング向けの言語拡張が含まれ、さらに実験的な --monitor--interactive のモードも導入されています (BZ#1289617)。

第 7 世代インテル Core i3、i5、および i7 プロセッサーのサポート

今回の更新では、第 7 世代インテル Core i3、i5、および i7 プロセッサー (Kabylake-U/Y) 向けのパフォーマンス監視イベントの完全セットが提供されています (BZ#1310950)。

第 7 世代インテル Core i3、i5、および i7 プロセッサーのサポート

今回の更新では、第 7 世代インテル Core i3、i5、および i7 プロセッサー (Kabylake-H/S) 向けのパフォーマンス監視イベントの完全セットが提供されています (BZ#1310951)。

libpfm がバージョン 4.7.0 にリベース

libpfm パッケージがバージョン 4.7.0 にアップグレードされ、以下の 32 ビット AMD および Intel アーキテクチャーに対応しています。
  • Intel Skylake core PMU
  • Intel Haswell-EP uncore PMUs
  • Intel Broadwell-DE
  • Intel Broadwell (デスクトップコア)
  • Intel Haswell-EP (コア)
  • Intel Haswell-EP (コア)
  • Intel Ivy Bridge-EP uncore PMUs (全ボックス)
  • Intel Silvermont core PMU
  • Intel RAPL イベントサポート
  • Intel SNB、IVB、HSW イベントテーブル更新
  • Intel イベントテーブルのメジャー更新
  • AMD Fam15h Northbridge PMU
(BZ#1321051)

gssproxy が RELRO と PIE をサポート

GSS-API gssproxy デーモンがセキュリティー関連の RELROPIE のコンパイル時間フラグを使用してビルドされ、このデーモンを強固にします。この結果、gssproxy は、ローダーメモリーエリアの上書きの試みやメモリー破壊攻撃に対してより高度なセキュリティーを提供します (BZ#1092515)。

iputils がバージョン 20160308 にリベース

iputils パッケージがアップストリームバージョン 20160308 にアップグレードされ、バグ修正および機能拡張が追加されています。特に ping コマンドは、デュアルスタック対応になっており、IPv4 と IPv6 の両方のアドレスのプローブに使用できます。以前の ping6 コマンドは ping コマンドへのシンボリックリンクとなっており、これまで通りに機能します (BZ#1273336)。

tftp サーバーのログ機能が拡張

ロギングが改善されたことで、Trivial File Transfer Protocol (TFTP) サーバーは成功と失敗を追跡できるようになっています。例えば、クライアントがファイルのダウンロードに成功したり、失敗時に file not found メッセージが提供されると、ログイベントが作成されます (BZ#1311092)。

arpwatch の新オプション: -p

今回の更新で、arpwatch ネットワーク監視ツールの arpwatch コマンドに新オプション -p が導入され、これで無作為検出モードが無効にされます (BZ#1291722)。

chrt ユーティリティーの新オプション

今回の更新で chrt ユーティリティーに以下のコマンドラインオプションが導入されました: --deadline--sched-runtime--sched-period、および --sched-deadline。これらのオプションはカーネル SCHED_DEADLINE スケジューラーを活用し、コマンドライン使用時にスクリプトの締め切りスケジュールポリシーを完全に制御できます (BZ#1298384)。

新コマンドラインユーティリティー: lsipc

今回の更新で lsipc ユーティリティーが導入され、プロセス間通信 (IPC) 設備についての情報を一覧表示します。以前の ipcs コマンドと比較すると、lsipc はより詳細な情報を提供し、スクリプト内での使用が容易で、ユーザーに使いやすいものとなっています。このため、コマンドラインで使用すると、スクリプトの IPC 情報についての出力が制御しやすくなります (BZ#1153770)。

libmountfindmnt を使用した検索の信頼性の向上

オーバーレイファイルシステムの st_dev は、libmount ライブラリーと findmnt ユーティリティーの検索で信頼性が高くありません。今回の更新で、libmountfindmntst_dev 以外の方法でマウントテーブルを検索し、場合によっては信頼性が高くなっています (BZ#587393)。

alternatives ユーティリティーの新オプション --family

今回の更新でalternatives ユーティリティーに新オプション --family が導入されています。このソフトウェアパッケージャーは、このオプションを使用して同一グループから同様の代替パッケージをファミリーにグループ化できます。グループ内のファミリーは、現在使用されている代替パッケージが削除され、これがあるファミリーに属している場合、その代替パッケージがファミリー外ではなく同一ファミリー内の最優先のパッケージに変更されます。
例えば、システムで 4 つのパッケージが同じ alternatives グループに、a1a2a3b とインストールされていたとします (優先度は後が高いとする) 。パッケージ a1a2、および a3 は同一ファミリーに属しており、現在使用されている代替パッケージは a1 とします。a1 が削除されると、代替パッケージは a3 に変更されます。ba1 ファミリー外であるため b に変更されず、a2 の優先度が a3 よりも低いため、a2 に変更されません。
このオプションは、各代替パッケージに優先度を設定するだけでは不十分な場合に便利です。例えば、openjdk 全パッケージを同一ファミリーにして、このうちのいずれかがアンインストールされた場合に、代替パッケージが java-1.7.0-oracle ではなく別の openjdk パッケージに切り替わるようにできます (別の openjdk パッケージがインストール済みの場合) (BZ#1291340)。

sos がバージョン 3.3 にリベース

sos パッケージがアップストリームバージョン 3.3 にアップグレードされ、バグ修正の他、次のような機能が追加されています。
  • OpenShift Enterprise 3.x のサポート
  • OpenStack プラグインの改善および拡張
  • Open vSwitch サポートの拡張
  • Kubernetes データ収集の拡張
  • systemd ジャーナル収集のサポート改善
  • ディスプレイマネージャーと 3D アクセラレーションデータキャプチャーの拡張
  • Pacemaker を含む Linux クラスターのサポート改善
  • CPU および NUMA トポロジー収集の拡大
  • メインフレーム (IBM z Systems) 範囲の拡大
  • マルチパストポロジーの収集 (BZ#1293044)

ethtool がバージョン 4.5 にリベース

Ethtool ユーティリティーでは、多くのネットワークデバイス、特にイーサネットデバイスでのスピードやポート、オートネゴシエーション、PCI の場所、チェックサムオフロードといった設定のクエリや変更ができます。このパッケージはアップストリームバージョン 4.5 にアップグレードされ、特に以下の点が改善されています。
  • SFP シリアル番号と日付が EEPROM ダンプに含まれます (オプション -m)。
  • 10GbE と 56GbE の組み合わせという宣伝広告されていたスピードが追加されました。
  • VMware vmxnet3 のレジスタダンプのサポートを追加 (オプション -d)。
  • デフォルトの Rx フロー間接指定テーブルの設定サポートを追加 (オプション -X)。
(BZ#1318316)

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

Performance Co-Pilot (PCP) は、システムレベルのパフォーマンス測定の取得、アーカイブおよび分析を行うためのツール、サービス、およびライブラリーのスイートです。このパッケージがバージョン 3.11.3 にアップグレードされ、以下のような改善点があります。
  • pcp-ipcs - プロセス間通信を表示する新コマンド
  • pcp-atopsar - http://atoptool.nl に基づく新たな PMAPI sar コマンド
  • pcp-vmstat - vmstat により近づけるように修正した pmstat 向けラッパー
  • libpcp - 新しい fetchgroup API
  • pmdamic - Intel MIC カードメトリクス向け新 PMDA
  • pmdaslurm - HPC スケジューラーメトリクスをエクスポートする新 PMDA
  • pmdapipe - コマンド出力イベントキャプチャー PMDA
  • pmdaxfs - デバイスごとの XFS メトリクスをサポート
  • pmdavmware - 現行 VMWare Perl API と機能するよう更新
  • pmdaperfevent - 派生メトリクスに関連する各種改善; NHM および WSM 向けにリファレンスクロックサイクルを追加
  • pmdaoracle - Oracle データベースメトリクスが利用可能になりかつ更新
  • pmdads389 - 正規化された dn キャッシュメトリクスを追加
  • pmdalinux - numa ノードメモリー帯域幅ごとのメトリクス、共有メモリーセグメント、IPC、MD ドライバー統計値、transparent-huge-page ゼロページ alloc カウンター、NVME デバイス、IPv6 メトリクスを追加
  • pmdaelasticsearch - デフォルトではローカルのノードメトリクスに制限し、elasticsearch API 変更に対応
  • pmdaxfs - デバイスごとの XFS メトリクスをサポート
  • pmrep - 強力かつ多様となメトリクスレポーティングユーティリティー
  • pmlogconf - Oracle データベース、nginx、elasticsearch、memcache、および mmv が提供するアプリケーションメトリクスの自動レコーディングをサポート
  • zbxpcp - Zabbix v2 と v3 に同時対応する PCP メトリクス向けの Zabbix Agent 読み込み可能モジュール
  • pmcd - pmdaroot 経由での PMDAs の起動をサポート。PMDA 失敗時に pmcd 自体を再起動することなく再起動が可能
  • sar2pcp - 新たな mem.util メトリクスおよび sysstat-11.0.1 コマンドに対応
  • pmmgr - 全般的な監視プログラム起動オプションを追加
  • pcp-atop - 最新の atop 機能で更新 (特に NFS 関連)
  • libpcp - サーバー証明書の名前のカスタマイズが可能に; 永続的なグローバルで派生したメトリクスおよびマルチアーカイブコンテキストのサポートを追加
  • pmdaproc - cgroup blkio スロットルスループットおよび IOPS メトリクス
  • pcp-iostat - 正規表現を使用したデバイス名マッチングに -R フラグを、また sumavgmin、もしくは max statistics-G フラグを追加
  • pmieconf - 応答しない PMDA の再起動を自動化する新ルール
(BZ#1284307)

OpenJDK 8 が ECC をサポート

今回の更新で、Elliptic Curve Cryptography (ECC) と TLS 接続に関連する暗号のサポートが OpenJDK 8 に追加されました。安全なネット接続を確立するには、ほとんどのケースで旧式の暗号化ソリューションではなく ECC を使用してください (BZ#1245810)。

pycurlが TLSv1.1 または 1.2 を必須とするオプションを提供

今回の更新で pycurl は、TLS プロトコルのバージョン 1.1 または 1.2 の使用を必須とすることのできるオプションをサポートするようになりました。これにより、通信のセキュリティーが向上します(BZ#1260407)。

Perl Net:SSLeay が elliptic 曲線パラメーターに対応

elliptic-curve パラメーターのサポートが Perl Net:SSLeay モジュールに追加されました。これには、OpenSSL ライブラリーへのバインディングが含まれます。つまり、EC_KEY_new_by_curve_name()EC_KEY_free*()SSL_CTX_set_tmp_ecdh()、および OBJ_txt2nid() のサブルーチンがアップストリームから移植されました。これは、IO::Socket::SSL Perl モジュールの Elliptic Curve Diffie–Hellman Exchange (ECDHE) キー交換のサポートに必要となるものです (BZ#1316379)。

Perl IO::Socket::SSL が ECDHE に対応

Elliptic Curve Diffie–Hellman Exchange (ECDHE) のサポートが IO::Socket::SSL Perl モジュールに追加されました。新しい SSL_ecdh_curve オプションは、 Object Identifier (OID) または Name Identifier (NID) ごとの適切な曲線の特定に使用できます。このため、IO::Socket:SSL を使って TLS クライアントを実装する際に、デフォルトの elliptic 曲線パラメーターを無効にできるようになっています (BZ#1316377)。

tcsh がシステム割り当て関数を使用

tcsh コマンド言語インタプリターがビルトインの割り当て関数ではなく、glibc ライブラリーからの割り当て関数を使用するようになっています。これにより、malloc() ライブラリーコールで発生していた以前の問題がなくなります (BZ#1315713)。

Python のパフォーマンス強化

CPython インタプリターは、メインの switch ステートメントで計算済み goto ステートメントを使用します。これは、Python バイトコードを実行します。この機能拡張により、インタプリターは switch ステートメントの C99 標準で必要とされていたバウンドチェックを避けることができ、CPU のブランチ予測がより効率的になり、パイプラインフラッシュを削減します。この機能拡張によって Python コードの変換はこれまでよりも格段に速くなっています (BZ#1289277)。

telnetlogin の呼び出し時に、-i による IP アドレスの使用を許可

これまではコンピューターネットワークに複数の IP アドレスがある場合、そのうちのいずれかを使って telnet サーバーに接続することは可能でしたが、他のアドレスは /var/run/utmp ファイルに保存されていました。telnet ユーティリティーが DNS ルックアップを実行せず、login ユーティリティーの呼び出し時に telnet が特定の IP アドレスを使用するよう、-i オプションを利用することが可能になりました。-i は、Debian システムの -N オプションと同じ方法で機能することに留意してください (BZ#1323094)。

sg3_utils がバージョン 1.37-7 にリベース

sg3_utils パッケージは、Small Computer System Interface (SCSI) コマンドセットを使用するデバイス用のコマンドラインユーティリティーを提供します。今回の更新で、sg_inq および sg_vpd のユーティリティーでストレージデバイスに関するより多くの機能情報のデコードが可能になりました。また、データとソフトウェアバージョン情報が正確に表示されるようになっています。sg_rdac ユーティリティーも修正されて 10 バイトのコマンド記述ブロック (CDB) モードに対応しており、最大 256 の論理ユニット番号 (LUN) の管理が可能になっています (BZ#1170719)。

Python 標準ライブラリーでの HTTP クライアント向け SSL/TLS 証明書確認に新たな設定オプション

Python 標準ライブラリーの HTTP クライアント向けに SSL/TLS 証明書を確認するアプリケーション別およびプロセス別の新設定オプションが追加されました。これらのオプションは、493 Python Enhancement Proposal (https://www.python.org/dev/peps/pep-0493/) に記載されています。デフォルトのグローバル設定では、引き続き証明書を確認しません。詳細は、https://access.redhat.com/articles/2039753 を参照してください (BZ#1315758)。

glibc が BIG5-HKSCS-2008 文字セットに対応

これまでは、glibc は香港増補字符集の以前のバージョンである BIG5-HKSCS-2004 をサポートしていました。BIG5-HKSCS のキャラクターセットマップは、標準である HKSCS-2008 改訂に更新されています。これにより、Red Hat Enterprise Linux をご使用のお客様はこの標準バージョンでエンコードされるアプリケーション処理テキストを書き込むことができます (BZ#1211823)。

memtest86+ がバージョン 5.01 にリベース

memtest86+ パッケージがアップストリームバージョン 5.01 にアップグレードされました。旧バージョンに対する多くのバグ修正および機能拡張が加えられています。主な変更点は以下のとおりです。
  • AMD64 および Intel 64 CPU で最大 2 TB の RAM をサポート
  • Intel Haswell などの新たな Intel および AMD CPU をサポート
  • 最大 32 コアの実験的 SMT サポート
変更点に関する詳細情報は、http://www.memtest.org/#change を参照して下さい (BZ#1280352)。

mcelog がバージョン 136 にリベース

mcelog パッケージがアップストリームバージョン 136 にアップグレードされ、バグ修正および機能強化が追加されています。特に第 5 世代および第 6 世代の各種インテル Core プロセッサー (Broadwell-DE/SoC、Broadwell-EP、Broadwell-EX、および Skylake Client) のサポートが追加されています (BZ#1336431)。

xz がバージョン 5.2.2 にリベース

xz パッケージがアップストリームバージョン 5.2.2 にアップグレードされ、最適化修正、競合状態の修正、変換、ポータブル性の修正、これまではテストのみで利用可能だった固定 API が新たに提供されています。さらに今回の更新では、--flush-timeout オプション (デフォルトでは off) で制御する新たな実験的機能も導入されています。圧縮時に最後のフラッシュからタイムアウトのミリ秒 (正の整数) が経過してさらなる入力の読み込みがブロックされると、保留中のすべての入力データがエンコーダーからフラッシュされ、出力ストリームで使用可能となります。これは、ネットワークでストリームされるデータの圧縮に xz ユーティリティーを使用する場合に便利です (BZ#1160193)。

tapestatsysstat に追加された

sysstat パッケージは、テープドライブのパフォーマンスを監視するために使用できる tapestat ユーティリティーを提供するようになりました (BZ#1332662)。

sysstat が大量のプロセッサーをサポートする

sysstat パッケージが Linux カーネルでサポートされるプロセッサーの最大数 (Red Hat Enterprise Linux 7.3 リリースでは 8192) をサポートするようになりました。以前は、sysstat は 2048 個を超えるプロセッサーを処理できませんでした (BZ#1258990)。

ruby がバージョン 2.0.0.648 にリベース

ruby パッケージがアップグレードバージョン 2.0.0.648 にアップグレードされ、バグおよびセキュリティー修正が提供されています。Ruby 2.0.0 はアップストリームでは非推奨となったため、これがアップストリームの最後の安定したリリースになります。最新バージョンの Ruby は、Red Hat Software Collections から入手できます (BZ#1197720)。

abrt のレポーティングワークフローの機能拡張

abrt における問題報告のワークフローの機能が拡張され、クラッシュレポーティング全般と顧客ケースの作成が改善しています。主な機能拡張は以下の通りです。
  • Provide additional information 画面で問題が繰り返し発生しているかどうかが選択でき、問題再現のステップを提供する新たな入力フィールドが含まれています。
  • Submit anonymous report という新たなレポーティングワークフローが加えられ、報告する問題が重大でない場合および Red Hat サポートチームの支援が不要な場合に使用することができます。
  • 内部論理に新たなテストが追加され、重大な問題および Red Hat がリリースしたソフトウェアについてのケースのみが開かれるようになっています (BZ#1258482)。

abrt で特定のプログラムがコアダンプを生成しないようにする

これまでは、abrt でブラックリスト化されたプログラムのクラッシュを無視してもコアダンプは作成され、ディスクに書き込まれた後に削除されていました。このアプローチでは、abrt がシステム管理者にクラッシュを通知する一方で、不要なクラッシュダンプの保存にディスクスペースを使用しないで済みました。ただし、ダンプを作成してその後に削除することは、システムリソースを不必要に浪費していました。今回の更新では、/etc/abrt/plugins/CCpp.conf 設定ファイルに IgnoredPaths の設定オプションを新たに導入したことで、コンマ区切りでファイルシステムパスのパターンを指定でき、コアダンプを全く生成しないようにすることができます (BZ#1277848)。

ユーザーおよびグループのホワイトリストを abrt に追加

これまでは、abrt ではすべてのユーザーがコアダンプの生成および収集が可能で、このため悪意を持ったユーザーが多数のコアダンプを生成してシステムリソースを浪費させることが可能でした。今回の更新では abrt にホワイトリストの機能を追加し、特定のユーザーまたはグループのみがコアダンプを生成するようにすることができます。/etc/abrt/plugins/CCpp.conf 設定ファイルで AllowedUsers = user1, user2, ...AllowedGroups = group1, group2, ... のオプションを使用するとこれらのユーザーやグループにコアダンプの生成および収集を制限できます。これらのオプションを空白にしておくと、abrt が全ユーザーおよびグループ向けにコアダンプを処理するようになります (BZ#1277849)。

ABRT が送信する E メールの形式が設定可能

reporter-mailx ユーティリティーで新コマンドラインオプション -F FORMAT_FILE を使用すると、ABRT が送信する E メールの形式を設定できるようになりました。このオプションでは、独自の形式を定義できます。-F オプションを使用しない場合は、reporter-mailx はデフォルトの形式を使用し、重要度で全要素を並べ替えます。ファイルの書式設定に関する詳細情報は、reporter-mailx(1) man ページを参照して下さい (BZ#1281312)。

Oracle ACFS が既知のファイルシステムに含まれる

これまでは、Oracle ASM クラスターファイルシステム (ACFS) は stat および tail ユーティリティーの既知のファイルシステムに記載されていませんでした。このため、tail ユーティリティーは、このファイルシステムが認識されないというエラーメッセージをプリントしていました。ACFS が既知のファイルシステム一覧に追加されたので、このエラーメッセージが表示されることがなくなりました。
また、アップストリームで認識されている他のファイルシステムも既知のファイルシステム一覧に追加されました。以下にそれらを挙げます。bpf_fsbtrfs_testconfigfshfs+hfsxibrixlogfsm1fsnsfsoverlayfsprl_fs、および tracefs (BZ#1280357)。

swig が使用する Octave 3.8 のサポート

これまでは、swig 2.0.10 が生成した Octave コードには変数やマクロなどの非推奨ビットが含まれていたため、Octave 3.8 とは機能しませんでした。今回の更新では、swig が生成するコードが Octave のバージョン 3.0.5、3.2.4、3.4.3、3.6.4、および 3.8.0 で機能するようになっています (BZ#1136487)。

sos cluster プラグインがタイプ固有のプラグインに分割

sos パッケージの cluster プラグインが複数のプラグインに分割されました (cmandlmgfs2、および pacemaker)。新たなプラグインの構成は 2 つの異なるタイプのクラスター (cman および pacemaker) を反映しており、特定のコマンドを複数回実行する必要性を省いています (BZ#1187258)。

libvpd がバージョン 2.2.5 にリベース

libvpd パッケージがアップストリームバージョン 2.2.5 にアップグレードされ、バグ修正および機能拡張が追加されています。特に、バッファオーバーフローとメモリー割り当て確認を含む複数のセキュリティー修正が実装されています (BZ#1182031)。

python-schedutilspchrtptaskset の man ページを追加

今回の更新では、python-schedutils パッケージで提供される pchrtptaskset ユーティリティーの man ページが追加されています (BZ#948381)。

subscription-manager クライアントの SSL 接続のソケットタイムアウト値が設定可能

これまでは、エンタイトルメントサーバーへの SSL 接続のソケットタイムアウト値はハードコード化されていました。今回の更新で、ユーザーは SSL タイムアウト値を /etc/rhsm/rhsm.conf ファイル内でカスタム設定できるようになっています。SSL タイムアウトで高い値を設定すると、多くのサブスクリプションが関連している負荷の高い操作が完了するように十分な時間を確保することができます (BZ#1346417)。

redhat-uep.pem CA 証明書が python-rhsm-certificates パッケージに移動

/etc/rhsm/ca/redhat-uep.pem 認証局 (CA) 証明書はこれまで python-rhsm パッケージに含まれていました。今回の更新では、この証明書を簡素化された python-rhsm-certificates パッケージに移動し、証明書のみを提供するパッケージにしています。この結果、コンテナイメージは、python-rhsm で必要とされる全パッケージの依存関係 (特に python パッケージ) なしで、python-rhsm-certificates のみでビルドできるようになっています (BZ#1104332)。

gfs2-utils がバージョン 3.1.9 にリベース

gfs2-utilsパッケージがアップストリームバージョン 3.1.9 に更新され、バグ修正の他、次のような機能が追加されています。
  • fsck.gfs2 のメモリー使用量が低下
  • fsck.gfs2 の拡張属性とリソースグループチェックを改善、修正
  • mkfs.gfs2 が進捗状況をレポートし、長時間の mkfs 操作でこれがアクティブかどうかを確認できます。
  • mkfs.gfs2 の -t オプションで長いクラスター名とファイルシステム名を受け付けます。
  • udev ヘルパースクリプトがインストールされ、取り消されたデバイスをサスペンドすることでハングを回避できます。
  • de_rahead および de_cookie のディレクトリーエントリーフィールド追加されました。
  • gfs2_edit savemeta パフォーマンスの改善
  • glocktop ユーティリティーが追加され、ロック関連のパフォーマンス問題の分析に役立ちます。
  • mkfs.gfs2(8) man ページが改訂されました。
  • rgrplbv および loccookie マウントオプションが gfs2(5) man ページに追加されました。
  • out-of-tree ビルドおよびテストの修正 (BZ#1271674)

system-switch-java がバージョン 1.7 にリベース

system-switch-java パッケージがバージョン 1.7 に更新され、システム用にデフォルトの Java ツールセットを選択する使いやすいツールを提供します。新バージョンは、最新の JDK パッケージに対応するように書き換えられました。主な機能拡張は、Java の複数インストールへの対応、-debug パッケージの追加、JDK 9 のサポートなどです (BZ#1283904)。

特定の Intel マイクロアーキテクチャー向けブランチ予測の最適化

第 2 世代 Xeon Phi および第 3 世代 Atom マイクロアーキテクチャーのブランチ予測は、ブランチとブランチターゲット間の32 ビットオフセットのみをサポートします。ブランチとブランチターゲットに 4 GiB 以上の幅がある場合は、パフォーマンスが非常に低下します。
今回の更新では、LD_PREFER_MAP_32BIT_EXEC 環境変数が設定されている場合、glibc はメインプログラムと共有オブジェクトをアドレス空間の最初の 31 ビットにマッピングし、記述されたアーキテクチャーのパフォーマンスが向上します。この改善では address space layout randomization (ASLR) が低下するので、デフォルトでは有効になっていないことに注意してください (BZ#1292018)。

AVX 512 を使用する Intel ハードウェア向けのメモリールーチンを最適化

今回の更新では、AVX 512 を使用する Intel ハードウェアで、コア C ライブラリー (glibc) へのメモリーコピールーチンが最適化されています。AVX 512 対応のハードウェア上でアプリケーションが C ライブラリーの memcpy()memmove()、または memset() 関数を使用すると、この最適化されたルーチンが自動的に選択されます。
AVX 512 対応のメモリーコピールーチンは、この機能をサポートしている最新の Intel ハードウェアで最高のパフォーマンスを発揮します。特に第 2 世代 Xeon Phi システムがこれに当たります (BZ#1298526)。

memset() ルーチンのパフォーマンス改善

今回の更新では、Intel Xeon v5 サーバーハードウェア向けコア C ライブラリー memset() ルーチンが最適化されています。AMD64 および Intel 64 アーキテクチャー向けの既存 memset() ルーチンは一時的ではないストアを大幅に使用し、このハードウェア機能はハードウェアの各バージョンで均一なパフォーマンスを提供しません。新たな memset() は、Intel Xeon v5 ハードウェアを含む各バージョンですぐれたパフォーマンスを提供します (BZ#1335286)。

glibc での --instLangs オプションのサポート

glibc-common パッケージは、glibc がサポートする全ロケール用のデータを含む大規模なロケールアーカイブを提供します。通常のインストールではこれらロケールのサブセットのみが必要となるので、これらすべてのインストールはリソースを浪費していました。今回の更新では、必要となるロケールのみを含むシステムインストールとコンテナイメージの作成が可能になり、イメージサイズが大幅に削減されます (BZ#1296297)。

IBM POWER8 向け glibc での最適化

今回の更新では、glibc が提供する全ライブラリーが POWER8 ハードウェア上で最適に実行されるようにコンパイルされています。64 ビット IBM POWER7 および POWER8 ハードウェア向けに最適化されたメモリーおよび文字列操作ルーチンがコア C ライブラリー (glibc) に追加されました。strncat()strncmp() といった C ライブラリールーチンをアプリケーションが使用すると、最適化されたルーチンが自動的に選択されます。これら POWER7 および POWER8 対応ルーチンは、最新の IBM ハードウェアで最高のパフォーマンスを発揮します (BZ#1213267、BZ#1183088、BZ#1240351)。

IBM z Systems z13 向け glibc の最適化

コア C ライブラリー (glibc) は、IBM z Systems z13 向けに最適化されたサポートを提供するよう機能拡張されました。strncpy()memcpy() といったコア文字列およびメモリー操作ルーチンはすべて最適化されています。z13 対応のルーチンは、最新の IBM ハードウェアで最高のパフォーマンスを発揮します (BZ#1268008)。

Origin プラグインを sos パッケージに追加

origin プラグインが sos パッケージに追加されました。このプラグインは、OpenShift Origin と、Atomic PlatformOpenShift Enterprise 3 およびそれ以降といった関連製品についての情報を収集します。これを使用することで、ユーザーは OpenShift Origin デプロイメントについての情報を収集できます (BZ#1246423)。

gssproxykrb5 1.14 をサポート

gssproxy パッケージは GSSAPI 認証情報へのアクセスを管理するデーモンを提供すると共に GSSAPI インターポーザープラグインも提供します。これがアップストリームバージョン 0.4.1-10. gssproxy に更新され、バージョン 1.14 の krb5 パッケージをサポートしています (BZ#1292487)。

ABRT reporter-upload ツール向けのオプションの SSH キーファイルを設定できる

この更新により、Automatic Bug Reporting Tool (ABRT) の reporter-upload ユーティリティーで SSH キーを設定できるようになります。キーファイルを指定するには、以下のいずれかの方法を選択します。
  • /etc/libreport/plugins/upload.conf 設定ファイルで SSHPublicKey オプションと SSHPrivateKey オプションの使用を使用する
  • パブリックキーとプライベートキーに対してそれぞれ -b コマンドラインオプションと -r コマンドラインオプションを使用する
  • Upload_SSHPublicKey 環境変数と Upload_SSHPrivateKey 環境変数を設定する
これらのオプションまたは変数が指定されていないと、reporter-upload はユーザーの ~/.ssh/ ディレクトリーからデフォルトの SSH キーを使用します (BZ#1289513)。

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