| C ユーザーズガイド |
第 5 章
インクリメンタルリンカー (
ild)この章では、インクリメンタルリンカー (
ild)、ildに固有の機能、メッセージ例、およびildオプションについて説明します。説明項目は次のとおりです。
- 「インクリメンタルリンカーとは」
- 「インクリメンタルリンク処理の概要」
- 「ild の使用法」
- 「ild の動作」
- 「ild の制限事項」
- 「完全再リンクが行われる場合」
- 「ild オプション」
- 「環境変数」
- 「注意事項」
インクリメンタルリンカーとは
ildはインクリメンタルリンカーといい、ld(通常のリンカー) の代わりにプログラムのリンク処理を行います。ildを使用すると、ldを使用するよりも、開発 (編集、コンパイル、リンク、デバッグの繰り返し) をより効率的に速く行うことができます。全体の再リンクを行わずに処理を続けるにはdbxの「修正継続」機能も使用できますが、ildを使用すると処理がより速くなります。修正継続機能の詳細については『dbx コマンドによるデバッグ』の第 11 章を参照してください。
ildでは変更部分だけがリンクされるので、変更していないオブジェクトファイルは再リンクを行わずに、変更したオブジェクトコードを以前に作成した実行可能ファイルに挿入することができます。再リンクに必要な時間は、変更したコードの量によって異なります。コードの変更が少ない場合は、リンク処理にかかる時間は短くなります。初めてリンクを行う時には
ildでもldと同じくらいの時間が必要ですが、その後のildリンクはldリンクよりかなり時間が短縮されます。ただし、ildリンクの方が実行可能ファイルのサイズが大きくなります。インクリメンタルリンク処理の概要
ildを使用すると、初期リンクで、さまざまなテキスト、データ、bss、例外テーブルセクションなどが後にプログラムを拡張するときのための予備スペース (パディング) とともにスペースが追加されます (図 5-1 を参照)。また、すべての再配置レコードと大域シンボルテーブルが、実行可能ファイルの新しい永久領域に保存されます。さらにインクリメンタルリンクを行うと、タイムスタンプによって、どのオブジェクトファイルが変更されたかが調べられ、変更されたオブジェクトコードが以前に作成した実行可能ファイルに追加されます。すなわち、以前のバージョンのオブジェクトファイルは無効になり、空き領域または必要に応じて実行可能ファイルのパディングセクションに、新しいオブジェクトファイルが読み込まれます。無効になったオブジェクトファイル内のシンボルに対する参照はすべて、修正された新しいオブジェクトファイルを参照するように変更されます。すべての
ldコマンドオプションが ild でサポートされているわけではありません。ildでサポートされていないコマンドオプション (「注意事項」を参照) を指定すると、/usr/ccs/bin/ldが起動されて、リンクが行われます。
ildの使用法
ildは特定の条件が揃った場合に、ldの代わりにコンパイラによって自動的に呼び出されます。コンパイラを起動するとコンパイラドライバが起動され、ドライバは特定のオプションを渡された場合にildを使用します。コンパイラドライバはコマンド行からオプションを読み取り、プログラムを正しい順序で実行し、渡された引数リストに従ってファイルを追加します。たとえば、
図 5-1 インクリメンタルリンク処理の例ccは最初にacomp(コンパイラのフロントエンド) を実行し、acompが最適化コードジェネレータを実行します。続いてccは、コマンド行に指定されている他のソースファイルに対しても同じ処理を行います。次に、指定されたオプションによってildまたはldのどちらかを呼び出し、コンパイルしたすべてのファイルと、プログラムを完成させるために必要な他のファイルやライブラリを、ildまたはldに渡します。
ildとldのどちらを使用するかは、コンパイラのオプションによって次のように制御されます。
-xildonオプションを指定するとildが使用されます-xildoffオプションを指定するとldが使用されます
注 --xildonと-xildoffが両方とも指定された場合は、リンカーは最後に指定されたオプションを使用します。
-gオプション-xildoffと-Gが両方とも指定されていない場合でリンクのみを行う場合 (コマンド行上にソースファイルは存在しません) に、ildを使用します。-Gオプション-Gオプションが指定されていると、-gオプションによるリンカーの選択が無効になります。デフォルトのメークファイル構造 (リンクコマンド行内に
-gオプションのようなコンパイルオプションを含む) で-gオプションを指定してデバッグを行うと、自動的にildが使用されます。
ildの動作
ildの初期リンクでは、ldリンクとほぼ同じ時間がかかります。
ildのインクリメンタルリンクはldリンクより高速です。通常は、一回だけ初期リンクを行い、その後のリンクはすべてインクリメンタルリンクを実行します。
たとえば、
ildではコード内でシンボルfooを参照しているすべての場所が保存されます。fooの値を変更するインクリメンタルリンクを行うと、fooを参照している値もすべて変更する必要が生じます。そこで
ildは、プログラムの構成要をいくつかに分散し、実行可能ファイルの各セクションにパディングを追加します。パディングによって、ldリンクを実行したときよりも、実行可能モジュールのサイズが大きくなります。インクリメンタルリンクを何度か繰り返すうちに、オブジェクトファイルのサイズは徐々に大きくなっていくので、パディングがすべて使用されてしまうことがあります。このような場合には、メッセージが表示され、実行可能ファイル全体に対して完全再リンクが行われます。たとえば、図 5-1 の 3 つの図は、それぞれリンク済み実行可能ファイルのテキストとデータの並びを示しています。左の図は、
ldがリンクした実行可能ファイルのテキストとデータを示します。中央の図は、ildがリンクした実行可能ファイルにテキストとデータのパディングが追加された様子を示します。ソースファイルのテキスト 1 に対して、テキスト 1 以外のセクションのサイズには影響を与えずに、テキスト 1 のサイズだけが増えるような変更が行われたとします。右の図では、テキスト 1 の元の位置がテキストパディングに置き換えられています (テキスト 1 は無効になります)。元のテキスト 1 はテキストパディング領域の一部分に移動されています。
-xildonオプションを指定せずにコンパイラドライバ (たとえば、ccまたはCC) を起動するとldが呼び出されるので、インクリメンタルでないリンクが行われ、サイズがより小さな実行可能ファイルが作成されます。
dbxデバッガは、ildによってプログラムの間に挿入されたパディングを認識することができるので、ildで作成された実行可能ファイルのデバッグを行うことができます。
ildが認識できないコマンド行オプションを指定すると、ildはld(/usr/ccs/bin/ld) を呼び出します。ildはldと互換性があり、詳細は、「ild オプション」を参照してください。
ildの制限事項共有オブジェクトを作成する場合に
ildを起動しても、ldが起動されてリンクが実行されます。オブジェクトファイルに多くの変更を加えると、
ildの処理速度が低下することがあります。ildは、ファイルに多くの変更が加えられていることを検出すると、自動的に完全再リンクを行います。最終的に製品となるコードを作成するときには
ild(-xildonオプション) を使用しないでください。ildを使用すると、パディングによってプログラムが分散されるため、作成されるファイルのサイズが大きくなり、リンクに余分な時間がかかります (-g オプションがある場合は-xildoffを使用してください)。小さいプログラムでは
ildを使用しても、リンク処理の時間はあまり短縮されません。また、大きなプログラムよりも、実行可能ファイルのサイズが増加する割合が高くなることがあります。実行可能ファイルを操作する他社のツールを
ildで作成したバイナリに使用すると、予想外の結果が出ることがあります。実行可能ファイルを修正するプログラム (たとえば、
stripまたはmcsなど) を使用すると、ildのインクリメンタルリンク機能に影響を及ぼすことがあります。このような場合には、メッセージが表示されて完全再リンクが実行されます。詳細については、138 ページの「完全再リンクが行われる場合」を参照してください。完全再リンクが行われる場合
以下に、リンクを実行するために
ildがldを呼び出す例を示します。
ild先送りリンクメッセージメッセージ「
ild: calling ld to finish link」は、ildがリンクを実行できないためldに先送りしてリンクを実行することを意味します。このようなメッセージはデフォルトでは出力されますが、-z i_quietオプションを使って出力されないようにすることもできます。次のメッセージは
ildが暗黙的に (-gオプションで) 要求されている場合は抑制できますが、コマンド行で-xildonが指定されている場合は常に表示されます。このメッセージは-z i_verboseオプションを指定すると常に表示され、-z i_quietオプションを指定すると表示されません。
ild: calling ld to finish link--cannot handle shared libraries in archive<ライブラリ名><訳>ld によるリンクを実行します -- アーカイブ <ライブラリ名> の共有ライブラリを処理できません以下に、
-z i_verboseメッセージのその他の例を示します。
ild再リンクメッセージメッセージ「
ild: (Performing full relink)」は、何らかの理由でildがインクリメンタルリンクを実行できないため、完全再リンクを実行しなければならないことを示します。これはインクリメンタルリンクより時間がかかることを示すメッセージであり、エラーではありません (詳細は、136 ページの「ildの動作」を参照してください)。ildのメッセージは-zi_quietオプションと-zi_verboseオプションで制御できます。一部のメッセージには詳細情報モードがあり、より詳しい情報が示されます。これらのメッセージはすべて
-zi_quietオプションで抑制できます。デフォルトメッセージが詳細情報モードの場合はメッセージの最後に[...]と表示され、詳細情報があることを示します。詳細情報は、-zi_verboseオプションを使用して参照できます。以下の例では、-zi_verboseオプションが選択されています。例 1: 内部空き領域の不足
完全再リンクでよく表示されるメッセージとして、「internal free space exhausted」があります。
この例からわかるように、1 行コンパイルから 2 行コンパイルに変更すると、実行可能ファイル内のデバッグ情報が増え、このために領域が不足し、完全再リンクが実行されます。
例 2:
stripの実行
stripを実行すると、別の問題が発生します。次の例は例 1 からの続きです。
例 3:
ildのバージョン旧バージョンの
ildで作成した実行可能ファイルに対して、新バージョンのildを実行すると、以下のようなエラーメッセージが表示されます。
注 - 数字 (2/16) は、バグレポート用に使用されます。
例 4: 変更されたファイルが多い
インクリメンタルリンクより完全再リンクを行う方が、処理時間が短くなる場合があります。以下に例を示します。
ファイル
x0.oからx8.oが変更されているので、touchコマンドを使用すると、9 つのオブジェクトファイルをすべてインクリメンタルリンクするより、完全再リンクを行う方が処理時間が短縮されます。例 5: 新たな完全再リンク
例 4 は、これから行うリンクで完全再リンクを実行する例でしたが、その次に行うリンクで初期リンクを実行してしまう不具合があります。
次にこのプログラムをリンクしようとすると、以下のメッセージが表示されます。
例 6: 新たな作業用ディレクトリ
ildオプションこの節では、リンカー制御オプション (直接コンパイラが受け取るオプションと、コンパイラによって
ildに渡されるオプション) について説明します。
-a静的モードのみで、実行可能オブジェクトファイルを作成します。未定義の参照にエラーを出します。静的モードのデフォルト動作です。
-B dynamic|staticライブラリの取り込みを制御するオプションです。
-Bdynamicは、動的モードでのみ有効です。この 2 つのオプションはコマンド行で何度でも指定でき、そのたびにモードを切り換えることができます。-Bstaticを指定している場合に共有オブジェクトを処理するには、-Bdynamicに切り替える必要があります。143 ページの「-lx」を参照してください。
-d y|n
-dy(デフォルト) を指定すると、動的リンク処理が実行されます。-dnを指定すると、静的リンク処理が実行されます。142 ページの「-B dynamic | static」を参照してください。
-eepsym出力ファイルの入口点アドレスをシンボル epsym のアドレスに設定します。
-g
-gオプション (デバッグ情報の出力) を指定すると、コンパイラはldの代わりにildを実行します。次の条件が 1 つでも満たされている場合は-gオプションは使用できません。
-I<名前>実行可能ファイルを作成するときは、プログラムヘッダーに書き込まれるインタープリタのパス名として <名前> を使用します。静的モードでのデフォルトはインタープリタなしです。動的モードでは、デフォルトは実行時リンカー
/usr/lib/ld.so.1の名前です。どちらの場合も、-I<名前> で無効にすることができます。execシステムコールは、a.outを読み込むときにこのインタープリタを読み込み、インタープリタに制御を渡します。a.outに直接渡すことはしません。
-i
LD_LIBRARY_PATHの設定を無視します。LD_LIBRARY_PATHの設定が有効なときに、実行中のリンク処理に干渉する実行時ライブラリの検索を変更する場合に使用します (これはLD_LIBRARY_PATH_64の設定にも適用されます)。
-L<パス>ライブラリ検索ディレクトリに <パス> を追加します。ライブラリは、最初にオプション
-Lで指定されたディレクトリで検索され、次に標準ディレクトリで検索されます。このオプションは、同じコマンド行上の-lオプションの前に指定した場合だけ有効です。環境変数LD_LIBRARY_PATHとLD_LIBRARY_PATH_64でも、ライブラリ検索パスを追加できます (148 ページの「LD_LIBRARY_PATH」を参照)。
-lxライブラリ
libx.soまたはlibx.aを検索します。これらはそれぞれ共有オブジェクトとアーカイブライブラリの一般的な名前です。動的モード、つまり-Bstaticオプションが指定されていないときは、ライブラリ検索パスに指定された各ディレクトリで、ファイルlibx.soまたはファイルlibx.aを検索します。どちらかのファイルが含まれている最初のディレクトリで、検索は停止します。libx.soとlibx.aという形式のファイルが両方ともある場合は、拡張子.soが付いているファイルが使用されます。libx.soがない場合は、libx.aが使用されます。静的モードのとき、つまり-Bstaticオプションが指定されているときは、拡張子.aが付いているファイルだけを使用します。ライブラリは、名前が検出された時に検索されるので、-lを指定するのは重要な意味があります。
-m標準出力の入出力セクションのメモリーマップまたはリストを作成します。
-o<出力ファイル><出力ファイル> という名前の出力オブジェクトファイルを作成します。デフォルトのオブジェクトファイル名は
a.outです。
-Q y|n
-Qyを指定すると、出力ファイルの.commentセクションに、出力ファイルの作成に使用したリンカーのバージョンを識別するident文字列が追加されます。この結果、複数回リンク処理を行なった場合は、ld -rを使用したときと同じように複数のldidentsが追加されます。これは cc コマンドのデフォルト処理と同じです。オプション-Qnを指定すると、バージョンを識別する ident 文字列は追加されません。
-R<パス>実行時リンカーに渡されるライブラリ検索ディレクトリを、コロン (:) で区切られたリストで指定します。<パス> が存在しかつ空でない場合は、<パス> は出力オブジェクトファイルに記録され、実行時リンカーに渡されます。このオプションを複数回に分けて使用すると、指定された検索ディレクトリは連結されてコロンで区切られます。
-sシンボル情報を出力ファイルに出力しません。デバッグ情報および対応する再配置エントリが出力されなくなります。再配置可能ファイルまたは共有オブジェクトファイル以外の出力ファイルには、シンボルテーブルと文字列テーブルのセクションも出力されなくなります。
-t複数回定義され、しかもサイズが異なるシンボルに関する警告を出力しません。
-u<シンボル名><シンボル名> をシンボルテーブルに未定義シンボルとして記入します。これは、アーカイブライブラリをまるごと読み込むのに便利です。シンボルテーブルははじめは空であり、最初のルーチンを読み込むために未解決の参照が必要だからです。コマンド行でのこのオプションを指定する位置は重要です。このオプションは、シンボルを定義するライブラリの前に置かなければなりません。
-V使用している
ildのバージョンに関するメッセージを出力します。
-xildoffインクリメンタルリンカーを使用せず、強制的に
ldを実行します。-gオプションを指定しない場合、または-Gオプションを指定した場合は、このオプションがデフォルトです。デフォルトを受け入れたくない場合は-xildonを指定してください。
-xildon強制的に、
ildを使用してインクリメンタルリンカーを実行します。-gオプションを指定した場合は、このオプションがデフォルトです。デフォルトを受け入れたくない場合は-xildoffを指定してください。
-YP,<ディレクトリのリスト>(
ccのみ) ライブラリを検索するデフォルトディレクトリを変更します。オプション <ディレクトリのリスト> には、ディレクトリのパスをコロンで区切って指定します。
注 --z<名前> という形は、ildで特殊なオプションを指定する場合に使用します。-zオプションの接頭辞としてi_を付けたものは、ildに固有のオプションとして識別されます。
-z allextract|defaultextract|weakextractこのオプションの後に続くアーカイブから、オブジェクトの抽出基準を変更します。デフォルトでは、未定義の参照を解決し、一時的な定義がデータ定義になるようにアーカイブメンバーが抽出されます。弱いシンボル参照のためには、抽出は行われません。
-zallextractを指定すると、アーカイブからすべてのメンバーが抽出されます。-zweakextractを指定すると、弱い参照によってアーカイブ抽出が発生します。-zdefaultextractは、それまでに使用されていた抽出オプションからデフォルトに戻ることを意味します。
-z defsリンク終了時に未定義シンボルが残っている場合に、致命的エラーを出力します。実行可能ファイルの作成時はこれがデフォルトです。共有オブジェクトを作成し、シンボル参照がすべてオブジェクト内部で解決されるようにする場合に、このオプションを使用します。
-z i_dryrun(
ildのみ) リンクされるファイルのリストを出力して、処理を終了します。
-z i_full(
ildのみ) インクリメンタルモードで全体の再リンクを行います。
-z i_noincr(
ildのみ)ildをインクリメンタルでないモードで実行します (ユーザーによる使用はお勧めできません。テスト用にだけ使用してください)。
-z i_quiet(
ildのみ)ild再リンクメッセージをすべて表示しません。
-z i_verbose(
ildのみ) 詳細情報モードを持つild再リンクメッセージを拡張して、より詳細な情報を出力します。
-z nodefs未定義シンボルがあってもエラーにしません。共有オブジェクトの作成時はこれがデフォルトです。実行可能ファイルの作成時には、未定義シンボルは参照されません。
コンパイラから
ildに渡されるオプション以下のオプションは
ildによって認識されますが、コンパイラからildに渡すときは次のどちらかの形式を使用する必要があります。
-a静的モードのみで、実行可能オブジェクトファイルを作成します。未定義の参照にエラーを出します。静的モードのデフォルト動作です。オプション
-aは、オプション-rと同時には指定できません。
-m標準出力の入出力セクションのメモリーマップまたはリストを作成します。
-t複数回定義され、しかもサイズが異なるシンボルに関する警告を出力しません。
-eepsym出力ファイルの入口点アドレスをシンボル epsym のアドレスに設定します。
-I<名前>実行可能ファイルを作成するときは、プログラムヘッダーに書き込まれるインタープリタのパス名として <名前> を使用します。静的モードでのデフォルトはインタープリタなしです。動的モードでは、デフォルトは実行時リンカー
/usr/lib/ld.so.1の名前です。どちらの場合も、-I<名前> で無効にすることができます。execシステムコールは、a.outを読み込むときにこのインタープリタを読み込み、インタープリタに制御を渡します。a.outに直接渡すことはしません。
-u<シンボル名><シンボル名> をシンボルテーブルに未定義シンボルとして記入します。これは、アーカイブライブラリをまるごと読み込むのに便利です。シンボルテーブルははじめは空であり、最初のルーチンを読み込むために未解決の参照が必要だからです。コマンド行でのこのオプションを指定する位置は重要です。このオプションは、シンボルを定義するライブラリの前に置かなければなりません。
環境変数
-lオプションで指定されたライブラリを検索するディレクトリのリストです。複数のディレクトリはコロンで区切ります。通常は、1 つのセミコロンで区切られた 2 つのディレクトリのリストが指定されています。
<ディレクトリのリスト1>; <ディレクトリのリスト2>
- 以下のように、
-Lを任意の回数指定してildを呼び出すとします。
ild...-L<パス1> ... -L<パスn> ...
<ディレクトリのリスト1> <パス1> ... <パスn> <ディレクトリのリスト2>LIBPATH
ディレクトリのリストにセミコロンが入っていないときは、次のように解釈されます。
<ディレクトリのリスト2>
LD_LIBRARY_PATHは、実行時リンカーにライブラリ検索ディレクトリを指定するのにも使用します。つまり、LD_LIBRARY_PATHが指定されていると、実行時リンカーは、実行時にプログラムとリンクされる共有オブジェクトを、LD_LIBRARY_PATHに指定されたディレクトリで検索してから、デフォルトのディレクトリで検索します。
注 -set-user-IDプログラムまたはset-group-IDプログラムを実行するときは、実行時リンカーは/usr/lib内のライブラリと、実行可能ファイル内に指定された絶対パス名を検索します。この絶対パス名は、実行可能ファイルが作成されるときに指定された実行時パスです。相対パス名で指定されたライブラリ関係は暗黙的に無視されます。
- Solaris 7 と Solaris 8 で使用されます。この環境変数は
LD_LIBRARY_PATHに似ていますが、64 ビットの依存関係を検索する場合にLD_LIBRARY_PATHを無効にします。- Solaris 7 または Solaris 8 を SPARC プロセッサ上で実行し、32 ビットモードでリンクする場合、
LD_LIBRARY_PATH_64は無視されます。LD_LIBRARY_PATHしか定義しなかった場合は、32 ビットリンクと 64 ビットリンクの両方にLD_LIBRARY_PATHが使用されます。LD_LIBRARY_PATHとLD_LIBRARY_PATH_64の両方を定義すると、32 ビットリンクはLD_LIBRARY_PATHを使用して行われ、64 ビットリンクはLD_LIBRARY_PATH_64を使用して行われます。
ildのデフォルトのオプションです。LD_OPTIONSの値は、ildを起動するコマンドの直後に入力されたものとして解釈されます。
ild$LD_OPTIONS... <その他の引数> ...
実行時リンカーによって解釈される共有オブジェクトのリストです。指定された共有オブジェクトは、実行中のプログラムの後、プログラムが参照する他の共有オブジェクトの前にリンクされます。
注 -set-user-IDプログラムまたはset-group-IDプログラムを実行するときは、このオプションは暗黙的に無視されます。
- リンカーに実行時パスを指定するもうひとつの方法です (
-Rオプションを参照)。LD_RUN_PATHと-Rオプションの両方を指定すると、-Rで指定したパスが使用されます。
- (
ildではサポートされていません) 実行時リンカーによって標準エラーにデバッグ情報が出力されるように、トークンのリストを指定します。トークンとして help と指定すると、使用できるすべてのトークンが表示されます。
注 -LD_で始まる環境変数名は、ldの将来の拡張用に予約されています。ILD_で始まる環境変数名は、ildの将来の拡張用に予約されています。
注意事項
サポートされていないコマンド行オプションを指定すると、
ildは/usr/css/bin/ldを呼び出してリンクを実行します。
ildで使用できないldオプション以下のオプションはコンパイラに指定することはできますが、現在
ildでサポートされていません。
-B symbolic動的モードのみで使用します。定義が使用できる場合は、共有オブジェクトの作成時に、大域シンボルの参照をオブジェクト内の定義に結合します。通常、共有オブジェクト内の大域シンボルの参照は、定義を使用できても実行時まで結合されないので、実行可能ファイルまたは他の共有オブジェクト内の同じシンボルの定義によって、オブジェクト自体の定義が無効になることがあります。未定義シンボルがあると
ldによって警告メッセージが出力されます (-zdefsを指定すると警告メッセージは出力されません)。
-b動的モードのみで、実行可能ファイルを作成するときに、共有オブジェクト内のシンボルを参照する再配置用の特殊処理を行わないようにします。
-bオプションを指定しないと、リンカーは、共有オブジェクト内に定義された関数参照のために位置独立の特殊な再配置コードを作成し、共有オブジェクト内に定義されたデータオブジェクトが実行可能ファイルのメモリーイメージ内に実行時リンカーによってコピーされるようにします。-bオプションを指定すると、出力コードは効率的になりますが、共有性は低下します。
-G動的モードのみで使用し、共有オブジェクトを作成します。未定義シンボルも使用できます。
-h<名前>動的モードのみで使用します。共有オブジェクトの作成時に、共有オブジェクトの動的セクション内に <名前> を記録します。<名前> は、オブジェクトの UNIX ファイル名としてではなく、オブジェクトとリンクされる実行可能ファイル内に記録されます。そのため <名前> は、実行時リンカーが実行時に検索する共有オブジェクト名として使用されます。
-zmuldefs複数のシンボル定義を行うことができるようにします。デフォルトでは、再配置可能オブジェクトの間に複数のシンボル定義があると致命的エラーになります。このオプションを指定すると、複数のシンボル定義をエラーにせず、最初のシンボル定義が使用されます。
-ztext動的モードのみで使用します。書き込み禁止の割り当て可能セクションに対する再配置が残っている場合に、致命的エラーにします。
サポートされないその他のコマンド
また、以下のオプションは直接
ldに渡され、ildにはサポートされていません。
-D<トークン>,<トークン>, ...各トークンで指定したように、デバッグ情報を標準エラーに出力します。トークンとして help を指定すると、使用できるすべてがトークンが表示されます。
-F<名前>共有オブジェクトの作成時のみ使用します。共有オブジェクトのシンボルテーブルが、<名前> で指定した共有オブジェクトのシンボルテーブルの「フィルタ」として使用されるように指定します。
-M<マップファイル><マップファイル> を、
ldに対する指示テキストファイルとして読み取ります。マップファイルについての詳細は、『リンカーとライブラリ』を参照してください。
-r再配置可能なオブジェクトファイルを組み合わせ、1 つのオブジェクトファイルを作成します。
ldは解釈されない参照があってもエラーとしません。このオプションは、動的モードでは使用できません。また、-aオプションと同時に使用することはできません。
ildで使用するファイル
|
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |