第5章 補足
5.1. コンパイラーおよび開発ツールにおける互換性に影響を与える変更
librtkaio が削除される
この更新では、librtkaio ライブラリーが削除されました。このライブラリーは、ファイルへの高パフォーマンスのリアルタイム非同期 I/O アクセスを提供していました。これは、Linux の KAIO (kernel Asynchronous I/O) サポートに基づいています。
削除の結果は以下のようになります。
-
librtkaio を読み込む
LD_PRELOAD
メソッドを使用するアプリケーションは、不明なライブラリーに関する警告を表示し、代わりに librt ライブラリーを読み込み、適切に実行します。 -
librtkaio を読み込む
LD_LIBRARY_PATH
メソッドを使用するアプリケーションは、代わりに librt ライブラリーを読み込んで適切に実行し、警告は表示されません。 -
dlopen()
システムコールを使用するアプリケーションでは、代わりに librtkaio が librt ライブラリーを直接読み込みます。
librtkaio のユーザーには以下のオプションがあります。
- 自身のアプリケーションを変更せずに、上記のフォールバックメカニズムを使用。
- librt ライブラリーを使用するようにアプリケーションのコードを変更。互換性のある POSIX 準拠 API が提供されます。
- 互換性のある API を提供する libaio ライブラリーを使用するようにアプリケーションのコードを変更。
特定の条件では、librt と libaio の両方が、同じ機能および性能を提供します。
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
パッケージが提供する Valgrind の libmpiwrap.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.h
、callgrind.h
、drd.h
、helgrind.h
、memcheck.h
などのヘッダーファイルに対する開発ファイルが含まれます。このファイルは安定しており、十分にサポートされます。