この付録では、Solaris オペレーティング環境に追加された新機能および更新された機能の概要、および各機能が追加されたリリースを示します。
文字列テーブルの圧縮がリンカーにより提供されます。これにより、.dynstr および .strtab セクションが縮小することがあります。このデフォルト処理は、リンカーの -z nocompstrtab オプションで無効にできます。詳細は、文字列テーブルの圧縮を参照してください。
-z ignore オプションが、リンク編集時に参照されないセクションを排除するように拡張されました。詳細は、使用されない対象物の削除を参照してください。
参照されない依存関係を、ldd(1) を使用して特定できるようになりました。-U オプションを参照してください。
リンカーにより拡張 ELF セクションが提供されます。ELF ヘッダー、表 7–12、セクション、表 7–17、および シンボルテーブルを参照してください。
protected mapfile 命令により、シンボルの可視性をより柔軟に定義できるようになりました。追加シンボルの定義を参照してください。
スレッド固有領域 (TLS) のサポートが提供されます。スレッド固有領域、表 7–14、特殊セクション、表 7–20、表 7–36、および表 7–44を参照してください。
-z rescan オプションにより、アーカイブライブラリをリンク編集に指定する際の柔軟性が向上しました。詳細は、コマンド行上のアーカイブの位置を参照してください。
-z ld32 および -z ld64 オプションにより、リンカーサポートインタフェースを使用する際の柔軟性が向上しました。詳細は、32 ビットおよび 64 ビット環境を参照してください。
補助リンカーサポートインタフェース ld_input_done()、 ld_input_section()、ld_input_section64()、および ld_version() が追加されました。 詳細は、サポートインタフェース関数を参照してください。
実行時リンカーにより解釈される環境変数を、構成ファイル内で指定することにより、複数のプロセスに対応させることができるようになりました。詳細は、crle(1) のマニュアルページの -e および - E オプションを参照してください。
64 ビット SPARC オブジェクト内部で、32,768 以上のプロシージャリンクテーブルエントリがサポートされるようになりました。詳細は、SPARC: 64 ビットプロシージャのリンクテーブルを参照してください。
mdb(1) デバッガモジュールを使用することで、実行時リンカーのデータ構造の検査を、デバッグプロセスの一部として実行できます。詳細は、デバッガモジュールを参照してください。
bss セグメント宣言指示により、bss セグメントをより簡単に作成できます。セグメントの宣言を参照してください。
使用されない依存関係を、ldd(1) を使用して特定できるようになりました。詳細は、-u オプションを参照してください。
さまざまな ELF ABI 拡張が追加されました。詳細は、初期設定および終了セクション、初期設定および終了ルーチン、表 7–4、表 7–7、表 7–14、表 7–15、セクショングループ、表 7–17、表 7–21、表 7–43、表 7–44、プログラムの読み込み (プロセッサ固有)を参照してください。
リンクエディタ固有の環境変数に _32 および _64 の 2 つの接尾辞が使用可能になりました。これにより、環境変数がより柔軟に使用できます。詳細は、環境変数を参照してください。
crle(1) で作成された実行時構成ファイルの管理が、簡単になりました。構成ファイルを検査することで、ファイル作成に使用されたコマンド行オプションが表示されます。-u オプションを指定すると、更新機能を利用できます。
実行時リンカーおよびデバッガインタフェースが拡張され、プロシージャリンクテーブルエントリの解決を検出できるようになりました。この拡張は、新しいバージョンナンバーで識別することができます。詳細は、エージェント操作インタフェースの rd_init() を参照してください。この更新により rd_plt_info_t 構造体が機能拡張されます。プロシージャのリンクテーブルのスキップの rd_plt_resolution() を参照してください。
新しい mapfile セグメント記述子 STACK を使用してアプリケーションスタックを非実行可能ファイルに定義することができます。セグメントの宣言を参照してください。
実行時リンカーが、環境変数 LD_BREADTH
を無視します。初期設定および終了ルーチンを参照してください。
実行時リンカーおよびそのデバッガインタフェースが拡張され、実行時解析とコアファイル解析の性能が向上しました。この拡張は、新しいバージョンナンバーで識別することができます。詳細は、エージェント操作インタフェースの rd_init() を参照してください。この更新により rd_loadobj_t 構造体が拡張されます。詳細は、読み込み可能オブジェクトの走査を参照してください。
ディスプレイスメント再配置されたデータがコピー再配置で使用されるか、使用される可能性があることを検査できるようになりました。詳細は、ディスプレイスメント再配置 を参照してください。
64 ビットフィルタが、リンカーの -64 オプションを使用して mapfile から単独で構築できます。詳細は、標準フィルタの生成を参照してください。
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 動的ストリングトークンにより、命令セット固有およびシステム固有の依存関係を確立する際の柔軟性が向上しました。詳細は、動的ストリングトークンを参照してください。
リンカーの -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 (第 3 章「実行時リンカー」を参照)。
リンカーの -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) を使用して報告されます。
新しい eliminate mapfile 指示、または -B eliminate オプションを使用すると、ローカルのシンボルテーブルエントリを削除できます。詳細は、シンボル削除を参照してください。