第3章 コンパイラーおよびツール
GCC が System z バイナリーでのホットパッチに対応している
gcc の
hotpatch
属性は、System z バイナリーでマルチスレッドコードのオンラインパッチ適用のサポートを実装します。今回の更新で、function 属性を使用してホットパッチを適用する特定の機能を選択し、the -mhotpatch= コマンドラインオプションを使用してすべての機能のホットパッチを有効化できるようになりました。
ホットパッチを有効にすると、ソフトウェアのサイズとパフォーマンスに悪影響を及ぼすため、特定の機能にはホットパッチを適用し、一般的にホットパッチサポートを有効にしないことが推奨されます。
TLS バージョンの curl サポートの変更
この更新では、NSS によってネゴシエートされる TLS プロトコルのマイナーバージョンを指定するために、curl の新しい options--
tlsv1
. 0
、--tlsv
1.2 および--tlsv1.2 が導入されています。対応する CURL_SSLVERSION_TLSv1_0、CURL_SSLVERSION_TLSv1_1、および CURL_SSLVERSION_TLSv1_2 定数が、この目的のために libcurl
API で導入されました。curl の既存の existing- tlsv1
オプション、および lib curl API の CURL_SSLVERSION_TLSv1 定数のセマンティクスが変更され、クライアントとサーバーの両方でサポートされている最大の TLS 1.x プロトコルをネゴシエートするように変更されました。
Python ConfigParser は値なしでオプションを適切に処理します
Python ConfigParser は各オプションの値を必要とするように設計されていますが、
my.cnf
などの一部の設定ファイルには、値のないオプションが含まれています。その結果、ConfigParser はこのような設定ファイルを読み取ることができませんでした。この機能は Python 2.6.6 にバックポートされ、ConfigParser は値のないオプションが含まれる設定ファイルを読み取ることができるようになりました。
tcpdump は -J、-j、および --time-stamp-precision オプションをサポートします。
kernel, および libpcap はナノ秒の解像度のタイムスタンプを取得するための API を提供するようになり、この機能を利用するように tcpdump が更新されました。ユーザーは、利用可能なタイムスタンプソース(-J)をクエリーし、特定のタイムスタンプソース(-j)を設定して、指定の解像度でリクエストのタイムスタンプを設定できるようになりました(--time-stamp-precision)。
SCSI デバイス間でデータをコピーするためのユーティリティーの改善
sg3_utils パッケージに、SCSI プロトコルのメリットをもたらすストレージデバイス間でデータをコピーするためのより効率的なユーティリティーが導入されました。この機能を有効にするには、sg_xcopy および sg_copy_results プログラムが sg3_utils パッケージにバックポートされました。
ethtool はカスタム RSS ハッシュキーの定義をサポートしています
RSS のカスタムハッシュキーを定義できるように、ethtool に改善が追加されました。この改善により、受信されるトラフィックに応じて受信キューを使用できるようになり、予想されるトラフィックに適したキーを選択することで、パフォーマンスおよびセキュリティーの強化が可能になります。
Setdirection のサポートが tcpdump に追加されました。
tcpdump パッケージには setdirection サポートが含まれるようになりました。これにより、-P フラグの引数として、受信パケット(-P 内)のみ、送信パケット(-P out)、またはその両方(-P inout)だけをキャプチャーできるようになりました。
sysctl がシステムディレクトリーのグループから読み取れるようになりました。
今回の更新で、
sysctl
ユーティリティーに new- system オプションが追加されました。このオプションにより、sysctl はシステムディレクトリーのグループから設定ファイルを処理できます。
アップストリームバージョン 109 にアップグレードされた mcelog パッケージ
mcelog パッケージがアップストリームバージョン 109 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。特に、mcelog が Intel Core i7 CPU アーキテクチャーに対応するようになりました。
biosdevname は、アップストリームバージョン 0.6.2 にアップグレード
biosdevname パッケージはアップストリームバージョン 0.6.2 にアップグレードされ、その他の機能も、新しい Mellanox ドライバーの
dev_port
属性を提供し、FCoE デバイスの命名を無視できるようになりました。
PCRE ライブラリーの改良点
バイナリーファイルが有効な UTF-8 シーケンスではない場合に、grep ユーティリティーが PCRE から一致する障害から回復できるように、以下の機能が PCRE ライブラリーにバックポートされました。
- pcre_exec ()関数は、範囲外の開始オフセット値をチェックし、PCRE_ERROR_NOMATCH エラーまたは無限にループする代わりに、PCRE_ERROR_BADOFFSET エラーを報告するようになりました。
- pcre_exec ()関数が無効な UTF-8 サブジェクト文字列で UTF-8 一致を実行し、ovector 配列引数が十分に大きい場合、無効な UTF-8 バイトの最初のサブジェクト文字列のオフセットと詳細な理由コードが ovector 配列要素で返されます。さらに、pcretest ユーティリティーを使用して、これらの詳細を表示できるようになりました。今回の更新で、pcre_compile ()関数は、最後のバイトではなく、最初の無効な UTF-8 バイトを報告することに注意してください。また、公開用途を目的としていない pcre_valid_utf8 ()関数の署名が変更されている点に注意してください。最後に、pcretest ユーティリティーが、人間が判読できるエラーメッセージをエラーコードに追加することに注意してください。
glibc Dynamic Loader での Intel AVX-512 のサポート
glibc 動的ローダーが Intel AVX-512 拡張機能をサポートするようになりました。今回の更新で、動的ローダーが AVX-512 レジスターを保存および復元できるようになり、AVX-512 対応アプリケーションも AVX-512 を使用する監査モジュールが原因で失敗しなくなります。
Valgrind が Intel MPX 命令を認識する
Valgrind は、MPX bnd 接頭辞を使用して Intel Memory Protection Extensions (MPX)命令または指示を認識しませんでした。そのため、Valgrind は、SIGKILL シグナルで MPX 命令を使用したプログラムを終了しました。Valgrind は新しい MPX 命令と bnd 接頭辞を認識するようになりました。現在、すべての新しい MPX 命令は操作命令がないため実装されており、bnd 接頭辞は無視されます。その結果、MPX 命令または Valgrind 接頭辞を使用するプログラムは、MPX が CPU で有効にされず、終了しなくなったかのように、Valgrind で実行されます。
フリーは、人間が判読できる出力をサポートします
free
ユーティリティーに new -h オプションが追加されました。このオプションの目的は、ユニットを含む 3 桁の短い表現に自動的にスケーリングされたすべての出力フィールドを表示することです。これにより、出力を便利に判読できます。
W は -i オプションをサポートします
w
ユーティリティーには、FROM 列にホスト名の代わりに IP アドレスを表示する the -i オプションが含まれるようになりました。
vim rebase to version 7.4
vim パッケージがアップストリームバージョン 7.4 に更新され、以前のバージョンに対するさまざまなバグ修正および機能拡張が提供されるようになりました。注目すべき変更点は次のとおりです。
- Vim テキストエディターは、undofile オプションを設定して有効にできる変更の永続的な復元をサポートするようになりました。デフォルトでは、バッファーをアンロードするとき、Vim はそのバッファー用に作成された変更のツリーを破棄します。ただし、変更の永続的な復元を有効にすると、Vim は自動的に変更の履歴を保存し、バッファーを再度開いた後に復元します。
- 今回の更新で、新しい正規表現エンジンが導入されました。以前のエンジンはバックトラッキングアルゴリズムを使用していました。パターンは 1 つの方法でテキストと照合され、この試行に失敗すると、そのパターンが別の方法で一致していました。このエンジンは単純なパターンで正しく動作しましたが、長いテキストの複雑なパターンと一致することは大幅に時間がかかりました。新規エンジンは状態マシンロジックを使用します。現在の文字で考えられる代替をすべて試行し、パターンの考えられる状態を保存します。このプロセスは単純なパターンでは少し遅くなりますが、より長いテキストに対する複雑なパターンの一致がより速くなります。最も注目すべきは、この変更によって、長い行を持つ JavaScript および XML ファイルの構文が強調表示されることです。