検索

6.10. コンパイラーおよび開発ツール

download PDF

GCC ツールセット 13: GCC は、ベクトル化を有効にした IBM POWER9、リトルエンディアンでコードを正しくコンパイルできるようになりました。

以前は、ベクトル化を有効にして IBM POWER9 の Little Endian でコードをコンパイルすると、GCC コンパイラーによって誤ったコードが生成されました。エクスパンダー内のレジスター転送言語 (RTL) パターンが修正され、コードが正しくコンパイルされるようになりました。

Jira:RHEL-45190[1]

glibc ダイナミックリンカーは、カスタム malloc 実装からの TLS アクセスを使用するアプリケーションによる再入可能 malloc 呼び出しを防止します。

一部のアプリケーションでは、初期実行 TLS の代わりにグローバル動的スレッドローカルストレージ (TLS) を使用するカスタム malloc 動的メモリー割り当て実装が提供されます。この更新前は、グローバル動的 TLS を使用するバンドルされた malloc 呼び出しを持つアプリケーションでは、アプリケーションの malloc サブシステムへのリエントラント呼び出しが発生する可能性がありました。その結果、スタックの枯渇または内部データ構造の予期しない状態により、アプリケーションの malloc 呼び出しがクラッシュしました。この更新により、glibc 動的リンカーはカスタム malloc 実装からの TLS アクセスを検出するようになりました。malloc 呼び出し中に TLS アクセスが検出されると、TLS 処理中のそれ以降の呼び出しはスキップされ、再入可能な malloc 呼び出しは防止されます。

Jira:RHEL-39992

TLS データは、ELF コンストラクタからの dlopen() 呼び出しによって上書きされなくなりました。

以前は、dlopen() 関数が ELF コンストラクターから呼び出される特定のケースでは、glibc ダイナミックリンカーはスレッドローカルストレージ (TLS) の初期化ステータスを正しく追跡していませんでした。その結果、TLS データはアプリケーションによって変更された後、元の値に戻されました。この更新により、ダイナミックリンカーは個別のフラグを使用して、各共有オブジェクトの TLS 初期化を追跡します。その結果、ELF コンストラクターからの dlopen() 関数の呼び出しによって TLS データが予期せず上書きされることがなくなりました。

Jira:RHEL-36148

Perftools が LTO デバッグ情報の処理に失敗しなくなる

以前は、binutils コレクションの Binary File Descriptor (BFD) ライブラリー (バイナリーファイルからデバッグ情報を読み取るためにパフォーマンスツールによって使用されるライブラリー) が、リンク時最適化 (LTO) が有効な GCC コンパイラーによって生成されたデバッグ情報を処理できませんでした。その結果、LTO デバッグ情報を含むファイルを調べるときに、perftools がエラーメッセージを表示し、正しく実行できませんでした。BFD ライブラリーが更新され、LTO が有効なコンパイル中に生成されたデバッグ情報を処理するようになりました。また、影響を受ける perftools がそのようなデバッグ情報を正常に処理するようになりました。

Jira:RHEL-43758[1]

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.