ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
リンカーとライブラリ Oracle Solaris 11 Information Library (日本語) |
リンカーはスタブオブジェクトを作成できます。スタブオブジェクトとは、完全に mapfile から作成される、コードとデータを含まずに実際のオブジェクトと同じリンクインタフェースを提供する共有オブジェクトです。スタブオブジェクトは、非常に簡単にリンカーで作成できます。また、構築の並列処理を増やしたり、構築の複雑さを軽減したりできます。「スタブオブジェクト」を参照してください。
リンカーは、-z guidance オプションを使用して高品質のオブジェクトを作成するためのガイドを提供できます。ld(1) を参照してください。
アーカイブ処理では、サイズが 4G バイトより大きいアーカイブを作成できるようになりました。
ローカルの監査者が la_preinit() と la_activity() のイベントを受け取ることができるようになりました。「実行時リンカーの監査インタフェース」を参照してください。
遅延依存関係により、機能が存在するかどうかを検査するモデルがより堅牢になりました。「機能のテスト」および 「dlopen() の代替手段の提供」を参照してください。
新しい mapfile 構文が利用できるようになりました。第 10 章mapfileを参照してください。この構文は、元の System V Release 4 の言語の構文に比べて、可読性と拡張性が向上しています。元の mapfile を処理するためのサポート機能はリンカー内に完全に保持されています。元の mapfile 構文と使用方法については、付録 B System V Release 4 (バージョン 1) Mapfileを参照してください。
個々のシンボルは機能要件と関連付けることができます。「機能要件の特定」を参照してください。この機能は、動的オブジェクト内の最適化された機能ファミリの作成に対応しています。「シンボル機能関数ファミリの作成」および 「機能セクション」を参照してください。
リンカーで作成され、Oracle Solaris 固有の ELF データを含むオブジェクトは、e_ident[EI_OSABI] ELF ヘッダー内で ELFOSABI_SOLARIS のタグが付けられます。これまで、ELFOSABI_NONE がすべてのオブジェクトに使用されてきました。この変更は主に情報を充実させるためであり、実行時リンカーは引き続き ELFOSABI_NONE と ELFOSABI_SOLARIS は同じであると見なします。しかし、elfdump(1) および類似の診断ツールは、この ABI 情報を使用して、特定のオブジェクトに関するより正確な情報を作成できます。
elfdump(1) は拡張され、e_ident[EI_OSABI] ELF ヘッダーの値、または新しい -O オプションを利用して、特定の ABI に固有の ELF データの型と値を特定したり、この情報を使用してオブジェクトの内容をより正確に表示したりできるようになりました。Linux オペレーティングシステムからのオブジェクト内の ABI 固有情報を表示する機能が大幅に拡張されました。
プロセスで読み込まれたオブジェクトのセグメント対応付け情報は、dlinfo(3C) のフラグ RTLD_DI_MMAPCNT および RTLD_DI_MMAPS を使用すると取得できます。
リンカーは多くの GNU リンカーオプションを認識します。ld(1) を参照してください。
リンカーに SPARC および x86 ターゲットのためのクロスリンクが提供されます。「クロスリンク編集」を参照してください。
リンカーに SHF_MERGE | SHF_STRING 文字列セクションをマージする機能が提供されます。「セクションのマージ」を参照してください。
実行可能プログラムと共有オブジェクトの作成時に、デフォルトで再配置セクションがマージされるようになりました。「再配置セクションの結合」を参照してください。この動作を使用するには、リンカーの -z combreloc オプションが必要でした。このデフォルトの動作を無効にして、再配置を適用する必要のあるセクションで 1 対 1 関係を保持するために、-z nocombreloc が用意されています。
新しいユーティリティー elfedit(1) を使って ELF オブジェクトを編集できます。
新しいユーティリティー elfwrap(1) を使用して、任意のデータファイルを ELF 再配置可能オブジェクト内にカプセル化できます。
追加のシンボル可視性属性が提供されています。「SYMBOL_SCOPE/SYMBOL_VERSION 指令」および表 12-20 にある、エクスポート済み、シングルトン、および削除属性の記述を参照してください。
リンカーとその関連 ELF ユーティリティーが、/usr/ccs/bin から /usr/bin に移動されました。「リンカーの起動」を参照してください。
シンボルソートセクションが追加され、メモリーアドレスとシンボリック名の関連付けを簡単にできるようになりました。「シンボルソートセクション」を参照してください。
動的オブジェクトで使用できるシンボルテーブル情報が、新しい .SUNW_ldynsym セクションの追加によって拡張されています。「シンボルテーブルセクション」および表 12-5 を参照してください。
crle(1) によって管理される構成ファイルの形式が拡張され、ファイルの識別機能が向上しています。改善された形式により、実行時リンカーが互換性のないプラットフォームで生成された構成ファイルを使用しないようになります。
関連付けたシンボルのサイズを再配置の計算で使用するために、新しい再配置タイプが追加されました。「SPARC: 再配置」を参照してください。
-z rescan-now、-z recan-start、および -z rescan-end のオプションでは、アーカイブライブラリをリンク編集に容易に指定できるようになりました。「コマンド行上のアーカイブの位置」を参照してください。
次の機能が廃止されました。これらの機能は内部機能、またはほとんど使用されない機能です。既存の関連する ELF 定義はすべて無視されますが、elfdump(1) などのツールによって、定義を引き続き表示できます。
この動的セクションタグは実行時の機能要件を特定しました。「動的セクション」を参照してください。このタグは機能フラグ DTF_1_PARINIT および DTF_1_CONVEXP を提供しました。DT_FEATURE_1 タグおよび関連フラグは、今後、リンカーによって作成されたり、実行時リンカーによって処理されたりしません。