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


新しいモジュールストリーム: swig:4.1

RHEL 8.8 では、新しいモジュールストリーム swig:4.1 として利用できる、SWIG (Simplified Wrapper and Interface Generator) バージョン 4.1 が導入されました。

RHEL 8.4 でリリースされた SWIG 4.0 と比較すると、SWIG 4.1 は次のとおりです。

  • Node.js バージョン 12 - 18 のサポートを追加し、Node.js バージョン 6 より前のサポートを削除します。
  • PHP 8 のサポートを追加します。
  • PHP C API を通じて完全に PHP ラッピングを処理し、デフォルトでは .php ラッパーを生成しなくなりました。
  • Perl 5.8.0 以降のバージョンのみをサポートします。
  • Python バージョン 3.9 から 3.11 のサポートを追加します。
  • Python 3.3 以降の Python 3 バージョンと Python 2.7 のみをサポートします。
  • Python で生成されたコードにおけるさまざまなメモリーリークの修正を提供します。
  • C99、C++11、C++14、および C++17 標準のサポートが向上し、C++20 標準の実装が開始されます。
  • C++ std::unique_ptr ポインタークラスのサポートを追加します。
  • C++ テンプレートの処理に複数の小さな改善が含まれています。
  • さまざまなケースでの C++ 宣言の使用法を修正しました。

swig:4.1 モジュールストリームをインストールするには、以下を使用します。

# yum module install swig:4.1

以前の swig モジュールストリームからアップグレードするには、後続のストリームへの切り替え を参照してください。

swig モジュールストリームのサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。

Bugzilla:2139076

新しいモジュールストリーム: jaxb:4

RHEL 8.8 では、新しい jaxb:4 モジュールストリームとして Jakarta XML Binding (JAXB) 4 が導入されています。JAXB は、開発者が Java クラスを XML 表現にマッピングしたり、XML 表現からマッピングしたりできるようにするフレームワークです。

jaxb:4 モジュールストリームをインストールするには、以下を使用します。

# yum module install jaxb:4

Bugzilla:2055539

GCC Toolset 12 の更新

GCC Toolset 12 は最新バージョンの開発ツールを提供するコンパイラーツールセットです。このツールセットは、AppStream リポジトリーにおいて、Software Collection の形式で、Application Streams として利用できます。

RHEL 8.8 で導入された注目すべき変更点は次のとおりです。

  • GCC コンパイラーがバージョン 12.2.1 に更新され、アップストリームの GCC で利用可能なバグ修正および機能拡張が数多く追加されました。
  • annobin がバージョン 11.08 に更新されました。

以下のツールおよびバージョンは、GCC Toolset 12 で利用できます。

ツールバージョン

GCC

12.2.1

GDB

11.2

binutils

2.38

dwz

0.14

annobin

11.08

GCC Toolset 12 をインストールするには、root で以下のコマンドを実行します。

# yum install gcc-toolset-12

GCC Toolset 12 のツールを実行するには、以下のコマンドを実行します。

$ scl enable gcc-toolset-12 tool

GCC Toolset バージョン 12 のツールバージョンが、このようなツールのシステムバージョンをオーバーライドするシェルセッションを実行するには、次のコマンドを実行します。

$ scl enable gcc-toolset-12 bash

詳細は、GCC ツールセット 12 を参照してください。

Bugzilla:2110582

glibc のセキュリティー強化が追加されました。

SafeLinking 機能が glibc に追加されました。その結果、アロケーターのスレッドローカルキャッシュなど、特定の単一リンクリストの破損に対する malloc ファミリー関数の保護が向上します。

Bugzilla:1871383

glibc 動的ローダーのアルゴリズムが改善されました。

共有オブジェクトの依存関係が深くネストされている場合、共有オブジェクトを処理するための glibc 動的ローダーの O(n3) アルゴリズムにより、アプリケーションの起動時間とシャットダウン時間が遅くなることがありました。この更新により、動的ローダーのアルゴリズムが改善され、深さ優先検索 (DFS) が使用されるようになりました。その結果、共有オブジェクトの依存関係が深くネストされている場合、アプリケーションの起動時間とシャットダウン時間が大幅に改善されます。

動的ローダーの O(n3) アルゴリズムは、glibc ランタイム調整可能パラメーター glibc.rtld.dynamic_sort を使用して選択できます。調整可能パラメーターのデフォルト値は 2 です。この値は新しい DFS アルゴリズムを表します。互換性のために以前の O(n3) アルゴリズムを選択するには、調整可能パラメーターを 1 に設定します。

# GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1
# export GLIBC_TUNABLES

Bugzilla:1159809

LLVM Toolset がバージョン 15.0.7 にリベースされました。

LLVM Toolset がバージョン 15.0.7 に更新されました。主な変更点は、以下のとおりです。

  • -Wimplicit-function-declaration および -Wimplicit-int 警告は、C99 以降ではデフォルトで有効になっています。これらの警告は、Clang 16 以降ではデフォルトでエラーになります。

Bugzilla:2118568

Rust Toolset がバージョン 1.66.1 にリベースされました。

Rust Toolset がバージョン 1.66.1 に更新されました。主な変更点は、以下のとおりです。

  • thread::scope API は、新しく生成されたスレッドによってローカル変数を安全に借用できる字句スコープを作成します。また、それらのスレッドはスコープが終了する前にすべて終了することが保証されます。
  • hint::black_box API はコンパイラーの最適化に障壁を追加します。これは、他の方法では最適化されてしまう可能性のあるベンチマークの動作を維持するのに役立ちます。
  • .await キーワードは、forIntoIterator の関係と同様に、IntoFuture 特性を使用して変換を行うようになりました。
  • ジェネリック関連型 (GAT) を使用すると、特性にジェネリックパラメーターを持つ型エイリアスを含めることができ、型と有効期間の両方にわたる新しい抽象化が可能になります。
  • 新しい let-else ステートメントでは、条件付きパターンマッチングでローカル変数をバインドし、パターンが一致しない場合に分岐 else ブロックを実行できます。
  • ラベル付きブロックを使用すると、オプションで式の値を追加して、break ステートメントはブロックの末尾にジャンプできます。
  • rust-analyzer は言語サーバープロトコルの新しい実装であり、多くのエディターで Rust のサポートを可能にします。これは以前の rls パッケージを置き換えますが、rust-analyzer に移行するにはエディターの設定を調整する必要がある場合があります。
  • Cargo には、Cargo.toml から依存関係を削除するための新しい cargo remove サブコマンドがあります。

Bugzilla:2123899

Go Toolset がバージョン 1.19.4 にリベースされました。

Go Toolset がバージョン 1.19.4 に更新されました。主な変更点は、以下のとおりです。

  • 次のパッケージに対するセキュリティー修正:

    • crypto/tls
    • mime/multipart
    • net/http
    • path/filepath
  • バグ修正:

    • go コマンド
    • リンカー
    • ランタイム
    • crypto/x509 パッケージ
    • net/http パッケージ
    • time パッケージ

Bugzilla:2174430

tzdata パッケージには /usr/share/zoneinfo/leap-seconds.list ファイルが含まれるようになりました。

以前は、tzdata パッケージには、/usr/share/zoneinfo/leapseconds ファイルのみが同梱されていました。一部のアプリケーションは、/usr/share/zoneinfo/leap-seconds.list ファイルによって提供される代替形式に依存しているため、エラーが発生する可能性があります。

今回の更新により、tzdata パッケージには両方のファイルが含まれるようになり、どちらの形式に依存するアプリケーションもサポートされるようになりました。

Bugzilla:2154109

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.