第26章 コンパイラーおよびツール
パッケージの選択が system-config-kickstart で機能するようになりました
system-config-kickstart グラフィカルキックスタートファイル作成ユーティリティーのバグにより、ツールがリポジトリーからパッケージ情報をダウンロードできなかったため、パッケージを選択できなくなりました。このバグは修正され、system-config-kickstart でパッケージの選択を再度設定できるようになりました。(BZ#1272068)
NVMe デバイスは、parted および Anaconda
で Unknown
として表示されなくなりました
以前は、Non-Volatile Memory Express (NVMe) デバイスは、インストール中に
Anaconda
インストーラーおよび Parted ストレージ設定ツールによって認識されず、代わりに Model: Unknown (unknown)
というラベルが付けられていました。この更新では、これらのデバイスの認識を可能にするアップストリームパッチがバックポートされ、インストール中にデバイスが NVMe Device (nvme)
として正しく識別されるようになりました。(BZ#1316239)
DBD::MySQL
は、ビッグエンディアンプラットフォームでより小さい整数を正しく送受信できるようになりました。
以前は、
DBD::MySQL
Perl ドライバーは、ビッグエンディアンプラットフォーム上で 64 ビットより小さい整数を誤って処理していました。その結果、IBM Z アーキテクチャー上の特定の変数サイズでは、準備されたステートメントのテストが失敗しました。このバグは修正され、上記の問題が発生しなくなりました。(BZ#1311646)
version
Perl モジュールはテイントされた入力とテイントされたバージョンオブジェクトをサポートするようになりました。
以前は、Perl の
バージョン
モジュールはテイントされた入力を正しく解析できませんでした。その結果、テイントされた変数からバージョンオブジェクトをビルドすると、version->new()
メソッドによって Invalid version format (non-numeric data)
エラーが報告されました。この更新により、テイントされた入力の解析と、テイントされたバージョンのオブジェクトと文字列の出力のサポートが追加されました。(BZ#1378885)
HTTP::Daemon
Perl モジュールが IPv6 をサポートするようになりました
以前は、
HTTP::Daemon
Perl モジュールは IPv6 アドレスをサポートしていませんでした。その結果、IPv6 アドレスで HTTP::Daemon::SSL
サーバーを実行しているときに、Arg length for inet_ntoa
を持つ IPv6 アドレスを出力しようとしてサーバーが予期せず終了しました。エラーメッセージが表示されます。この更新により、HTTP::Daemon
モジュールが IO::Socket::INET
から IO::Socket::IP
モジュールに移植されました。その結果、HTTP::Daemon
は IPv6 アドレスを期待どおりに処理します。(BZ#1413065)
GDB
ではブレークポイントのリストにインライン関数名が表示されます
以前は、
GDB
デバッガーはブレークポイントをリストするときに、インライン化された呼び出し先関数名ではなく呼び出し元関数名を表示していました。その結果、GDB
ユーザーはインライン関数に配置されたブレークポイントを関数名から識別できませんでした。GDB
は、ブレークポイントが設定されたときにインライン呼び出し先関数の名前を保存するように拡張されました。その結果、GDB
はブレークポイントをリストするときにインライン関数の名前を正しく表示するようになりました。(BZ#1228556)
間違った GCC
アライメントによるモジュールのロード時の再配置エラーが修正されました
以前は、
GCC は
2^0 アライメントの .toc
セクションを含むコードを生成していました。その結果、モジュールのロード時に再配置エラーが発生する可能性があります。GCC
は、 2^3 に整列された .toc
セクションを生成するように変更されました。この修正により、このバグが発生するほとんどのケースが解消されます。(BZ#1487434)
gcc
C++ 標準ライブラリーの istream::sentry
オブジェクトは例外をスローしなくなりました
以前は、
gcc
C++ 標準ライブラリーの istream::sentry
オブジェクトは、空白のスキップ中に発生する例外を適切に処理していませんでした。その結果、オブジェクトのコードで予期しない例外が発生する可能性があります。Sentry
クラスのコンストラクターは、例外をキャッチし、istream
オブジェクトのエラー状態を適切に更新するように修正されました。(BZ#1469384)
IBM Power 上の gdb
の複数の修正
以前は、IBM Power アーキテクチャーでは
gdb
デバッガーのさまざまな機能が壊れていました。
- 記録および再生機能が利用できないため、エラーメッセージが表示されるか、以前のレジスター値が復元されません。
- 短いベクトルの戻り値を出力すると、間違った値が表示されました。
- アトミックシーケンスを 1 回ステップオーバーしても実際にはステップオーバーできませんでした。プログラムカウンターは変化しませんでした。
この更新ではこれらの機能が修正されています。(BZ#1480498, BZ#1480496, BZ#1480497)
終了するプロセスからコアをダンプするときに GDB
がクラッシュしなくなりました
以前は、
GDB
デバッガーは、GDB
がプロセスをコアファイルにダンプしている間にプロセスを終了できることを考慮していませんでした。その結果、ダンプされたプログラムが予期しない SIGKILL
シグナルを受信した後に終了すると、gcore ユーティリティーも予期せず終了しました。今回の更新では、この状況に対処できるように GDB
が拡張されました。その結果、GDB
と gcore コマンドが予期せず終了したり、無効なコアファイルが作成されたりすることがなくなりました。(BZ#1493675)
GDB
は VM_DONTDUMP フラグで保護されたメモリーを再びダンプできるようになりました
GNU デバッガー
GDB
への以前の変更により、データセキュリティーを強化するためにプロセスメモリーをダンプするときの gcore コマンドの動作が Linux カーネルの動作により近くなりました。その結果、GDB
のユーザーは VM_DONTDUMP フラグで保護されたメモリーをダンプできませんでした。新しい set dump-excluded-mappings 設定が GDB
に追加され、このフラグを使用したメモリーのダンプが有効になりました。その結果、ユーザーは GDB
を使用してプロセスメモリー全体を再度ダンプできます。(BZ#1518243)
スレッドで CLONE_PTRACE
フラグを使用するプログラムが strace
で実行されるようになりました。
以前は、新しいスレッドに
CLONE_PTRACE
フラグを設定するプログラムは、strace
ツールの動作に ptrace()
関数を使用するため、未定義の動作を引き起こしていました。その結果、そのようなプログラムは追跡できず、適切に実行できませんでした。strace
ツールは、予期しない CLONE_PTRACE
フラグを持つスレッドを無視するように変更されました。その結果、CLONE_PTRACE
を使用するプログラムは strace
で適切に実行されます。(BZ#1466535)
exiv2 はバージョン 0.26 にリベースされました
exiv2 パッケージがアップストリームバージョン 0.26 にアップグレードされ、以前のバージョンに対するバグ修正や機能強化が数多く追加されました。特に、exiv2 には以下が含まれるようになりました。
- Visual Studio の CMake サポート
- 再帰的ファイルダンプ
- ICC プロファイルのサポート
- メタデータパイプ用の
exiv2
コマンド - ユーザーレンズ定義用のレンズファイル
- ユーザー定義のレンズタイプ
- WebP のサポート
完全な変更ログについては、http://www.exiv2.org/changelog.html#v0.26 を参照してください。(BZ#1420227)
gssproxy が ccache を適切に更新するように修正されました
以前は、gssproxy パッケージは、Kerberos 認証情報キャッシュ (ccache) 内のキーバージョン番号 (kvno) の増加を正しく処理していませんでした。その結果、古い ccache は適切に上書きされませんでした。この更新により、gssproxy ccache キャッシュにおけるこれらの問題が修正されます。その結果、cc キャッシュが適切に更新されるようになり、キャッシュによって過剰な更新要求が防止されます。(BZ#1488629)
IBM Power Systems アーキテクチャーのリトルエンディアン版の gcc
は、未使用のスタックフレームを作成しなくなりました
以前は、IBM Power Systems アーキテクチャーのリトルエンディアン版で
gcc
コンパイラーの -pg -mprofile=kernel
オプションを使用すると、リーフ関数用に未使用のスタックフレームが生成される可能性がありました。gcc
コンパイラーが修正され、この状況で未使用のスタックフレームが発生することはなくなりました。(BZ#1468546)
gssproxy のいくつかのバグが修正されました
この更新により、gssproxy パッケージのいくつかのバグが修正されました。バグ修正には、潜在的なメモリーリークと同時実行の問題の防止が含まれます。(BZ#1462974)
BFD
ライブラリーは、バイナリーアドレスをソースコードの位置に変換する機能を取り戻しました
binutils パッケージによる
BFD
ライブラリーへの以前の機能拡張により、DWARF デバッグ情報の解析にバグが発生しました。その結果、BFD
とそれを使用するすべてのツール (gprof や perf など) は、バイナリーファイルのアドレスをソースコード内の位置に変換できませんでした。この更新では、BFD
が修正され、上記の問題が回避されました。その結果、BFD
はバイナリーファイル内のアドレスをソースコード内の位置に期待どおりに変換できるようになりました。
この修正を利用するには、
BFD
ライブラリーを使用するツールを再リンクする必要があることに注意してください。(BZ#1465318)
引数を渡すためにベクトルレジスターを使用するアプリケーションが再び動作するようになりました
以前は、GNU C ライブラリー (
glibc
) のダイナミックローダーには、64 ビット Intel および AMD アーキテクチャーのベクトルレジスターの保存と復元を回避する最適化が含まれていました。そのため、これらのアーキテクチャー向けにコンパイルされ、関数の引数を渡すためにサポートされていないベクトルレジスターを使用し、公開されている x86-64 psABI 仕様に準拠していないアプリケーションは失敗し、予期しない結果が生じる可能性があります。この更新により、ダイナミックローダーが XSAVE
および XSAVEC
コンテキストスイッチ CPU 命令を使用するように変更され、すべてのベクトルレジスターを含むより多くの CPU 状態が保持されます。その結果、x86-64 psABI 仕様ではサポートされていない方法で、引数の受け渡しにベクトルレジスターを使用するアプリケーションが再び動作するようになります。(BZ#1504969)
curl
が HTTP 認証状態を適切にリセットするようになりました。
この更新より前は、HTTP 転送が終了したとき、または curl_easy_reset() 関数が呼び出されたときに、認証状態が適切にリセットされませんでした。その結果、
curl
ツールはリクエスト本文を次の URL に送信しませんでした。今回の更新により、HTTP 転送が行われたとき、または curl_easy_reset()
が呼び出されたときに認証状態が適切にリセットされ、上記の問題は発生しなくなります。(BZ#1511523)
strip
ユーティリティーが再び動作します
以前は、BFD ライブラリーは、IBM Z アーキテクチャーでの NULL ポインターチェックを見逃していました。その結果、
strip
ユーティリティーを実行するとセグメンテーションフォールトが発生しました。このバグは修正され、strip
は想定どおりに機能するようになりました。(BZ#1488889)
f2py
によって生成された Python モジュールのインポートが適切に機能するようになりました。
以前は、ダイナミックリンクローダーがシンボルをグローバルにロードするように設定されている場合、
f2py
ユーティリティーによって生成された Python モジュールをインポートするときにセグメンテーションフォールトが発生しました。この更新により、PyArray_API
シンボルの名前が _npy_f2py_ARRAY_API
に変更され、マルチアレイモジュール内の同じシンボルとの潜在的な競合が防止されます。その結果、f2py
によって生成されたモジュールをインポートしてもセグメンテーション違反が発生しなくなりました。(BZ#1167156)
mailx
がマルチバイト件名を適切にエンコードしていない
以前は、
mailx
メールユーザーエージェントは、MultiPurpose Internet Mail Extension (MIME) 標準にエンコードするときに、非 ASCII メッセージヘッダーをマルチバイト文字の境界で分割しませんでした。その結果、ヘッダーが正しくデコードされませんでした。この更新により、MIME エンコード関数が変更され、ヘッダーがマルチバイト文字の境界でエンコードされた単語に分割されるようになります。その結果、mailx
は適切にデコードできるヘッダーを持つメッセージを送信するようになりました。(BZ#1474130)
--all-logs
オプションが sosreport
で期待どおりに機能するようになりました。
以前は、
--all-logs
オプションは、apache
、nscd
、および sosreport
ユーティリティーの logs
プラグインによって無視されました。このバグは修正され、前述のプラグインは --all-logs を
正しく処理できるようになりました。--all-logs
を使用する場合、--log-size
オプションを使用してログのサイズを制限することは不可能であることに注意してください。これは想定された動作です。(BZ#1183243)
Python スクリプトは、ポートを明示的に設定しながら、プロキシー経由で HTTPS サーバーに正しく接続できるようになりました。
Red Hat Enterprise Linux で提供される Python 標準ライブラリーは、デフォルトで証明書検証を有効にするために以前に更新されました。ただし、バグにより、標準ライブラリーを使用する Python スクリプトは、接続先のポートを明示的に設定する場合、プロキシーを使用して HTTPS サーバーに接続できませんでした。同じバグにより、ユーザーはブートストラップスクリプトを使用してプロキシー経由で Red Hat Satellite 6 に登録することもできませんでした。このバグは修正され、スクリプトは HTTPS サーバーに接続し、期待どおりに Red Hat Satellite を使用して登録できるようになりました。(BZ#1483438)