Red Hat Training

A Red Hat training course is available for RHEL 8

16.5. コンパイラーおよび開発ツールにおける互換性に影響を与える変更

librtkaio が削除される

この更新では、librtkaio ライブラリーが削除されました。このライブラリーは、ファイルへの高パフォーマンスのリアルタイム非同期 I/O アクセスを提供していました。これは、Linux の KAIO (kernel Asynchronous I/O) サポートに基づいています。

削除の結果は以下のようになります。

  • librtkaio を読み込む LD_PRELOAD メソッドを使用するアプリケーションは、不明なライブラリーに関する警告を表示し、代わりに librt ライブラリーを読み込み、適切に実行します。
  • librtkaio を読み込む LD_LIBRARY_PATH メソッドを使用するアプリケーションは、代わりに librt ライブラリーを読み込んで適切に実行し、警告は表示されません。
  • dlopen() システムコールを使用するアプリケーションでは、代わりに librtkaiolibrt ライブラリーを直接読み込みます。

librtkaio のユーザーには以下のオプションがあります。

  • 自身のアプリケーションを変更せずに、上記のフォールバックメカニズムを使用。
  • librt ライブラリーを使用するようにアプリケーションのコードを変更。互換性のある POSIX 準拠 API が提供されます。
  • 互換性のある API を提供する libaio ライブラリーを使用するようにアプリケーションのコードを変更。

特定の条件では、librtlibaio の両方が、同じ機能および性能を提供します。

Red Hat 互換性レベルは、libaio パッケージが 2 になります。librtk と削除された librtkaio の場合は 1 です。

詳細は Changes/GLIBC223 librtkaio removal を参照してください。

Sun RPC インターフェイスおよび NIS インターフェイスが glibc から削除される

glibc ライブラリーは、新しいアプリケーションに Sun RPC および NIS のインターフェイスを提供しなくなりました。このインターフェイスは、レガシーアプリケーションを実行する場合にのみ利用できるようになりました。開発者は、Sun RPC の代わりに libtirpc ライブラリー、そして NIS の代わりに libnsl2 ライブラリーを使用するようにアプリケーションを変更する必要があります。アプリケーションは、置換ライブラリーの IPv6 サポートを利用します。

32 ビット Xen の nosegneg ライブラリーが削除される

glibc i686 パッケージは、以前は代替の glibc ビルドに含まれており、負のオフセット (nosegneg) を使用して、スレッド記述子セグメントレジスターの使用を回避していました。この代替ビルドは、ハードウェアの仮想化サポートを使用せず、フル準仮想化のコストを削除するための最適化として、32 ビットバージョンの Xen Project ハイパーバイザーでのみ使用されます。この代替ビルドはこれ以上使用されず、削除されます。

make の新しい演算子 != を使用すると一部の makefile の既存構文で解釈が異なる

BSD makefile との互換性を高める $(shell …​) 関数の代わりに、シェル代入演算子 != が GNU make に追加されました。これにより、variable!=value のように、感嘆符で終わり、その後に代入が続く名前の変数は、新しいシェル割り当てとして解釈されるようになりました。以前の動作に戻すには、variable! =value のように、感嘆符の後にスペースを追加します。

演算子と関数の詳細と相違点は、GNU の make マニュアルを参照してください。

MPI デバッグサポート用 valgrind ライブラリーが削除される

valgrind-openmpi パッケージが提供する Valgrindlibmpiwrap.so ラッパーライブラリーが削除されました。このライブラリーにより、MPI (Message Passing Interface) を使用して、Valgrind がプログラムをデバッグできるようになりました。このライブラリーは、以前のバージョンの Red Hat Enterprise Linux の Open MPI 実装バージョンに固有です。

libmpiwrap.so を使用する場合は、MPI 実装およびバージョンに固有のアップストリームソースから独自のバージョンを構築することが推奨されます。LD_PRELOAD 技術を使用して、カスタムビルドのライブラリーを Valgrind に提供します。

開発用ヘッダーおよび静的ライブラリーが valgrind-devel から削除される

valgrind-devel サブパッケージは、カスタムの valgrind ツールを開発する開発ファイルを追加するために使用されていました。このファイルには保証された API がないため、この更新によりこのファイルが削除され、静的なリンクが必要となり、サポート対象外となります。valgrind-devel パッケージには、valgrind が有効なプログラムや、valgrind.hcallgrind.hdrd.hhelgrind.hmemcheck.h などのヘッダーファイルに対する開発ファイルが含まれます。このファイルは安定しており、十分にサポートされます。