6.2. コンパイラーおよびツール
SystemTap Dyninst バックエンドは、dyninst-devel
パッケージなしで動作します。
stap --dyninst
コマンドは SystemTap Dyninst バックエンドを使用します。以前のバージョンでは、dyninst-devel
パッケージがインストールされていない場合に、このバックエンドは機能しませんでした。これにより、SystemTap は予期せず終了し、ユーザーは手動で dyninst-devel
をインストールし、回避策として ldconfig
ツールを実行する必要があります。このバグは修正され、SystemTap Dyninst バックエンドは dyninst-devel
パッケージなしで機能するようになりました。
(BZ#1498558)
GDB ブレークポイントのデフォルトソースファイルがシンボリックリンクで機能する
以前は、ファイルがシンボリックリンクの場合、GDB デバッガーは、デフォルトのソースファイルのシンボルテーブル情報を見つけることができませんでした。そのため、ユーザーはソースファイル名を省略し、break 63
などのデフォルトを使用してブレークポイントを設定できませんでした。このバグは修正され、ユーザーはシンボリックリンクの背後にあるファイルのブレークポイントとともにデフォルトのソースファイルを使用できるようになりました。
glibc
の DNS スタブリゾルバーは、hostname-.example.com などの有効なホスト名を拒否します。
glibc
の DNS スタブリゾルバーは、hostname-.example.com などの特定の有効なホスト名を拒否し、無効な名前を受け入れました。そのため、インターネット上の一部のホスト名は解決できませんでした。この問題を修正するため、res hnok
などの DNS 名検証機能は、ユーザーの期待値や仕様に合わせて調整されました。その結果、hostname-.example.com 形式のホスト名は、DNS に存在する場合に正常に解決できるようになりました。
特定の IBM 文字セットから変換する際に アイコンv
がハングしなくなりました。
以前のバージョンでは、IBM930、IBM933、IBM935、IBM937、および IBM393 文字セットの glibc
コンバーターはエラーを返し、無効な冗長なシフトシーケンスに遭遇すると次の入力文字への準備に失敗していました。そのため、これらの文字セットから変換する際に -c
オプションと共に iconv
ツールを使用して、これらの文字を破棄すると、ツールが冗長なシフトシーケンスの最初の発生を越えなくなるため、ツールが応答しなくなることがありました。コンバーターは、これらのシーケンスを受け入れ、正しく続行するように変更されました。これにより、上記の変換が可能になりました。
(BZ#1427734)
iconv
は IBM273 と ISO-8859-1 文字セット間で変換できます。
以前のリリースでは、IBM273 文字セットの glibc
実装は、ISO-8859-1 文字セットと同等ではありませんでした。Unicode 文字 MACRON
の表現がありませんでした。代わりに、MACRON
と同じ視覚的表現を持つ OVERLINE
Unicode 文字を表す対応するバイトを使用します。これにより、glibc
が提供する iconv
ツールを使用して、OVERLINE
文字を含む IBM273 テキストを ISO-8859-1 または ISO-8859-1 テキストに変換します。このバグを修正するために、IBM273 文字セットは
OVERLINE
表現を MACRON
に置き換えることで、ISO-8859-1 文字セットと同等でした。その結果、両方の文字セットで MACRON
Unicode 文字が使用されるようになり、同等となり、ある文字から別の文字に変換してもエラーが発生しなくなりました。
getifaddrs
呼び出しが予期せずにアプリケーションを終了しなくなる
以前では、glibc
ライブラリーの getifaddrs
関数で生成されるネットワークインターフェース一覧には、カーネルでインターフェースが同時に変更された場合、インターフェース名が含まれませんでした。これにより、getifaddrs
を使用するアプリケーションが、このような状況で予期せず終了する可能性がありました。これは修正され、getifaddrs
はリストがカーネルと同一であることを確認できるようになりました。そのため、上記の予期しない終了が発生することはありません。
(BZ#1472832)
暗黙的な機能を再度実行する前に明示的なターゲットを含む Makefile
以前のバージョンでは、Makefile での暗黙的な(パターン)および明示的なターゲットの組み合わせが非推奨になりました。バージョン 3.82 に更新後、make
ビルドツールが混合ターゲットに対してエラーを返しました。そのため、複数のターゲットを含むレガシーの Makefile を使用することはできませんでした。今回の更新で、make
が暗黙のターゲットの前に明示的にターゲットが一覧表示される状況を正しく解析できるようになりました。その結果、一部のレガシー Makefile は変更せずに再度使用できるようになりました。ただし、明示的なターゲットの前に暗黙的なターゲットが依然としてエラーになります。
Makefile における明示的なターゲットおよび暗黙的なターゲットの組み合わせは非推奨となり、新規の Makefile に追加でき ない ことに注意してください。
PCP が、大規模なシステムのすべてのプロセス詳細を報告するようになりました。
以前のリリースでは、Performance Co-Pilot(PCP)ツールキットは、非常に大きなシステムでは特定のプロセスの詳細を報告できませんでした。プロセス詳細ファイルを読み込むコードは、最初の 1024 バイトだけではなく、任意の長さのデータを読み取るように変更されました。その結果、上記の PCP エラーが発生しなくなりました。
特定の実行ファイルでストライピングがクラッシュしなくなりました。
以前のバージョンでは、ストライピングツール に
は、実行可能ファイルの構造に関して、true 以外を前提としていました。そのため、特定の実行ファイルの削除を試みると、予期しない削除が終了される可能性が あり
ます。構造に関する仮定は変更されており、この問題は発生せず、削除
が正常に機能するようになりました。
(BZ#1644632)
libdb
による CPU 消費の最適化
以前の libdb
データベースの更新により、trickle スレッドにおける CPU 消費が過剰になっていました。今回の更新で、CPU 使用率が最適化されました。
passwd --stdin
がパスワードの長さを 79 文字に制限しなくなる
--stdin
オプションを指定して passwd
コマンドを使用してパスワードを変更する場合は、パスワードの長さが 79 文字に制限されます。そのため、標準入力で 79 文字を超えるパスワードを入力すると、最初の 79 文字のみが受け入れられ、警告は表示されませんでした。今回の更新で、passwd
が修正され、プラグ可能な認証モジュール(PAM)で定義されたサイズでパスワードの許容サイズを調整するようになりました。その結果、passwd --stdin
コマンドは 79 文字を超えるパスワードを受け入れるようになりましたが、PAM_MAX_RESP_SIZE - 1
文字以上ではなくなりました。制限を超えた場合、passwd
はエラーを標準エラー出力に報告し、終了コード 1 で終了します。
(BZ#1276570)
fixfiles
が誤って失敗することがなくなりました。
以前は、/etc/selinux/
ファイルに少なくとも 1 つのエントリーが含まれ、fixfiles
_exclude_dirs/etc/selinux/targeted/contexts/files/file_contexts.local
ファイルが存在しない場合に fixfiles スクリプトが失敗しました。今回の更新で、/etc/selinux/targeted/contexts/files/file_contexts.local
の存在要件が削除され、上記のシナリオで fixfiles が正しく機能するようになりました。