| -a search | | -l オプションで共有ライブラリとアーカイブライブラリのどちらを検索するかを指定します。 search の値は、 archive、 shared、 archive_shared、 shared_archive、
または default のどれかでなければなりません。
このオプションは、ライブラリごとの検索を制御するために、 -l オプションと混在させて複数回指定することができます。
デフォルトでは、ライブラリの共用バージョンが利用できれば使用し、利用できなければアーカイブバージョンを使用します。 archive または shared のどちらかがアクティブならば、指定したライブラリタイプだけが受け付けられます。 archive_shared がアクティブな場合、アーカイブ形式が優先しますが、共有形式も認められます。 shared_archive がアクティブな場合、共有形式が優先しますが、アーカイブ形式も認められます。 静的にバインドされたプログラムを作成するには、 -a
archive ではなく、 -noshared オプションを使います。 |
| -b | | 通常の実行可能ファイルではなく共有ライブラリを作成します。
このオプションで処理されるオブジェクトファイルは、コンパイラがデフォルトで生成する position-independent
code (PIC) でなければなりません。 cc(1)、 aCC(1)、 f90(1)、 as(1)、 および 『『HP-UX
リンカー & ライブラリー オンライン ユーザーズガイド』』 で
PIC (position-independent code) の説明を参照してください。 |
| -c filename | | ld のオプションをファイルから読み込みます。 各行には、空白で区切った引き数が
0 個以上あります。 ファイル内の各行は、最後の行も含めて、改行文字で終わっていなければなりません。 # 文字は、そこから行末までコメントであることを示します。 # 文字をエスケープさせるには、シーケンス ## を使用します。 |
| -d | | 強制的に「共通」シンボルの定義を行います。 つまり、 -r 出力に対してアドレスとサイズを割り当てます。 |
| -dynamic | | このオプションは、デフォルトです。 このオプションにより、リンカーは共有ライブラリを使用できる、ダイナミックリンクされた実行可能プログラムを作成します。
このオプションは、 -noshared の反対です。 共有ライブラリがリンクされていない場合、リンカーはダイナミックリンクされた実行可能プログラムを構築します。
ただし、 +compat オプションを使う PA32 ビットモードでは、共有ライブラリがリンクされていない場合、リンカーは静的にバインドされた実行可能プログラム
(アーカイブバインドされた実行可能プログラム) を構築します。 ダイナミックリンクされた実行可能プログラムでは、プログラムが共有ライブラリにリンクされているかどうかにかかわらず、ダイナミックローダーが実行可能プログラムのロード処理を行います。 -noshared (静的にバインドされた)
プログラムの場合、制御はダイナミックローダーには渡されません。 詳細については、 dld.so(5) を参照してください。 |
| -e epsym | | 出力ファイルのデフォルトのエントリーポイント アドレスを、シンボル epsym のエントリーポイント アドレスに設定します (このオプションは実行可能ファイルだけに適用されます)。 |
| -h symbol | | シンボルテーブルを出力ファイルに書き出す前に、 この名前を「ローカル」としてマークして、外部的に見えなくなるようにします。
これにより、 ld による将来の処理時に、特にこのエントリーが別のファイルの定義と衝突しないようになります。
共有ライブラリまたはプログラムの構築時にこのオプションを使用すると、
指定したシンボルがダイナミックローダーから見えなくなります。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 -h オプションを付加しなければなりません。 |
| -k filename | | 出力ファイルのメモリーマップを記述したマップファイルを指定します。 詳細については 『『HP-UX リンカー & ライブラリー
ユーザーズガイド』』 を参照してください。 +nodefaultmap も参照してください。 |
| -lx | | ライブラリ libx.a\c 、 libx.so\c 、または libx.sl を検索します。ここで、 x は単一または複数の文字です。 -a オプションの現在の状態によって、ライブラリのアーカイブ
(.a) と共用 (.sl または .so) バージョンのどちらが検索されるかが決まります。
名前が現れた時点でライブラリが検索されるため、 -l の位置は意味があります。
デフォルトでは、32 ビットライブラリは /usr/lib/hpux32 にあります。 64
ビットライブラリは /usr/lib/hpux64 にあります。
環境変数 LPATH がユーザーの環境に存在する場合、
検索するディレクトリをコロンで区切ったリストが設定されていなければなりません。
これらのディレクトリは、デフォルトディレクトリの代わりに検索されますが、その場合でも -L オプションは有効です。
プログラムが共有ライブラリを使用する場合、32 ビット用ダイナミックローダー /usr/lib/hpux32/dld.so または
64 ビット用ダイナミックローダー /usr/lib/hpux64/dld.so は、リンク時に各ライブラリと同じディレクトリから各ライブラリをロードしようとします
(+s および +b オプションを参照)。 |
| -l: library | | 指定したライブラリを検索します。-l オプションと類似していますが、-a オプションの現在の状態に依存しない点が異なります。
ライブラリ名には、有効なファイル名であれば任意の名前を指定できます。 |
| -m | | 標準出力上にロードマップを生成します。 |
| -n | | このオプションは無視されます。 |
| -noshared | | リンカーに、完全にアーカイブバインドのプログラム
(静的にバインドされた実行可能プログラムともいう) を強制的に作成させます。
このオプションを使うときは、ld のコマンド行で /usr/ccs/lib/hpux32/crt0.o または /usr/ccs/lib/hpux64/crt0.o (または同等の起動コード)
を指定します。 このオプションは、 -dynamic の反対です。 ダイナミックリンクされた実行可能プログラムでは、プログラムが共有ライブラリにリンクされているかどうかにかかわらず、ダイナミックローダーが実行可能プログラムのロード処理を行います。
静的にリンクされたプログラムの場合、制御はダイナミックローダーには渡されません。 |
| -noshared_dynamic |
| | | 共有ライブラリがリンクされている場合、ダイナミックリンクされたプログラムを作成します。
共有ライブラリがリンクされていない場合、リンカーは完全にアーカイブバインドのプログラムを作成します。
このオプションは、互換モード (+compat) オプションではデフォルトです。 -dynamic オプションと -noshared オプションも参照してください。 |
| -o outfile | | outfile (-o outfile を指定しなければ a.out)
という名前の出力オブジェクトファイルを生成します。 |
| -q | | このオプションは無視されます。 |
| -r | | 次の再リンクのために、出力ファイルに再配置情報を保持します。 ld コマンドは未定義シンボルをレポートしません。
このオプションは、共有ライブラリの作成時 (-b)
または -s、 -x、 または +ild 増分リンクオプションと一緒には使用できません。 |
| -s | | 出力ファイルからすべてのシンボルテーブル、再配置、およびデバッグサポート情報を削除します
(この情報は strip(1) コマンドでも削除できます)。
このオプションは、 -r オプションおよび +ild オプションと同時に指定することはできません。 注記: -s オプションを使うと、生成されたプログラムに対してシンボリックデバッガが使えなくなります。 |
| -symbolic symbol | | 共有ライブラリを構築するときに、指定したシンボルへのすべての参照を、リンカーがライブラリ内に定義されているシンボルで解決するように指示します。
このオプションは -B symbolic と似ていますが、シンボルごとに指示することができます。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 -symbolic オプションを付加しなければなりません。 |
| -t | | ld が各入力ファイルを処理するたびに、トレースを
(標準出力に) プリントします。 |
| -u symbol | | シンボルテーブルの未定義シンボルとして symbol を入力します。 未解決の参照が生成されますが、これは、プログラムをライブラリ内のオブジェクトファイルだけとリンクする場合に便利です。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 -u オプションを付加しなければなりません。 |
| -v | | リンク時に詳細なメッセージを表示します。 このオプションは、 +vtype
all と同等です (詳細については、 +vtype オプションを参照してください)。 |
| -x | | 出力ファイルからローカルシンボルを削除します。 これはオブジェクトファイル
ユーティリティの機能を損なわずに出力ファイルのサイズを縮小します。このオプションは、-r オプションおよび +ild オプションと同時に指定することはできません。
(増分リンカーは、出力ロードモジュールの -x オプションで削除される部分を必要とします。) 注記: -x オプションを使うと、生成されたプログラムに対してシンボリックデバッガが使えなくなります。 |
| -y symbol | | symbol が現れる各ファイルを示します。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 -y オプションを付加しなければなりません。 |
| -z | | null ポインターの実行時参照で SIGSEGV シグナルが生成されるようにします
(これは -Z オプションの反対です。 -Z がデフォルトです)。 |
| -A name | | このオプションは無視され、警告メッセージが出力されます。 |
| -B bind | | 共有ライブラリを使っているプログラムの実行時バインディング動作を選択したり、
共有ライブラリの生成に必要なバインディング方法を選択します。 bind の最も一般的な値は、以下のとおりです。 | direct | | シンボルの解決中に解決された共有ライブラリ名を記録することにより、シンボル参照と共有ライブラリの間に直接リンクを作成します。
この情報は、実行時に、ロードされているすべてのライブラリを検索することなく迅速にシンボルを解決する目的で使用されます。 -B direct では、シンボリックバインディングは無条件にオンになり
(-B symbolic を参照)、依存共有ライブラリの処理は無効になります。 実行時に直接バインディングを無効にするには、 LD_NODIRECTBIND 環境変数を設定します。 | | deferred | | プログラム起動時ではなく最初の参照でアドレスをバインドします
(デフォルト)。 | | group | | 共有ライブラリをマークして、 dlopen() に RTLD_GROUP フラグを指定してロードしたかのように動作させます。これは、依存共有ライブラリには影響しません。 | | immediate | | ライブラリのロード時に、すべてのシンボルのアドレスを即座にバインドします。
通常、この後に -B nonfatal を指定し、プログラム起動時に解決できないプロシージャ呼び出しを、最初の参照で解決するようにします。 -B nonfatal は、解決できないシンボルに関するメッセージを表示しないので、
それらのメッセージを表示するには -B verbose も指定します。 以下の例を参照してください。 | | lazydirect | | 遅延ローディングにマークされている共有ライブラリへの直接バインド情報のみを記録します。 +[no]lazyload を参照してください。 | | nodelete | | 共有ライブラリをマークして、プロセスから共有ライブラリを切り離さずに dlclose() または shl_load() を使用した明示的なアンロードが暗黙に正常終了を戻すようにします。その後、共有ライブラリハンドルは shl_findsym() に対してのみ有効になります。 dlsym() 、 dlclose() 、および shl_unload() に対しては、 shl_load() または dlopen() を使用して次に明示的にロードするまで無効なままです。 | | nodirect | | 直接バインディングを禁止します。遅延ローディングにマークされたライブラリに対する参照については、1 つの「直接ヒント」のみが記録されます。これはデフォルトの動作です。 | | nonfatal | | -B immediate も指定した場合、プログラムの起動時にバインドできなかったコードシンボルは、それらが参照されるまでバインドが延期されます。 上記の -B immediate の説明を参照してください。 -B nonfatal は、解決できないシンボルに関するメッセージを表示しないので、それらのメッセージを表示するには -B verbose も指定します。 | | restricted | | シンボル定義の検索が、ライブラリがロードされた時点での可視シンボルのみに対して行われるようにします。 | | symbolic | | 共有ライブラリを生成するときにのみ使用します。 このオプションは、可能な場合は、ライブラリ内のすべてのシンボルが内部で解決されるようにします。
内部解決されたシンボルも、外部から参照できます。 デフォルト (-B
symbolic オプションなし) では、共有ライブラリ内のシンボルへの参照は、最も近接した定義で解決されます。
シンボルをエクスポートする最初のロードモジュール (a.out または共有ライブラリ)
が、最も近接した定義を持ちます。 複数のロードモジュールで、同じシンボルを定義しエクスポートすることができます。
共有ライブラリ内のシンボルへの参照は、シンボルが共有ライブラリ内で定義さられていても、他の共有ライブラリ内の定義で解決することができます。
このオプションを使うと、共有ライブラリ内のすべての参照が、共有ライブラリ内に定義されていれば、その定義の使用を強制できます。 -B symbolic と一緒に +e オプションや +ee オプションを使う方法についての詳細は、 +e オプションと +ee オプションを参照してください。 | | verbose | | シンボルをバインドするときに冗長メッセージを表示します。 -B nonfatal を指定していないときには、これがデフォルトです。 -B nonfatal を指定した場合、冗長メッセージを表示するには、-B verbose を明示的に指定しなければなりません。 |
バインディングモードの使用法についての詳細は、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。 |
| -C n | | このオプションは無視され、警告メッセージが出力されます。 |
| -D offset | | データセグメントの開始アドレス (16 進数) を設定します。
このオプションは、カーネルアプリケーションと、埋め込みアプリケーションで便利です。
64 ビットモードのデフォルトアドレスは 0x6000000000000000 で、32
ビットモードのデフォルトアドレスは 0x40000000 です。 |
| -E | | プログラムで定義されているすべてのシンボルを、共有ライブラリにエクスポートするためにマークします。 +compat モードでリンクする場合、 ld はリンクの対象共有ライブラリから実際に参照されているシンボルだけをマークします。 +std モードでリンクする場合は、すべてのシンボルがデフォルトでエクスポートされるので、シンボルが見えるように -E を指定する必要はありません。 しかし、このオプションを指定すると、エクスポートされるシンボルは副作用ですべて必要と見なされるため、
デッドコードを削除 (+Oprocelim) しても削除されません。 |
| -Fl | | アーカイブライブラリのロードを強制します。 +forceload と同じです。 |
| -Fw | | このオプションは無視され、警告が出力されます。 |
| -Fz | | このオプションは指定できますが、無視されます。 |
| -G | | 出力ファイルからロード不能データをすべて削除します。
このオプションは通常、デバッグ情報の削除に使用します。 +ild オプションと同時に指定することはできません。 注記: -G オプションを使うと、生成されたプログラムに対してシンボリックデバッガが使えなくなります。 |
| -I | | 実行時にプロファイル情報を収集するコードを組み込みます。
計測機能付きのプログラムが実行されると、プロファイルデータベースファイルが出力されます
(デフォルトの名前は、flow.data)。 プログラムの実行時に収集されるプロファイルデータは、 -P オプションと一緒に使用できます。
デフォルトの計測機能組み込みプログラムは動的な計測機能組み込みプログラム /opt/langtools/bin/caliper ですが、 +instrumenter オプションを使って、静的な計測機能組み込みプログラム /opt/langtools/bin/sin を呼び出すこともできます。 このオプションは、-P、 -O、 +ild、
または +O オプションとともに使用しないでください。 注記: +instrumenter sin を使う場合は、プログラムに計測機能を組み込む方法として、 ld
-I オプションではなく、コンパイラの +I オプションを使うようお勧めします。
リンカーを直接起動するときには、リンカーに -u__sin_core__ 、 -u__sin_init 、
および -lsin オプションを渡さなければなりません。
ライブラリとリンクする、計測機能付き共有ライブラリと計測機能付き共有実行可能プログラムの両方がある場合は、 -u オプションのほかに、 -h__sin_core__ オプションと -h__sin_lookup_ibt オプションも指定しなければなりません。
デフォルトまたは +instrumenter caliper を使う場合は、これ以外のリンカーオプションは必要ありません。 |
| -L dir | | デフォルトのディレクトリで libx.a、 libx.sl、 または libx.so を検索する前に、 dir で検索します。 複数のディレクトリを指定できますが、各ディレクトリの前には -L オプションを付けなければなりません。 -L オプションは、コマンド行の -l オプションの前でのみ有効です。 |
| -N | | 32 ビットモードでのみ、データがテキストの直後に置かれるようにし、テキストを書き込み可能にします。
このタイプのファイルは共有できません。 |
| -O | | リンカーの最適化をオンにします。 現在、最適化には、不要なプロシージャの除去が含まれます。 +O4 コンパイラオプションを選択すると、コンパイラによって -O がリンカーに渡されます。 このオプションは、 +ild オプションと併用できません。 リンカーの最適化に関する詳細は、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。 |
| -P | | 計測機能付きプログラム (-I オプションを参照)
によって生成されるプロファイルデータベースファイルを検査して、コードに対してプロファイルベースの最適化を行います。
このオプションは、 +ild オプションと一緒に使用しないでください。 |
| -Pd | | デバッグ可能な関数を並べ換えます。 通常、 -P は、 .o ファイル内のデバッグ情報付きの関数を並べ換えません。
並べ換えるとデバッグできなくなるためです。 このオプションはそれよりも優先され、関数を並べ換えます。
デフォルトでは、並べ換えは、flow.data から作成されたリンクオーダーファイルを基に実行されます。 -Pd オプションを指定すると、リンカーは並べ換えに
flow.data を使いません。 このオプションは、 +ild オプションと同時に使うことはできません。 注記: -Pd オプションを使うと、生成されたプログラムに対してシンボリックデバッガが使えなくなります。 |
| -PD filename | | -P オプションを用いてリンクした際に fdp が生成したリンクオーダー
ファイルをユーザー指定ファイルに保存します。 このオプションは、 +ild オプションと一緒に使用することはできません。 |
| -PF filename | | リンカーに対して、 /usr/ccs/bin/fdp を用いてリンクオーダーファイルを生成せず、指定されたファイルをリンクオーダーファイルとして用いるように指示します。
このオプションは、 +ild オプションと一緒に使用することはできません。 |
| -Q | | このオプションは無視されます。 |
| -R offset | | テキスト (コード) セグメントの開始アドレス (16 進数)
を設定します。 このオプションは、カーネルと埋め込みアプリケーションで便利です。
64 ビットモードのデフォルトアドレスは 0x4000000000000000 で、 32
ビットモードのデフォルトアドレスは 0x04000000 です。 -N オプションを指定すると、デフォルトは 0x1000
です。 |
| -S | | このオプションは無視され、警告メッセージが出力されます。 |
| -T | | このオプションは無視されます。 |
| -V | | 使用している ld のバージョン情報を示すメッセージが出力されます。 |
| -Z | | このオプションはデフォルトです。 null ポインターの実行時参照を可能にします。 cc(1) で -Z およびポインターの説明を参照してください (これは -z オプションの反対です)。 |
| +allowdups | | 複数シンボル定義を許可します。デフォルトでは、再配置可能なオブジェクト間で複数シンボル定義を行うと、致命的エラーの状態になります。このオプションでは、エラー状態を抑制し、最初のシンボル定義を使用することができます。 |
| +[no]allowunsats | | 未解決シンボルのエラー報告を制御します。 +allowunsats は、出力ファイルに未解決シンボルがある場合でもエラーのフラグをつけません。
これは再配置可能リンクおよび共有ライブラリ生成でのデフォルトです。 +noallowunsats は、出力ファイルに未解決シンボルがある場合はエラーのフラグをつけます。
これはプログラムファイルでのデフォルトです。 |
| +as mode | | カーネルが使用するアドレススペース モデルを制御します。
モデルの値は、 default, share_magic, exec_magic, shmem_magic, mpas のいずれかです。
現在のデフォルトは share_magic です。 デフォルト以外のモデル値に設定するには、
テキストセグメントとデータセグメントが連続領域に配置されるように、 -N コンパイラオプションを付けて実行ファイルを作成する必要があります。 |
| +b path_list | | -l または -l: オプションのいずれかで指定した、
実行可能出力ファイルに必要な共有ライブラリをプログラム実行時に検索するディレクトリをコロンで区切ったリストで指定します。
このディレクトリリストは、埋め込みパスになります。 +b を指定しないか、引き数がコロン
(:) だけの場合、 ld は -L オプションおよび LPATH 環境変数
(+s オプションを参照) によって指定されるすべてのディレクトリを使って、埋め込みパスを構築します。 |
| +cdp oldpath:newpath |
| | | このオプションは無視されます。 |
| +compat | | リンカーの互換モードをオンにします。 これは、PA-RISC
の 32 ビットリンクを模倣する動作です。 |
| +[no]copyobjdebug |
| | | +noobjdebug リンカーオプションを使うと、 +objdebug コンパイラオプションの効果が無効になります。
リンカーは、デバッグ情報の出力ファイルへのコピーを省略し、オブジェクトファイルからの +objdebug 情報の取り出しも省略します。
ただし、以前の -r リンクの結果として作成されたオブジェクトファイルがある場合、これらのファイルの +objdebug 情報は取り除かれません。 +nocopyobjdebug オプションを +noobjdebug オプションと一緒に使うと、 -r オプションで生成されたオブジェクトを含め、リンカーは、すべてのオブジェクトファイルから強制的に +objdebug 情報を取り除きます。
デフォルトは、 +copyobjdebug です。 |
| +[no]defaultrpath |
| | | デフォルトは、 +defaultrpath です。 +b オプションを指定しない限り、 -L で指定したパスが埋め込みパスに含まれます。 +b を使うと、 +b で指定したパスリストだけが埋め込みパスに含まれます。 +nodefaultrpath オプションを使うと、 -L オプションで指定したすべてのライブラリパスが、埋め込みパスから削除されます。
リンカーは、 -L オプションで指定されたライブラリパスを、リンク時に検索します。
実行時に検索されるライブラリパスは、 LD_LIBRARY_PATH 環境変数および SHLIB_PATH 環境変数で指定されているライブラリパス、 +b リンカーオプションで指定されているライブラリパス、デフォルトのライブラリパスだけです。 |
| +df file | | -P オプションと併用すると、このオプションは、file をプロファイルデータベース ファイルとして使用するように指定します。
デフォルト値は flow.data です。 FLOW_DATA 環境変数の説明を参照してください。
このオプションは、 +ild オプションと一緒に指定することはできません。 |
| +dpv | | procelim で除外されたプロシージャの情報を出力します。 +vtype procelim と同じです。 |
| +dumpextern filename |
| | | 実行可能プログラムと共有ライブラリのリンク時に有効です。 リンカーによって filename で指定したファイルに、すべての外部シンボルがダンプされます。
ロードモジュール (a.out または共有ライブラリ) 内で参照され、ロードモジュール内で定義されていないすべての外部シンボルが、指定したファイルにダンプされます。 -Bextern:filename オプションを使うと、このファイルをコンパイラに戻すことができます。
詳細については、コンパイラオプションの -Bextern:filename、 -Bhidden、 および -Bprotected を参照してください。 |
| +e symbol | | 共有ライブラリまたはプログラムを構築する際、 ダイナミックローダーにエクスポートするシンボルをマークします。
明示的にマークしたシンボルだけが エクスポートされます。 共有ライブラリを構築する際、
エクスポートされないシンボルへの呼び出しが内部解決されます。 +e オプションまたは +ee オプションを -B
symbolic と一緒に使うと、指定したシンボルへの参照は、定義されている場合、内部解決されます。
実行時の動作は、 +e だけを使った場合と異なることがあります。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 +e オプションを付加しなければなりません。 |
| +ee symbol | | このオプションは、シンボルをエクスポートする点で +e オプションに似ています。
しかし、 +e オプションとは異なり、 +ee オプションはファイル内の他のどのシンボルの可視性も変更しません。 +compat モードの実行可能プログラムを構築する場合、 ld はデフォルトで、リンク時に見える共有ライブラリが実際に参照しているシンボルだけをエクスポートします。 +ee オプションと +compat オプションを一緒に指定すると、デフォルトでエクスポートされているシンボルを隠すことなく、指定したシンボルがエクスポートされます。 +std モードのリンクでは、全シンボルがデフォルトでエクスポートされるので、シンボルを可視にするために +ee は必要ありません。
しかし、シンボルの必要性を判断する際に別の副作用があり、 デッドコード削除
(+Oprocelim) を使用してもデッドコードが除去されません。 +ee オプションは、 +hideallsymbols のようなオプションが同時に指定されたときも、エクスポートの動作は変わりません。 複数のオプションシンボルペアをコマンド行で使って、 symbol を複数指定することができます。 つまり、指定する各 symbol の前に、 +ee オプションを付加しなければなりません。 |
| +fb | | リンカーで生成された実行可能ファイルに対して fastbind
ツールを実行するように、 リンカーに指示します。 実行可能ファイルは共有ライブラリとリンクされます。 fastbind(1) についての詳細は、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。
このオプションは、 +ild オプションと一緒に指定することはできません。 |
| +fbu | | fastbind ツールに -u オプションを渡します。 fastbind(1) についての詳細は、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。
このオプションは、 +ild オプションと一緒に指定することはできません。 |
| +filter shared_library_path |
| | | 共有ライブラリのフィルター機能を有効にします。 この機能を使えば、大規模なライブラリを
1 つの「フィルター」といくつかの「処理系」ライブラリに分割できるので、共有ライブラリを効率的に構成できます。 shared_library_path には、フィルターライブラリの場所を指定します。 詳細は、 『『HP-UX
リンカー & ライブラリー オンライン ユーザーズガイド』』 を参照してください。 |
| +fini function_name |
| | | ターミネータ関数を指定します。 コマンド行上では、起動される順に左から右へ指定します。 複数のオプションシンボルペアをコマンド行で使って、ターミネータ関数を複数指定することができます。
つまり、指定する各関数の前に、 +fini オプションを付加しなければなりません。 |
| +[no]forceload | | デフォルトは、 +noforceload です。 +forceload オプションは、アーカイブライブラリからすべてのオブジェクトファイルをロードします。 +noforceload は、アーカイブライブラリから必要なオブジェクトファイルだけをロードします。
モードは明示的に、あるいはデフォルトで選択でき、変更されるまでそのモードのままです。 |
| +gst | | シンボルのインポート/エクスポートエントリーの値を検索するために使用する、グローバルシンボル
テーブルのハッシュメカニズムを有効にします。 +gst と、これに関連するオプションを使用すると、 エクスポートされたシンボルの検索を高速化するグローバルシンボル
テーブルが利用され、性能が向上します。 詳細は dld.so(5) と 『『HP-UX リンカー & ライブラリー
オンライン ユーザーズガイド』』 を参照してください。 |
| +gstbuckets size | | このオプションは無視されます。 |
| +gstsize size | | グローバルシンボル テーブルのハッシュメカニズムに使用するハッシュ配列のサイズを指定します。
デフォルト値は 1103 です。 この値は、実行時に _HP_DLDOPTS 環境変数へ値 -symtab_size prime number を設定することで変更できます。 この値は、 chatr +gstsize size file を用いて設定できます。 |
| +h internal_name | | 共有ライブラリを作成する際に、internal_name をライブラリ名として記録します。 ライブラリが別の実行可能ファイル
(プログラムまたは共有ライブラリ) をリンクするために使用される場合、
入力共有ライブラリのパス名の代りに、この internal_name が出力ファイルのライブラリリストに記録されます。
つまり、 +h を使用しない場合、共有ライブラリには内部名がないため、その共有ライブラリを使って実行可能ファイルを構築すると、リンカーは自分が参照しているライブラリ名を記録します。 +h オプションがリンク行に複数指定されている場合、リンカーは最初のオプションを使い、警告メッセージを表示します。 |
| +help | | HP-UX オペレーティングシステムに付属のヘルプブラウザ
ユーティリティ 『『HP-UX リンカー & ライブラリー
オンライン ユーザーズガイド』』 を表示します。 詳細は、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。 |
| +hideallsymbols | | +e で明示的にエクスポートしない限り、すべてのシンボルのエクスポートを禁止します。
このオプションを使うと、すべてのシンボルがシンボルテーブル内で「ローカル」とマークされます。 -h オプションと +e オプションも参照してください。 |
| +ild | | 増分リンクを指定します。 出力ファイルが存在しないか、出力ファイルが +ild オプションなしで作成されている場合、リンカーは初期増分リンクを実行します。
作成された出力ファイルは、以降の増分リンクで使用できます。 増分リンクオプションは、実行可能プログラムと共有ライブラリのどちらのリンクにも有効です。 次のオプションは、 +ild オプションと同時に使うことはできません。 +ild と同時に使用できない次の ld オプションのいずれかを指定すると、リンカーは警告メッセージを出力し、 +ild オプションを無視します。 | -r | | 再配置可能オブジェクトファイルを作成します。 | | ストリップオプション: | | -s、 -x、
および -G は、出力ファイルをストリップします。 | | 最適化オプション: | | -I、 -O、 -P、 -PD、 -PF、 +df file、 +fb、 +fbu、 +fbs、 +pgm name、 +Oprocelim |
次のオプションは +ild オプションと併用できますが、制限事項があります。 | -D offset、 -R
offset | | | | データセグメントおよびテキストセグメントのオリジンを設定します。
初期増分リンク後にオフセットを変更すると、リンカーは初期増分リンクを自動的に実行します。 | | -k mapfile | | デフォルト以外のマップファイルを指定します。 +ild オプションと一緒に、ユーザー指定のマップファイル仕様を使用できます。
ただし、初期増分リンク後はマップファイルを変更しないでください。 初期リンク後にマップファイルを変更すると、初期増分リンクが自動的に行われます。 |
|
| +ildnowarn | | 増分リンクに関する警告を抑制します。 デフォルトでは、リンカーは増分リンクに関連する警告をすべて出力します。 +ild と +ildrelink のどちらも指定していない場合、このオプションは無視されます。 |
| +ildpad percentage |
| | | 増分リンカーが割り当てるパディングの量を、パディングされるオブジェクトファイル構造のサイズに対する割合
(percentage) で制御します。 デフォルトでは、リンカーは 20 % 未満のパディングスペースを割り当てます。 +ild と +ildrelink のどちらも指定していない場合、このオプションは無視されます。 |
| +ildrelink | | 出力ロードモジュールの状態にかかわらず、初期増分リンクを実行します。 状況によっては (たとえば、内部パディングスペースの不足)、増分リンカーは初期増分リンクを強制的に実行することがあります。 +ildrelink オプションを使用して定期的に出力ファイルを再構築することにより、このような予期しない初期増分リンクが発生するのを防ぐことができます。 |
| +init function_name |
| | | 初期化関数を指定します。 コマンド行では、起動の逆順に
(右から左へ) この関数を指定します。 複数のオプションシンボルペアをコマンド行で使って、初期化関数を複数指定することができます。
つまり、指定する各初期化関数の前に、 +init オプションを付加しなければなりません。 |
| +instrumenter name |
| | | 使用する計測機能組み込みプログラムを指定します。
指定できるのは、 sin または caliper だけです。
デフォルトは caliper です。 sin を指定すると、リンカーは自動的に /opt/langtools/bin/sin を呼び出します。 caliper を指定すると、プログラム実行時に、動的ローダーが自動的に /opt/langtools/bin/caliper を呼び出します。 |
| +interp filename | | dld のパスを変更して、 filename で指定したプログラムを、ダイナミックローダーの「インタプリタ」プログラムとして使います。 特別なバージョンの
dld.so をデバッグする際に便利です。 デフォルトのパスは、32 ビットプログラムの場合は /usr/lib/hpux32/uld.so:/usr/lib/hpux32/dld.so、
64 ビットプログラムの場合は /usr/lib/hpux64/uld.so:/usr/lib/hpux64/dld.so です。 |
| +interposer | | 共有ライブラリの構築時にのみ使用します。インタポジションとして使用可能な共有ライブラリを作成します。直接バインド情報
(-B direct を参照) を使用したアプリケーションの参照を解決する場合、ダイナミックローダーはまずインタポジションライブラリを検索します。すべてのインタポジションライブラリに対してシンボルを解決できなかった場合は、直接バインディング情報が使用されます。 |
| +k | | リンク中にエラーがまったく発生しなかったときだけ実行可能ファイルを作成するよう、リンカーに指示します。
(システムエラーや参照未解決) エラーが発生した場合、出力ファイルは削除されます。 |
| +[no]lazyload | | 共有ライブラリの遅延ローディングを有効 [無効] にします。 +lazyload ライブラリのロードは、実行中にそのライブラリが参照されるまで遅延されます。 +lazyload と +nolazyload オプションの両方を、リンク時のコマンド行で同時に指定しても構いません。
指定されたモード (明示的でもデフォルトでも) は、リンクのコマンド行で、
次にこの 2 つのオプションのいずれかが指定されるまで、 後続のすべてのライブラリに対して有効です。 次の条件を 1 つ以上を満たすライブラリでは、lazy ローディングは無効です。 リンカーは、このようなライブラリを暗黙的に +nolazyload ライブラリに変換します。 +lazyload 共有ライブラリの依存ライブラリは、リンク行上に明示的に指定されていない限り、リンク時には処理されません。 LD_NOLAZYLOAD 環境変数を設定することにより、実行中に遅延ローディングを無効にすることができます。 |
| +mergeseg | | 実行可能ファイルにフラグを設定して、そのファイルがダイナミックローダーによって起動されるときにロード対象共有ライブラリのすべてのデータセグメントが
1 ブロックにマージされるようにします。 動的にロードされる各共有ライブラリのデータセグメントは、依存ライブラリのデータセグメントともマージされます。
このようにマージすれば、カーネルで大きなページテーブルエントリーを使うことが可能になり、実行時の性能が向上します。 |
| +n | | リンカーが、アーカイブライブラリや共有ライブラリを検索する前に、オブジェクトモジュールをすべてロードするようにします。
それからリンカーは、コマンド行に指定されたアーカイブライブラリと共有ライブラリを左から右の順に検索します。
コマンド行のライブラリの左から右への検索は、未解決シンボルがなくなるか、
検索で新しい定義が追加されなくなるまで繰り返されます。 このオプションは、互いに依存するシンボルを持った 2 つのライブラリを指定する場合に有効です。 |
| +nodefaultmap | | デフォルトのメモリーマップを使わないようにします。 -k リンカーオプションによってマップファイルを指定する必要があります。 |
| +nodynhash | | +gst オプションでの実行可能プログラムまたは共有ライブラリの .dynhash
セクションの作成に関する、デフォルトのリンカー動作を無効にします。
ライブラリまたは実行可能プログラムのグローバルシンボルテーブルを事前に作成しても、検索機能で使用されることがほとんどない場合、または事前にハッシュ値を計算して格納するためのオーバーヘッドが高すぎる場合に、このオプションを使用して、それらの計算済みのハッシュテーブル情報を生成しないようにします。
このオプションは、 -r オプションとともに使用すると効果がなくなります。 |
| +noenvvar | | ダイナミックローダーが実行時にダイナミックパス検索用環境変数 LD_LIBRARY_PATH 、 SHLIB_PATH および $ORIGIN を無視するようにします。
デフォルトまたは +std オプションを指定した場合、ダイナミックローダーはこの環境変数を探します。
つまり、この環境変数が有効になります。 +compat オプションまたは +noenvvar オプションを指定した場合、このオプションが有効になり、ダイナミックローダーが変数を無視します
(環境変数が無効になります)。 +compat オプションまたは +std オプションを参照してください。
実行可能プログラムや共有ライブラリ内のこのオプションのステータスは、 chatr コマンドの「shared
library dynamic path search (共有ライブラリダイナミックパス検索)」の出力で表示されます。
詳細については、 chatr(1) を参照してください。
このオプションは通常、セキュアプログラムに使用します。 |
| +noobjdebug | | +objdebug コンパイラオプションを無効にし、すべてのデバッグ情報を実行可能ファイルにコピーします。 +objdebug コンパイラオプションを -g オプションとともに使用すると、リンカーは出力ファイルへデバッグ情報をコピーせず、オブジェクトファイル内にデバッグ情報を残します。
リンク時に +noobjdebug オプションを指定すると、リンカーがデバッグ情報を出力ファイルにコピーするようにし、 +objdebug コンパイラオプションの効果を無効にすることができます。 +nocopyobjdebug も参照してください。 |
| +nosectionmerge | | -r オプションとともに使用して、プロシージャが個別に配置されるようにします。
デフォルトでは、プロシージャはすべて単一のセクションにマージされます。 |
| +nosmartbind | | このオプションは無視されます。 |
| +nosrcpos | | IC64 (32 ビットおよび 64 ビット) では、コンパイラオプションの +srcpos がデフォルトです。 -g コンパイラオプションを指定しなくても、 +srcpos はコンパイラがデバッグ情報部を作成するようにします。
デフォルトの +srcpos オプションは、いつでも実行可能プログラムにデバッグ情報部をコピーするため、実行可能プログラムが大きくなります。 +srcpos を使うと、 -g コンパイラオプションを指定しなくても、 cxperf、 caliper、
および sin などのツールでプログラムのプロファイリングを行うことができます。 +nosrcpos リンカーオプションを使うと、デフォルトの +srcpos コンパイラオプションが無効になり、リンク時にデバッグ情報が削除されます。 +nosrcpos は "-g
+objdebug" と一緒に使うこともでき、 +objdebug モードを完全に強制することができます
(オブジェクトファイルからデバッグ情報をコピーしません)。 |
| +objdebugonly | | 非 objdebug のオブジェクトやアーカイブのデバッグ情報を無視して、 +objdebug モードで実行します。 +objdebug オプションでコンパイルされたファイルだけをデバッグする場合は、 +objdebugonly を使用すると、 +noobjdebug でコンパイルされたファイルのデバッグ情報の処理をリンカーが省略するため、リンク時間を短縮することができます。 |
| +origin shared_library_name -lx |
| | | (-l オプションの前か、共有ライブラリの名前の前でのみ使います。)
リンカーが 共有ライブラリリストの 共有ライブラリ名 の前に $ORIGIN を追加し、出力モジュールに DF_ORIGIN フラグを設定するようにします。
実行時、ダイナミックローダーは親モジュール (オブジェクトモジュール、共有ライブラリ、または実行可能プログラム)
の現在のディレクトリを調べ、 $ORIGIN をそのディレクトリ名で置き換えます。
例を次に示します。 $ ld -dynamic main.o +origin libx.so -L /usr/lib/hpux32/ -lc +origin オプションが利用可能ですが、 +b オプションを使って埋め込みパス内で $ORIGIN を指定する方法をお勧めします。
例を次に示します。 $ ld -dynamic main.o -L /usr/lib/hpux32/ -lc +b \$ORIGIN $ORIGIN についての詳細は、 +help オプションを使うか、 『『HP-UX リンカー & ライブラリー
ユーザーズガイド』』 を参照してください。 |
| +paddata pagesize |
| | | pagesize の倍数になるように、データセグメントをゼロでパディングします。
これによりページ割り当てが改善されます。つまり、カーネルがより少数の大きいデータページを割り当てることができるようになり、TLB
ミスが減ります。 このオプションを使うと、出力ファイルのサイズが大きくなります。 |
| +padtext pagesize |
| | | pagesize の倍数になるように、テキストセグメントをゼロでパディングします。
これによりページ割り当てが改善されます。つまり、カーネルがより少数の大きいデータページを割り当てることができるようになり、TLB
ミスが減ります。 このオプションを使うと、出力ファイルのサイズが大きくなります。 |
| +pd size | | データ用に使用する仮想メモリーのページサイズを指定します。
サポートされているサイズは 4K、 16K、 64K、 256K、 1M、 4M、 16M、 64M、 256M、 D、 L です。
サイズを D にすると、使用するページのサイズをカーネルが選択します。
サイズを L にすると、できるかぎり大きなページサイズが使用されます。
要求したサイズが受け入れられない場合、実際のページサイズは変わることがあります。 |
| +pdzero | | このオプションは無視されます。 |
| +pgm name | | -P オプションと一緒に使用し、
プロファイルデータベース ファイルにおけるルックアップ名として、name を使用するように指定します。 デフォルトは出力ファイルのベース名です
(-o オプションによって指定されます)。 このオプションは、 +ild オプションと一緒に使用することはできません。 |
| +pi size | | 命令用に使用する仮想メモリーのページサイズを指定します。
詳細は +pd オプションを参照してください。 |
| +plabel_cache flag |
| | | このオプションは無視されます。 |
| +profilebucketsize [16|32] |
| | | プロファイリングサンプルカウンターバケットのサイズを指定します。
指定できる値は、16 または 32 です。 詳細については、 gprof(1) を参照してください。 |
| +s | | このオプションは、デフォルトです。 実行時にダイナミックローダーが環境変数 SHLIB_PATH および LD_LIBRARY_PATH を使用して、ダイナミックライブラリ検索可の実行可能出力ファイルが必要とする共有ライブラリを、検索できることを示します。
ダイナミックライブラリ検索が可能な共有ライブラリは、"/" (スラッシュ)
文字がない内部名 (たとえば、共有ライブラリパス名のベース名) を持つか、内部名がなくて -l や -L が指定されたか、共有ライブラリパス名のベース名だけを持ちます。
この環境変数は、ディレクトリをコロンで区切ったリストとして設定する必要があります。 +compat オプションを使う互換モードでは、 +s と +b を両方とも使用する場合、コマンド行での相対的な順序で、どのパスリストを最初に検索するかが決まります
(+b オプションを参照)。 標準モード (デフォルトモードまたは +std オプションを使った場合のモード)
では、 +s と +b の順序はダイナミックローダーの検索の順序に影響せず、環境変数は必ず最初に検索されます。 |
| +rpathfirst | | このオプションは、 RPATH (埋め込みパス)
で指定されているパスが、 LD_LIBRARY_PATH や SHLIB_PATH で指定されているパスよりも前に、共有ライブラリの検索で使われるようにします。
このオプションは、 LD_LIBRARY_PATH、 SHLIB_PATH、 RPATH (埋め込みパス)
というデフォルトの検索順序を変更します。 |
| +std | | このオプションはデフォルトです。 リンカーの標準モードをオンにします。
このオプションは、 +compat オプションの反対です。
このオプションを指定したときに設定されるオプションは、 -dynamic です。 このオプションを指定したときにオフになるか、無視されるオプションは、 +compat、 +noenvvar、 -noshared です。 |
| +stripunwind | | アンワインドテーブルを出力しません。 このオプションにより、実行可能ファイルのサイズが小さくなります。
デバッグや aC++ の例外処理にアンワインドテーブルが不要であれば、このオプションを使ってください。 注記: +stripunwind オプションを使うと、生成されたプログラムに対してシンボリックデバッガが使えなくなることがあります。 |
| +tools | | このオプションは無視されます。 |
| +vallcompatwarnings |
| | | このオプションは無視されます。 |
| +v[no]compatwarnings |
| | | このオプションは無視されます。 |
| +v[no]shlibunsats |
| | | 共有ライブラリが使用する未解決シンボルのリストのプリントを有効
[無効] にします。デフォルトは +vnoshlibunsats です。
リンカーから報告される未解決シンボルの中には、シンボルを参照するモジュールが使用されていないため実行時に不要なものもあります。 |
| +vtype type | | リンク動作について冗長な情報を出力します。 type には、次の値を指定します。 | all | | +vtype オプションのすべての情報を出力します。 -v と同じです。 | | files | | ロードされた各オブジェクトファイルの情報を出力します。 | | heap | | リンクで使用されたヒープのサイズの情報を出力します。 | | libraries | | 検索されたライブラリの情報を出力します。 | | procelim | | +Oprocelim オプションで削除されたセクションの情報を出力します。 | | sections | | 出力ファイルに追加された各入力セクションの情報を出力します。 | | symbols | | 入力ファイルに定義されていた、または入力ファイルから参照されたグローバルシンボルの情報を出力します。 |
|
| +FP flags | | プログラム起動時に浮動小数点演算の環境をどのように初期化
するかを指定します。 デフォルトでは、動作はすべて無効にされます。
以下のフラグがサポートされます (大文字のフラグは有効、 小文字のフラグは無効を表します)。 | D (d) | | 非正規化値の突発的なアンダーフロー (急にゼロになります)
を有効にします。 | | I (i) | | 不正確な結果を生成する浮動小数点演算をトラップします。 | | N (n) | | 非正規化 (Denormal|Unnormal) オペランドの浮動小数点演算をトラップします。 | | O (o) | | 浮動小数点オーバーフローをトラップします。 | | U (u) | | 浮動小数点アンダーフローをトラップします。 | | V (v) | | 無効な浮動小数点演算をトラップします。 | | Z (z) | | ゼロ除算をトラップします。 |
実行時にこれらの設定値を動的に変更する方法については、 fesettrapenable(3M) を参照してください。 |
| +I function | | 共有ライブラリを構築する際に、初期化関数の名前を指定します。
共有ライブラリには、複数のイニシャライザを指定することもできます。
イニシャライザは、コマンド行で指定した順に実行されます。 複数のオプションシンボルペアをコマンド行で使って、初期化関数を複数指定することができます。
つまり、指定する各イニシャライザの前に、 +I オプションを付加しなければなりません。 このオプションは、互換性のためにサポートされています。 +init オプションと +fini オプションの使用をお勧めします。
初期化関数についての詳細は、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。 |
| +O[no]fastaccess | | このオプションは、無視されます。 |
| +O[no]procelim | | アプリケーションから参照されていないプロシージャの削除を有効
[無効] にします。デフォルトは +Onoprocelim です。
プロシージャの削除は、レベル 0 の場合も含めて、すべての最適化レベルで実行されます。
詳細については、 +help オプションを使うか、 『『HP-UX
リンカー & ライブラリー ユーザーズガイド』』 を参照してください。
このオプションは、 +ild オプションと一緒に使用することはできません。 |
| +Oreusedir=dir | | このオプションは無視され、警告メッセージが出力されます。 |
| +Oselectivepercent n |
| | | インライン化のようなプロシージャ間の最適化を行うために、オブジェクトファイルの先頭から n パーセントの部分をハイレベルオプティマイザに渡すよう、プロシージャ間オプティマイザ
ドライバに指示します。 このオプションは、動的プロファイリングがあるときに最適化レベル
4 (+O4) で機能するように設計されています。 |
| +Oselectivesize size |
| | | このオプションを使うことはできますが、無視されます。 |
| +OselectiveO3 | | このオプションを使うことはできますが、無視されます。 |
| +Ostaticprediction |
| | | このオプションは無視され、警告メッセージが出力されます。 |