8.2. コンパイラーおよびツール

RHEL に同梱される GCC スレッドサニタイザーが動作しない

カーネルメモリーマッピングにおける非互換性変更により、RHEL の GNU C Compiler (GCC) コンパイラーのバージョンに同梱されるスレッドサニタイザーが動作しなくなりました。さらには、スレッドサニタイザーが互換性のないメモリーレイアウトには適用されません。これにより、RHEL に同梱される GCC スレッドサニタイザーは使用されなくなります。

回避策として、コードのビルドには、Red Hat Developer Toolset に同梱されるバージョンの GCC を使用してください。ここでは、スレッドサニタイザーが使用されています。

(BZ#1569484)

SystemTap のコンテキスト変数が常にアクセスできない

GCC コンパイラーでデバッグ情報の生成にはいくつかの制限があります。これにより、SystemTap ツールを使用して作成された実行ファイルを分析する際に、$foo の形式で一覧表示されるコンテキスト変数にアクセスすることが多くなります。この制限を回避するには、$HOME/.systemtap/rc ファイルに -P オプションを追加します。これにより、SystemTap は常に Prologue-searching ヒューリスティックを選択します。その結果、一部のコンテキスト変数にアクセスできるようになります。

(BZ#1714480)

KEYBD トラップを使用した ksh がマルチバイト文字を誤って処理

Korn Shell (KSH) は、KEYBD トラップが有効な場合にマルチバイト文字を正しく処理できません。したがって、たとえばユーザーが日本語の文字を入力すると、ksh には間違った文字列が表示されます。この問題を回避するには、以下の行をコメントアウトして、/etc/kshrc ファイルの KEYBD トラップを無効にします。

trap keybd_trap KEYBD

詳細は、ナレッジベースソリューション ksh displays multibyte characters incorrectly when 'KEYBD trap' is enabled in profile file を参照してください。

(BZ#1503922)

RHEL 7.6 バージョンからの PCP のアップグレード時のエラー

pcp パッケージを RHEL 7.6 から RHEL 7.7 バージョンにアップグレードすると、yum は以下のエラーメッセージを返します。

Failed to resolve allow statement at /etc/selinux/targeted/tmp/modules/400/pcpupstream/cil:83
semodule:  Failed!

この無害なメッセージは無視しても問題ありません。これは、更新されたパッケージではなく、pcp の RHEL 7.6 ビルドのバグが原因です。RHEL 7.7 の PCP 機能は影響を受けません。

(BZ#1781692)