日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
LD.LLD(1) FreeBSD 一般コマンドマニュアル LD.LLD(1) 名称 ld.lld -- LLVM プロジェクトの ELF リンカ 書式 ld.lld [options] objfile ... 解説 リンカは、1 つ以上のオブジェクト、アーカイブとライブラリファイルを取り、 それらを出力ファイル (実行形式、共有ライブラリまたは別のオブジェクトファ イル) に統合します。それは、入力ファイルからコードとデータをリロケーショ ンし、それらの間のシンボルの参照を解決します。 ld.lld は、GNU BFD とゴールドリンカのためのドロップイン (交換用の) 置換で す。それは、GNU リンカとして同じコマンド行引数とリンカスクリプトのほとん どを受け付けます。 ld.lld は、現在 i386, x86-64, ARM, AArch64, PowerPC32, PowerPC64, MIPS32, MIPS64, RISC-V, AMDGPU, Hexagon と SPARC V9 ターゲットをサポートしていま す。ld.lld は、lld-link として呼び出されるなら、Microsoft link.exe 互換リ ンカとして、ld.ld64 として呼び出されるなら、macOS の ld として動作しま す。すべてのこれらのターゲットは、常にサポートされますが、ld.lld が構築さ れたので、利用者は、クロスリンカと同様にネイティブのリンカとして、常に ld.lld を使用することができます。 オプション 多くのオプションには、単一文字と長い形式があります。文字 o で始まるオプ ション以外の長い形式のオプションを使用するとき、オプション名に先行する 1 つまたは 2 つのダッシュのいずれかを使用して指定されます。o で始まる長いオ プションは、-o path オプションとの混乱を避けるために、2 つのダッシュを必 要とします。 --allow-multiple-definition シンボルが、複数回定義されるなら、エラーではありません。最初の定 義が使用されます。 --allow-shlib-undefined 共有ライブラリの未解決の参照を許可します。このオプションは、共有 されたファイブラリをリンクするとき、デフォルトで、有効です。 --apply-dynamic-relocs リンク時の値を動的なリロケーションに適用します。 --as-needed 使用されるなら、共有ライブラリのための DT_NEEDED のみを設定しま す。 --auxiliary=value DT_AUXILIARY フィールドを、指定された名前に設定します。 --Bdynamic, --dy 共有ライブラリに対してリンクします。 --Bstatic, --static, --dn 共有ライブラリに対してリンクしません。 -Bno-symbolic デフォルトの可視性定義のシンボルを -shared のローカルにバインドし ません (デフォルト)。 -Bsymbolic デフォルトの可視性定義のシンボルを -shared. のローカルにバインド します。また、DF_SYMBOLIC フラグを設定します。 -Bsymbolic-functions デフォルトの可視性定義の関数シンボルを -shared のローカルにバイン ドします。 -Bsymbolic-non-weak-functions デフォルトの可視性定義の STB_GLOBAL 関数シンボルを -shared のロー カルにバインドします。 --build-id=value 構築 ID の注を生成します。value は、fast, md5, sha1, tree, uuid, 0xhex-string と none の 1 つを指定できます。tree は、sha1 のため のエイリアス (別名) です。タイプ fast, md5, sha1 と tree の構築 ID は、オブジェクト内容から計算されます。fast は、暗号論的に安全 であることを意図していません。 --build-id --build-id=fast と同義語。 --color-diagnostics=value 診断で色を使用します。value は、always, auto と never の 1 つを指 定できます。auto は、出力が端末にであるときかつそのときに限り、色 を有効にします。 --color-diagnostics --color-diagnostics=auto のためのエイリアス (別名)。 --compress-debug-sections=value DWARF デバッグセクションを圧縮します。value は、none または zlib を指定できます。デフォルト圧縮レベルは、そのレベルで、通常うまく 圧縮するデバッグ情報として 1 (最速) ですが、利用者がそれをより圧 縮したいなら、圧縮レベルを 6 に設定するために -O2 を指定すること ができます。 --cref 相互参照テーブルを出力します。-Map が指定されているなら、マップ ファイルに印刷 (出力) します。 --define-common, -d 空白を共通シンボルに割り当てます。 --defsym=symbol=expression シンボルの別名 (エイリアス) を定義します。expression は、別のシン ボルまたはリンカスクリプト表現を指定できます。例えば、 `--defsym=foo=bar' または `--defsym=foo=bar+0x100'。 --demangle シンボル名を demangle します。 --disable-new-dtags 新しい動的なタグを無効にします。 --discard-all, -x すべてのローカルなシンボルを削除します。 --discard-locals, -X 一時的なローカルなシンボルを削除します。 --discard-none シンボルテーブルのすべてのシンボルを保持します。 --dynamic-linker=value 動的なリンクされた実行形式のために使用される動的なリンカを指定し ます。これは、タイプ PT_INTERP の ELF セグメントに記録されます。 --dynamic-list=file --export-dynamic-symbol-list に似ています。共有オブジェクトを作成 するとき、-Bsymbolic を意味しますが、DF_SYMBOLIC を設定しません。 --EB OUTPUT_FORMAT コマンドでビッグエンディアンの形式を選択します。 --EL OUTPUT_FORMAT コマンドでリトルエンディアンの形式を選択します。 --eh-frame-hdr .eh_frame_hdr セクションと PT_GNU_EH_FRAME セグメントヘッダの作成 を要求します。 --emit-relocs, -q 出力のリロケーションを生成します。 --enable-new-dtags 新しい動的なタグを有効にします。 --end-lib あたかもそれらが、アーカイブとともであるかのように、扱われるべき オブジェクトのグループを終了します。 --entry=entry エントリポイントのシンボルの名前。 --error-limit=value 停止の前に出力するエラーの最大の数。0 の値は、制限がないことを示 します。 --error-unresolved-symbols エラーとして未解決のシンボルを報告します。 --error-handing-script=script_path 最初の引数として tag、2 番目引数として追加のパラメータを指定し て、何らかのエラーのとき、スクリプト script_path を呼び出します。 スクリプトは、成功すると 0 を返すことが期待されます。それ以外の値 は、一般的なエラーとみなされます。tag は、不足しているライブラリ の名前が続く、missing-lib です。undefined-symbol は、未定義のシン ボルの名前が続きます。 --execute-only 読み込むことができない実行形式セクションをマークします。このオプ ションは、AArch64 でのみ現在サポートされています。 --exclude-libs=value 静的なライブラリを自動的なエクスポートから除外します。 --export-dynamic, -E 動的なシンボルテーブルに symbol を含めます。 --export-dynamic-symbol=glob (実行形式) 一致する非ローカルで定義されたシンボルを動的シンボル テーブルに置きます。(共有オブジェクト) 一致した非ローカルな STV_DEFAULT シンボルへの参照は、たとえそれが -Bsymbolic, -Bsymbolic-functions または --dynamic-list によって、別のやり方で あっても、共有オブジェクト内での定義にバインドされるべきではあり ません。 --export-dynamic-symbol-list=file file から動的シンボルのパターンのリストを読み込みます。各パターン で --export-dynamic-symbol を適用します。 --fatal-warnings エラーとして警告を扱います。 --filter=value, -F value DT_FILTER フィールドを指定された値に設定します。 --fini=symbol ファイナライザ (finalizer) 関数を指定します。 --format=input-format, -b input-format このオプションに続いている入力の形式を指定します。input-format は、binary, elf と default の 1 つを指定できます。default は、elf のための同義語です。 --gc-sections 未使用のセクションのガベージコレクションを有効にします。 --gdb-index .gdb_index セクションを生成します。 --hash-style=value ハッシュスタイルを指定します。value は、sysv, gnu または both を 指定できます。both がデフォルトです。 --help ヘルプメッセージを印刷 (表示) します。 --icf=all 同一のコードの折り畳みを有効にします。 --icf=safe 安全な同一のコードの折り畳みを有効にします。 --icf=none 同一のコードの折り畳みを無効にします。 --ignore-data-address-equality データのアドレスの平等を無視します。C/C++ は、ユニークなアドレス がある各データを必要とします。このオプションによって lld は、要件 を壊す安全でない最適化を行なうことができます。読み込み専用データ のコピーを作成するか、または偶然同じ値がある 2 つ以上の読み込み専 用のデータをマージします。 --ignore-function-address-equality 関数のアドレスの平等を無視します。このオプションによって、non-PIC 呼び出しは、共有オブジェクトのデフォルトでない目に見える関数を許 可します。関数は、実行形式と共有オブジェクト内の異なるアドレスが あります。 --image-base=value ベースアドレスを value に設定します。 --init=symbol イニシャライザ (initializer) 関数を指定します。 --keep-unique=symbol ICF の間に symbol を折りたたみません。 -l libName, --library=libName 使用するライブラリの root の名前。 -L dir, --library-path=dir ディレクトリをライブラリの検索パスに追加します。 --lto-aa-pipeline=value LTO の間に実行する AA パイプライン。--lto-newpm-passes とともに使 用されます。 --lto-newpm-passes=value LTO の間に実行するパス。 --lto-Oopt-level LTO のための最適化レベル。 --lto-partitions=value LTO codegen パーティションの数。 -m value ターゲットのエミュレーションを設定します。 --Map=file, -M file file へのリンクマップを印刷 (表示) します。 --nmagic, -n 静的なライブラリに対してリンクする整列セクションをページ化しませ ん。 --no-allow-shlib-undefined 共有ライブラリの未解決の参照を許可しません。このオプションは、実 行形式をリンクするとき、デフォルトで、有効です。 --no-as-needed 常に、共有ライブラリのために DT_NEEDED を設定します。 --no-color-diagnostics 診断で色を使用しません。 --no-define-common 空白を共通シンボルに割り当てません。 --no-demangle シンボル名を demangle しません。 --no-dynamic-linker .interp セクションの出力を抑制します。 --no-fortran-common COMMON シンボルを上書きする定義のためにアーカイブメンバを検索しま せん。 --no-gc-sections 未使用のセクションのガベージコレクションを無効にします。 --no-gnu-unique STB_GNU_UNIQUE シンボルのバインディングを無効にします。 --no-merge-exidx-entries .ARM.exidx エントリのマージを無効にします。 --no-nmagic 整列セクションをページ化します。 --no-omagic 書き込み可能であるテキストデータセクションを設定しません、整列セ クションをページ化します。 --no-relax ターゲット特有のの緩和を無効にします。x86-64 について、これは、 R_X86_64_GOTPCRELX と R_X86_64_REX_GOTPCRELX GOT 最適化を無効にし ます。 --no-rosegment 読み込み専用の実行形式でないセクションをそれら自体のセグメントに 置きません。 --no-undefined-version 未定義のシンボルを参照するバージョンスクリプトを報告します。 --no-undefined たとえリンカが、共有ライブラリを作成していても、未解決のシンボル を報告します。 --no-warn-symbol-ordering ファイルを順序付けしているシンボルがある問題またはグラフプロファ イルの呼び出しに関して警告しません。 --no-whole-archive ロードしているアーカイブメンバのデフォルト振る舞いを復元します。 --no-pie, --no-pic-executable 位置独立 (position independent) の実行形式を作成しません。 --noinhibit-exec それがまだ使用可能なときはいつでも、実行形式の出力ファイルを保持 します。 --nostdlib コマンド行で指定されたディレクトリのみを検索します。 -o path 出力の実行形式、ライブラリまたはオブジェクトを path に書き込みま す。指定されないなら、a.out は、デフォルトとして使用されます。 -Ovalue 出力ファイルのサイズを最適化します。value は、次の通りです: 0 文字列マージを無効にします。 1 文字列マージを有効にします。 2 文字列の末尾のマージを有効にします。--compress-debug-sections が与えられるなら、1 の代わりに圧縮レベル 6 でデバッグセクショ ンを圧縮します。 -O1 は、デフォルトです。 --oformat=format 出力オブジェクトファイルのための形式を指定します。唯一のサポート される format (形式) は、ELF ヘッダなしで出力を生成する binary で す。 --omagic, -N 読み込み可能で、書き込み可能である、テキストとデータセクションを 設定し、整列セクションをページ化せず、静的なライブラリに対してリ ンクします。 --opt-remarks-filename file YAML 形式の最適化の備考 (remark) を file に書き込みます。 --opt-remarks-passes pass-regex pass-regex と一致しているパスを許可するだけによって最適化の意見に フィルタリングします。 --opt-remarks-with-hotness 最適化の備考 (remark) ファイルにホットネス (hotness) 情報を含めま す。 --orphan-handling=mode どのように孤立セクションが処理されるかを制御します。孤立セクショ ンは、リンカのスクリプトで特に言及されなかったものです。mode は、 次になります: place 孤立セクションを適切な出力セクションに置きます。 warn place のために孤立セクションを置き、また警告を報告します。 error place のために孤立セクションを置き、またエラーを報告します。 place が、デフォルトです。 --pack-dyn-relocs=format 与えられた形式で動的リロケーションをパックします。format は、次に なります: none パックしません。動的リロケーションは、SHT_REL(A) でエンコード されます。 android SHT_ANDROID_REL(A) の動的リロケーションをパックします。 relr SHT_RELR と SHT_REL(A) の動的リロケーションの残りの相対的なリ ロケーションをパックします。 android+relr SHT_RELR と SHT_ANDROID_REL(A) の動的リロケーションの残りの相 対的なリロケーションをパックします。 none が、デフォルトです。--use-android-relr-tags が指定されるな ら、SHT_RELR の代わりに SHT_ANDROID_RELR を使用します。 --pic-veneer 常に、ポジション独立のサンク (thunk) を生成します。 --pie, --pic-executable ポジション独立 (position independent) の実行形式を作成します。 --power10-stubs=mode R_PPC64_REL24_NOTOC と TOC/NOTOC インターワーキングののためのコー ルスタブで Power10 命令を使用するかどうか。mode は、次の通りです: yes (デフォルト) use。 auto 現在は、yes と同じです。 no 使用しないでください。 --print-gc-sections 削除された未使用のセクションをリストします。 --print-icf-sections 同一の折りたたまれたセクションをリストします。 --print-map 標準出力にリンクマップを印刷 (表示) します。 --print-archive-stats=file アーカイブの使用の統計を指定されあファイルに書き込みます。アーカ イブごとにメンバの数とフェッチされたメンバを印刷 (表示) します。 --push-state --as-needed, --static と --whole-archive の現在の状態を保存しま す。 --pop-state --push-state によって保存された状態を復元します。 --relocatable, -r リロケーション可能なオブジェクトファイルを作成します。 --reproduce=path ld.lld --version の出力を含んでいる version.txt と呼はれるコマン ド行オプションとテキストファイルを含んでいる response.txt と呼ば れる、テキストファイルをリンクを再生するために必要とされるすべて の入力ファイルを含んでいる、tar ファイルを path に書き込みます。 アンパックされるときのアーカイブを、同じオプションと入力ファイル があるリンカを再実行するために使用することができます。 --retain-symbols-file=file ファイルにリストされたシンボルだけを保持します。 --rpath=value, -R value DT_RUNPATH を出力に追加します。 --rsp-quoting=value 応答ファイルのための引用スタイル。サポートされた値は、windows と posix です。 --script=file, -T file file からリンカスクリプトを読み込みます。複数のリンカのスクリプト が与えられるなら、あたかも、それらがコマンド行に現れる順序で連結 されるかのように、それらは、処理されます。 --section-start=section=address セクションのアドレスを設定します。 --shared, --Bsharable 共有オブジェクトを構築します。 --shuffle-sections=seed 出力セクションに一致したセクションをマッピングする前に、与えられ たシードを使用してそれらをシャッフルします。-1 であるなら、セク ションの順序を逆にします。0 であるなら、ランダムシードを使用しま す。 --soname=value, -h value DT_SONAME を value に設定します。 --sort-common このオプションは、GNU 互換性のために無視されます。 --sort-section=value リンカスクリプトが使用されるとき、セクションのソート規則を指定し ます。 --start-lib あたかもそれらがともにアーカイブされたかのように、扱われるべきオ ブジェクトのグループを開始します。 --strip-all, -s すべてのシンボルを取り除きます。--strip-debug の意味を含みます。 --strip-debug, -S デバッグ情報を取り除きます。 --symbol-ordering-file=file file によって指定された順序でセクションをレイアウトします。 --sysroot=value システムルートを設定します。 --target1-abs R_ARM_TARGET1 を R_ARM_ABS32 として解釈します。 --target1-rel R_ARM_TARGET1 を R_ARM_REL32 として解釈します。 --target2=type type として R_ARM_TARGET2 を解釈します、ここで、type は、rel, abs または got-rel. の 1 つです。 --Tbss=value セクション名として .bss がある --section-start と同じです。 --Tdata=value セクション名として .data がある --section-start と同じです。 --Ttext=value セクション名として .text の --section-start と同じです。 --thinlto-cache-dir=value ThinLTO キャッシュされたオブジェクトファイルのディレクトリへのパ ス。 --thinlto-cache-policy=value ThinLTO キャッシュのためのポリシを切り取ります。 --thinlto-jobs=value ThinLTO ジョブの数。 --threads=N スレッドの数。all (デフォルト) は、サポートされたすべての同時ス レッドを意味します。1 は、マルチスレッドを無効にします。 --time-trace 時間トレースを記録します。 --time-trace-file=file 時間トレースの出力を file に書き込みます。 --time-trace-granularity=value 時間プロファイラによってトレースされる (マイクロ秒単位の) 最小時 間の粒度。 --trace 入力ファイルの名前を印刷 (表示) します。 --trace-symbol=symbol, -y symbol symbol への参照をトレースします。 --undefined=symbol, -u symbol symbol がシンボル解像度の後にシンボルが定義されず、シンボルを定義 するオブジェクトファイルを含んでいる静的なライブラリがあるなら、 出力ファイルにオブジェクトファイルを含めるためにメンバをロードし ます。 --undefined-glob=pattern それがグロブ (glob) パターンを取ることを除いて、--undefined と同 義語です。グロブ (glob) パターンにおいて、* は、0 以上の文字に一 致し、? は、あらゆる単一の文字と一致し、[...] は、ブラケット内の 文字と一致します。与えられたパターンと一致しているすべてのシンボ ルは、あたかもそれらが --undefined の引数として与えられるかのよう に、処理されます。 --unique 孤立した入力セクションごとに個別の出力セクションを作成します。 --unresolved-symbols=value どのように未解決のシンボルを処理するかを決定します。 --use-android-relr-tags SHT_RELR / DT_RELR* の代わりに SHT_ANDROID_RELR / DT_ANDROID_RELR* タグを使用します。 -v バージョン番号を表示し、オブジェクトファイルが指定されるなら、リ ンクを続行します。 -V, --version バージョン番号を表示して、終了します。 --verbose 冗長なモード。 --version-script=file file からバージョンスクリプトを読み込みます。 --warn-backrefs 逆のまたは周期的な依存状態または静的なアーカイブの間に関して警告 します。これは、古い Unix に似たリンカとの互換性を残すリンカの呼 び出しを保証するために使用することができます。 --warn-backrefs-exclude=glob --warn-backrefs のために無視されるべきアーカイブ (または --start lib 内のオブジェクトファイル) を記述するグロブ (ファイル名置換)。 --warn-common 重複する共通シンボルに関して警告します。 --warn-ifunc-textrel テキストリロケーションとともに ifunc シンボルを使用することについ て警告します。glibc ライブラリ (2.28 以前) の古いバージョンは、そ れらがリロケーションされるときに実行形式ではないようにマークされ る ifunc シンボルを含むセグメントを引き起こすバグがあります。結果 として、プログラムは、コンパイルし、成功してリンクしますが、命令 ポインタが ifunc シンボルに到達するとき、セグメンテーションフォル トとなります。コードが ifunc シンボルを含むかもしれないなら、lld に警告を与えさせるために、-warn-ifunc-textrel を使用します、テキ ストのリロケーションを行ない、古い glibc バージョンとリンクされま す。そうでなければ、デフォルト値が警告を与えないように、それを使 用する必要がありません。このフラグは、2018 年遅くに導入され、ld とゴールドリンカのカウンタ部分がなく、将来削除されるかもしれませ ん。 --warn-unresolved-symbols 警告として未解決のシンボルを報告します。 --whole-archive 静的なライブラリのすべてのメンバのロードを強制します。 --why-extract=file アーカイブメンバが抽出される理由に関してファイルに印刷 (出力) し ます。 --wrap=symbol __wrap_symbol と __real_symbol 参照への symbol 参照を symbol にリ ダイレクトします。 -z option リンカオプションの展開。 dead-reloc-in-nonalloc=section_glob=value value への破棄されたシンボルを参照している一致した非 SHF_ALLOC セクションのリロケーションを解決します。複数の オプションに一致するセクションの場合の受け付けられるグロ ブ (ファイル名置換)、最後のオプションが優先されます。最小 の特有のものから最も特有のもの一致の順序が、推奨されてい ます。 execstack メインスタックを実行可能とします。スタックのパーミッショ ンは、PT_GNU_STACK セグメントに記録されます。 bti-report=[none|warning|error] 欠落している GNU_PROPERTY_AARCH64_FEATURE_1_BTI プロパ ティを報告する方法を指定します。none は、デフォルトで、リ ンカは、欠落しているプロパティを報告しません、そうでなけ れば、警告またはエラーとして報告されます。 cet-report=[none|warning|error] 欠落している GNU_PROPERTY_X86_FEATURE_1_IBT または GNU_PROPERTY_X86_FEATURE_1_SHSTK プロパティを報告する方法 を指定します。none は、デフォルトで、リンカは、欠落してい るプロパティを報告しません、そうでなければ、警告またはエ ラーとして報告されます。 force-bti PLT の AArch64 BTI 命令を強制的に有効にし、入力 ELF ファ イルに GNU_PROPERTY_AARCH64_FEATURE_1_BTI プロパティがあ るなら、警告します。 force-ibt PLT の Intel 間接分岐トラックイングを強制的に有効にし、 入力 ELF ファイルに GNU_PROPERTY_X86_FEATURE_1_IBT プロパ ティがないなら、警告します。 global DYNAMIC セクションの DF_1_GLOBAL flag in the フラグを設定 します。異なったローダは、どのようにそれら自体のこのフラ グを処理するかを決定することができます。 ifunc-noplt ifunc シンボルのための PLT 入力を出力しません。代わりに、 リゾルバを参照しているテキストリロケーションを出力しま す。これは、実験的な最適化であり、テキストリロケーション が通常の欠点を持たないスタンドアロンの環境のためにたけに 適切です。このオプションは、-z notext オプションと組み合 わされなければなりません。 initfirst モジュールが最初に初期化されるべきであることを示すために DF_1_INITFIRST フラグを設定します。 interpose オブジェクトがインターポーザ (interposer) である実行時リ ンカを示すために DFX1XINTERPOSE DF_1_INTERPOSE フラグを設 定します。他の依存状態の前でなく、シンボル解決のインター ポーザ (interposer) がアプリケーションの後に検索される 間。 muldefs シンボルが、複数回定義されるなら、エラーではありません。 最初の定義が、使用されます。これは、--allow-multiple- definition. のための同義語です。 nocombreloc 結合とソートの複数のリロケーションセクションを無効にしま す。 nocopyreloc コピーのリロケーションの作成を無効にします。 nodefaultlib デフォルトのライブラリ検索パスが無視されるべきですことを 示すために、DF_1_NODEFLIB フラグを設定します。 nodelete オブジェクトがプロセスからアンロードできないことを示すた めに DF_1_NODELETE フラグを設定します。 nodlopen オブジェクトが dlopen(3) によってオープンされないことを示 すために DF_1_NOOPEN フラグを設定します。 nognustack PT_GNU_STACK セグメントを出力しません。 norelro 初期のリロケーション処理の後に、オブジェクトの部分が、読 み込み専用でマップされるべきであることを示しません。オブ ジェクトは、PT_GNU_RELRO セグメントを省略します。 notext 読み込み専用のセグメントに対してリロケーションを許可しま す。DYNAMIC セクションに DT_TEXTREL フラグを設定します。 now 実行時ローダが、オブジェクトの初期化の一部として処理して いるすべてのリロケーションを実行するべきであることを示す ために DF_BIND_NOW フラグを設定します。デフォルトで、リロ ケーションは、オンデマンド (demand) で実行されます。 origin オブジェクトが $ORIGIN 処理を必要とすることを示すために DF_ORIGIN フラグを設定します。 pac-plt AArch64 だけ、PLT のポインタ認証を使用します。 rel 動的リロケーションのために REL 形式を使用します。 rela 動的リロケーションのために RELA 形式を使用します。 retpolineplt CVE-2017-5715 のための緩和 (mitigation) として retpoline 形式 PLT エントリを出力します。 rodynamic 読み込み専用の .dynamic セクションを作成します。DT_DEBUG タグは、出力されません。 separate-loadable-segments separate-code noseparate-code 2 つの隣接した PT_LOAD セグメントが、ページでオーバラップ することが許可されるかどうかを指定します。noseparate-code (デフォルト) は、オーバラップを許可します。separate-code は、2 つの実行形式なセグメント、または 2 つの非実行形式セ グメントの間のオーバラップを許可します。separate- loadable-segments は、オーバラップを許可しません。 shstk x86 だけ、シャドウ (shadow) スタックを使用します。 stack-size=size メインスレッドのスタックサイズを size に設定します。ス タックサイズは、size のサイズとして記録されます。 PT_GNU_STACK プログラムセグメント。 start-stop-gc __start_/__stop_ 参照に関連する C 識別子名のセクションを 保持しません (デフォルト)。 nostart-stop-gc __start_/__stop_ 参照に関連する C 識別子名のセクションを 保持しません。 text 読み込み専用のセグメントに対してリロケーションを許可しま せん。これは、デフォルトです。 wxneeded PT_OPENBSD_WXNEEDED セグメントを作成します。 実装に関する注 (.a のファイル拡張子がある) アーカイブファイルの ld.lld の扱いは、Unix 似 たシステムで使用された古いリンカと異なります。 古いリンカは、リンクの間に未定義なシンボルのセットを維持しています。リン カは、未定義なシンボルのセットが空になるまで、コマンド行でそれが現れる順 序で各ファイルを処理します。オブジェクトファイルは、セットに追加された未 定義シンボルでそれに遭遇するとき、出力オブジェクトにリンクされます。アー カイブファイルに遭遇すると、古いリンカは、その中に含まれているオブジェク トを検索し、未解決の安全なシンボルが設定する、それらを処理します。 相互に依存的なアーカイブを処理することは、古いリンカを使用するとき、扱い にくいかもしれません。指定された複数の時間、または特別なコマンド行オプ ション --start-group と --end-group でなければならないアーカイブファイル は、新しいシンボルがセットに追加されなくなるまで、グループのファイルを越 えて、ループするリンカを保持するために使用されます。 ld.lld は、それがコマンド行の引数の上に繰り返すようにオブジェクトとアーカ イブで見つかるすべてのシンボルを記録します。ld.lld が、以前に処理された アーカイブファイルに含まれているオブジェクトファイルによって解決すること がきる未定義のシンボルに遭遇するとき、それは、直ちに抽出し、それを出力オ ブジェクトにリンクします。 特定のアーカイブ入力で、ld.lld は、古いリンカと比較して異なった結果を生成 します。実際に、サードパーティのソフトウェアの大きな本体は、実質的な問題 なしで ld.lld でリンクされます。 --warn-backrefs オプションは、古い Unix に似たリンカの振る舞いとの互換性 がない、リンカ呼び出しを識別するために使用することできます。 FreeBSD 13.2 May 12, 2019 FreeBSD 13.2