この付録では、このマニュアルに追加された新機能や更新された事項、およびそれらがどのリリースで追加されたかの概要を示します。
使用されない依存関係を、ldd(1) を使用して特定できるようになりました (-u オプションを参照)。
さまざまな ELF ABI の拡張が追加され、関連する記述が更新されました。「初期設定および終了セクション」、「初期設定および終了ルーチン」、表 7-4、表 7-7、表 7-14、表 7-15、「セクショングループ」、表 7-17、表 7-22、表 7-43、表 7-44、「プログラムの読み込み (プロセッサ固有)」を参照。
_32 および _64 の形式が追加されたことにより、リンカー特有の環境変数の使用における柔軟性が大幅に向上しました。「環境変数」を参照。
動的オブジェクトの $ORIGIN (「関連する依存関係の配置」を参照) が dlinfo(3DL) から入手できます。
crle(1) で作成された実行時構成ファイルの管理が、構成ファイルの作成に使用されたコマンドラインオプションの表示、および機能の更新によって簡単になりました (-u オプションを参照) 。
実行時リンカーおよびデバッガインタフェースが拡張され、プロシージャリンクテーブルエントリの解決を検出できるようになりました。この拡張は、新しいバージョンナンバーで識別することができます。「エージェント操作」の rd_init() を参照。この更新により rd_plt_info_t 構造体が機能拡張されます。「プロシージャのリンクテーブルのスキップ」の rd_plt_resolution() を参照。
新しい mapfile セグメント記述子 STACK を使用してアプリケーションスタックを非実行可能プログラムに定義することができます。「セグメントの宣言」を参照。
実行時リンカーが、環境変数 LD_BREADTH
を無視します。「初期設定および終了ルーチン」を参照。
実行時リンカーとそのデバッガインタフェースが拡張され、実行時分析とコアファイル分析が改善されました。この更新は、新しいバージョンナンバーで識別することができます。「エージェント操作」の rd_init() を参照。この更新により rd_loadobj_t 構造体が拡張されます。「読み込み可能オブジェクトの走査」を参照。
ディスプレイスメント再配置されたデータがコピー再配置で使用されるか、使用される可能性があることを検査する機能が提供されます。「ディスプレイスメント再配置」を参照。
64 ビットフィルタが、リンカーの -64 オプションを使用してマップファイルから単独で構築できます。「標準フィルタの生成」を参照。
$ORIGIN 動的文字列トークンの拡張がなぜセキュアアプリケーション内に限定されるのかの説明が追加されました。「セキュリティ」を参照。
dlsym(3DL) と dlinfo(3DL) 検索の方法が新しいハンドル RTLD_SELF によって拡張されました。
動的オブジェクトの再配置に使用される実行時シンボル検索メカニズムを、各動的オブジェクト内に直接結合情報を確立することによって、大幅に削減することができます。「外部結合」および 「直接結合」を参照。
ファイルを前もってロードすることのできるセキュリティ保護されたディレクトリが、32 ビットオブジェクトの場合は /usr/lib/secure、64 ビットオブジェクトの場合は /usr/lib/secure/64 となりました。「セキュリティ」を参照。
リンカーの -z nodefaultlib オプションおよび新ユーティリティ crle(1) によって作成される実行時構成ファイルを使用することにより、実行時リンカーの検索パスを変更する柔軟性が向上しました。「実行時リンカーが検索するディレクトリ」および 「デフォルトの検索パスの設定」を参照してください。
新しい extern mapfile 指示文により、-z defs の使用に外部的に定義されたシンボルを提供します。「追加シンボルの定義」を参照。
新しい $ISALIST、$OSNAME、および $OSREL 動的ストリングトークンにより、命令セット固有およびシステム固有の依存関係を確立する際の柔軟性が向上しました。「動的ストリングトークン」を参照。
リンカーの -Bsymbolic オプションの使用に関する注意が、「-Bsymbolic の使用」に追加されました 。
リンカーの -p および -P オプションにより、実行時リンク監査ライブラリを呼び出す方法が追加されました。「ローカル監査の記録 」を参照。実行時リンク監査インタフェース la_activity() および la_objsearch()が追加されました。「監査インタフェースの関数」を参照。
新しい動的セクションタグ DT_CHECKSUM により、ELF ファイルとコアイメージとの統合が可能になりました。表 7-43 を参照。
64 ビット ELF オブジェクト形式がサポートされるようになりました。詳細は、「ファイル形式」を参照してください。64 ビット処理のためのリンカーの拡張機能および相違点には、以下のものがあります。/usr/lib/64 の使用 (「リンカーが検索するディレクトリ」、「実行時リンカーが検索するディレクトリ」、および 「命名規約」を参照)、環境変数 LD_LIBRARY_PATH_64
(「環境変数の使用」および 「実行時リンカーによって検索されるディレクトリ」を参照)、および実行時リンカー /usr/lib/64/ld.so.1 (「概要」を参照) 。
リンカーの -z combreloc オプションを使用することによって、最適化された再配置セクションを使用して共有オブジェクトを構築できます。「再配置セクションの結合」を参照。
新しい $ORIGIN 動的ストリングトークンにより、バンドルされていないソフトウェア内に依存関係を確立する際の柔軟性が向上しました。「動的ストリングトークン」を参照。
共有オブジェクトの読み込みは、実行プログラムが実際にそのオブジェクトを参照するまで延期することができます。「動的依存関係のレイジーローディング」を参照。
重複して定義されたシンボルの除去に対処するために、SHT_SUNW_COMDAT セクションが追加されました。「Comdat セクション」を参照。
シンボルの部分的な初期化に対処するため、SHT_SUNW_move セクションが追加されました。「移動セクション」を参照。
実行時リンク監査のインタフェース la_symbind64()、la_sparcv9_pltenter()、および la_pltexit64() が、新しいリンク監査フラグ LA_SYMB_ALTVALUE とともに付加されました。「監査インタフェースの関数」を参照。
ウィークシンボルリファレンスは、リンカーの -z weakextract オプションを使用することにより、アーカイブ構成要素の抽出をトリガーできます。すべてのアーカイブ構成要素の抽出は、-z allextract オプションを使用して実行できます。「アーカイブ処理」を参照。
作成されるオブジェクトが参照しないリンク編集の一部として指定された共有オブジェクトは、リンカーの -z ignore オプションを使用して無視することができ、したがって、その共有オブジェクトの依存関係の記録も減らすことができます。「共有オブジェクトの処理」を参照。
リンカーが、予約シンボル _START_ および _END_ を生成し、オブジェクトのアドレス範囲を確立する方法を提供します。「出力イメージの生成」を参照。
初期設定および終了コードの実行時の順序に変更が加えられ、依存関係の要件をより良く満たすようになりました。「初期設定および終了ルーチン」を参照。
シンボル解析の方法が、dlopen(3DL) 用に拡張されました。「シンボル検索」、「グループの分離」の RTLD_GROUP、および 「オブジェクト階層」の RTLD_PARENT を参照。
シンボル検索の方法が、RTLD_DEFAULT を処理する新しい dlsym(3DL) により拡張されました。「デフォルトのシンボル検索モデル」を参照。
フィルタ処理が拡張され、複数のフィルティーが定義できるようになり、さらに強制的に読み込まれるフィルティーが使用できるようになりました。プラットフォーム固有のフィルタを作成する場合の例も提供されました。「フィルタとしての共有オブジェクト」を参照。
mapfile ファイル制御指示語 $ADDVERS を使用すると、追加されたバージョン依存関係の記録が実行できます。「追加バージョン定義への結合」を参照。
実行時リンカーの監査インタフェースで、プロセスの内部から動的にリンクされたアプリケーションの監視および変更のサポートを提供します。「実行時リンカーの監査インタフェース」を参照。
実行時リンカーのデバッガインタフェースにより、外部プロセスから動的にリンクされたアプリケーションの監視および修正のサポートが提供されます。「実行時リンカーの監査インタフェース」を参照。
追加のセクションタイプがサポートされました。SHN_BEFORE と SHN_AFTER については 表 7-11、SHF_ORDERED と SHF_EXCLUDE については 表 7-14 を参照してください。
新しい動的セクションタグ DT_1_FLAGS がサポートされました。種々のフラグ値については、表 7-45 を参照。
ELF のデモプログラムパッケージが提供されました。第 7 章「オブジェクトファイル」を参照。
リンカーが国際化メッセージをサポートするようになりました。システムエラーはすべて、strerror(3C) を使用して報告されます。