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 などのデフォルトを使用してブレークポイントを設定できませんでした。このバグは修正され、ユーザーはシンボリックリンクの背後にあるファイルのブレークポイントとともにデフォルトのソースファイルを使用できるようになりました。

(BZ#1639077)

glibc の DNS スタブリゾルバーは、hostname-.example.com などの有効なホスト名を拒否します。

glibc の DNS スタブリゾルバーは、hostname-.example.com などの特定の有効なホスト名を拒否し、無効な名前を受け入れました。そのため、インターネット上の一部のホスト名は解決できませんでした。この問題を修正するため、res hnok などの DNS 名検証機能は、ユーザーの期待値や仕様に合わせて調整されました。その結果、hostname-.example.com 形式のホスト名は、DNS に存在する場合に正常に解決できるようになりました。

(BZ#1039304)

特定の 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 文字が使用されるようになり、同等となり、ある文字から別の文字に変換してもエラーが発生しなくなりました。

(BZ#1591268)

getifaddrs 呼び出しが予期せずにアプリケーションを終了しなくなる

以前では、glibc ライブラリーの getifaddrs 関数で生成されるネットワークインターフェース一覧には、カーネルでインターフェースが同時に変更された場合、インターフェース名が含まれませんでした。これにより、getifaddrs を使用するアプリケーションが、このような状況で予期せず終了する可能性がありました。これは修正され、getifaddrs はリストがカーネルと同一であることを確認できるようになりました。そのため、上記の予期しない終了が発生することはありません。

(BZ#1472832)

暗黙的な機能を再度実行する前に明示的なターゲットを含む Makefile

以前のバージョンでは、Makefile での暗黙的な(パターン)および明示的なターゲットの組み合わせが非推奨になりました。バージョン 3.82 に更新後、make ビルドツールが混合ターゲットに対してエラーを返しました。そのため、複数のターゲットを含むレガシーの Makefile を使用することはできませんでした。今回の更新で、make が暗黙のターゲットの前に明示的にターゲットが一覧表示される状況を正しく解析できるようになりました。その結果、一部のレガシー Makefile は変更せずに再度使用できるようになりました。ただし、明示的なターゲットの前に暗黙的なターゲットが依然としてエラーになります。

Makefile における明示的なターゲットおよび暗黙的なターゲットの組み合わせは非推奨となり、新規の Makefile に追加でき ない ことに注意してください。

(BZ#1582545)

PCP が、大規模なシステムのすべてのプロセス詳細を報告するようになりました。

以前のリリースでは、Performance Co-Pilot(PCP)ツールキットは、非常に大きなシステムでは特定のプロセスの詳細を報告できませんでした。プロセス詳細ファイルを読み込むコードは、最初の 1024 バイトだけではなく、任意の長さのデータを読み取るように変更されました。その結果、上記の PCP エラーが発生しなくなりました。

(BZ#1600262)

特定の実行ファイルでストライピングがクラッシュしなくなりました。

以前のバージョンでは、ストライピングツール は、実行可能ファイルの構造に関して、true 以外を前提としていました。そのため、特定の実行ファイルの削除を試みると、予期しない削除が終了される可能性が あり ます。構造に関する仮定は変更されており、この問題は発生せず、削除 が正常に機能するようになりました。

(BZ#1644632)

libdb による CPU 消費の最適化

以前の libdb データベースの更新により、trickle スレッドにおける CPU 消費が過剰になっていました。今回の更新で、CPU 使用率が最適化されました。

(BZ#1608749)

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/ fixfiles _exclude_dirs ファイルに少なくとも 1 つのエントリーが含まれ、/etc/selinux/targeted/contexts/files/file_contexts.local ファイルが存在しない場合に fixfiles スクリプトが失敗しました。今回の更新で、/etc/selinux/targeted/contexts/files/file_contexts.local の存在要件が削除され、上記のシナリオで fixfiles が正しく機能するようになりました。

(BZ#1647714)