.\" Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. .\" See https://llvm.org/LICENSE.txt for license information. .\" SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception .\" .\" This man page documents only lld's ELF linking support, obtained originally .\" from FreeBSD. .Dd Jul 25, 2023 .Dt LD.LLD 1 .Os .Sh "نام (NAME)" .Nm ld.lld .Nd پیونددهنده ELF از پروژه LLVM .Sh "خلاصه دستور (SYNOPSIS)" .Nm ld.lld .Op Ar options .Ar objfile ... .Sh "توضیحات (DESCRIPTION)" یک پیونددهنده یک یا چند فایل شیء (object)، آرشیو و کتابخانه را دریافت کرده و آن‌ها را در یک فایل خروجی (یک فایل اجرایی، یک کتابخانه اشتراکی یا یک فایل شیء دیگر) ترکیب می‌کند. این ابزار کدها و داده‌ها را از فایل‌های ورودی بازنشانی (relocate) کرده و ارجاعات نمادها میان آن‌ها را حل‌وفصل می‌کند. .Pp .Nm جایگزینی مستقیم برای پیونددهنده‌های GNU BFD و gold است. این ابزار بیشتر آرگومان‌های خط فرمان و اسکریپت‌های پیونددهنده مشابه پیونددهنده‌های GNU را می‌پذیرد. .Pp .Nm در حال حاضر از مقصدهای i386،‏ x86-64،‏ ARM،‏ AArch64،‏ LoongArch،‏ PowerPC32،‏ PowerPC64،‏ MIPS32،‏ MIPS64،‏ RISC-V،‏ AMDGPU،‏ Hexagon و SPARC V9 پشتیبانی می‌کند. .Nm اگر به‌صورت .Nm lld-link فراخوانی شود مانند پیونددهنده‌ای سازگار با link.exe مایکروسافت عمل می‌کند و اگر به‌صورت .Nm ld.ld64 فراخوانی شود مانند ld در macOS عمل می‌کند. صرف‌نظر از اینکه .Nm چگونه ساخته شده باشد، تمامی این مقصدها همیشه پشتیبانی می‌شوند؛ بنابراین همیشه می‌توانید از .Nm هم به‌عنوان پیونددهنده بومی (native) و هم پیونددهنده متقاطع (cross linker) استفاده کنید. .Sh "گزینه‌ها (OPTIONS)" بسیاری از گزینه‌ها دارای هر دو شکل تک‌حرفی و بلند هستند. هنگام استفاده از شکل بلند، گزینه‌هایی به‌جز مواردی که با حرف .Cm o آغاز می‌شوند را می‌توان با یک یا دو خط تیره پیش از نام گزینه مشخص کرد. گزینه‌های بلندی که با .Cm o شروع می‌شوند، برای جلوگیری از اشتباه گرفته شدن با گزینهٔ .Fl o Ar path به دو خط تیره نیاز دارند. .Pp .Bl -tag -width indent .It Fl -allow-multiple-definition در صورت تعریف چندبارهٔ یک نماد، خطایی صادر نشود. از اولین تعریف استفاده خواهد شد. .It Fl -allow-shlib-undefined اجازه دادن به ارجاعات حل‌نشده در کتابخانه‌های اشتراکی. این گزینه هنگام پیوند دادن یک کتابخانه اشتراکی به‌طور پیش‌فرض فعال است. .It Fl -apply-dynamic-relocs اعمال مقادیر زمان پیوند برای بازنشانی‌های پویا. .It Fl -as-needed تنظیم .Dv DT_NEEDED برای کتابخانه‌های اشتراکی، تنها در صورت استفاده از آن‌ها. .It Fl -auxiliary Ns = Ns Ar value تنظیم فیلد .Dv DT_AUXILIARY به نام مشخص‌شده. .It Fl -Bdynamic , Fl -dy پیوند با کتابخانه‌های اشتراکی. .It Fl -Bstatic , Fl -static , Fl -dn عدم پیوند با کتابخانه‌های اشتراکی. .It Fl Bno-symbolic عدم مقیدسازی محلی نمادهای تعریف‌شده با نمایانی پیش‌فرض برای .Fl shared (پیش‌فرض). .It Fl Bsymbolic مقیدسازی محلی نمادهای تعریف‌شده با نمایانی پیش‌فرض برای .Fl shared . همچنین پرچم .Dv DF_SYMBOLIC را تنظیم می‌کند. .It Fl Bsymbolic-non-weak مقیدسازی محلی نمادهای STB_GLOBAL تعریف‌شده با نمایانی پیش‌فرض برای .Fl shared . .It Fl Bsymbolic-functions مقیدسازی محلی نمادهای توابع تعریف‌شده با نمایانی پیش‌فرض برای .Fl shared . .It Fl Bsymbolic-non-weak-functions مقیدسازی محلی نمادهای توابع STB_GLOBAL تعریف‌شده با نمایانی پیش‌فرض برای .Fl shared . .It Fl -be8 نوشتن یک فایل ELF با ترتیب بایت بزرگ (Big Endian) با استفاده از قالب BE8 (فقط در AArch32). .It Fl -branch-to-branch فعال‌سازی بهینه‌سازی‌های پرش به پرش: دستوری که مقصد آن یک دستور پرش دیگر است بازنویسی می‌شود تا مستقیماً به مقصد پرش دوم اشاره کند (تنها در AArch64 و X86_64). به‌طور پیش‌فرض در .Fl O2 فعال است. .It Fl -build-id Ns = Ns Ar value تولید یک یادداشت شناسه ساخت (build ID note). .Ar value می‌تواند یکی از موارد .Cm fast ، .Cm md5 ، .Cm sha1 ، .Cm tree ، .Cm uuid ، .Cm 0x Ns Ar hex-string و .Cm none باشد. .Cm tree نام مستعاری برای .Cm sha1 است. شناسه‌های ساخت از نوع .Cm fast ، .Cm md5 ، .Cm sha1 و .Cm tree از محتوای شیء محاسبه می‌شوند. .Cm fast برای امنیت از نظر رمزنگاری در نظر گرفته نشده است. .It Fl -build-id مترادفی برای .Fl -build-id Ns = Ns Cm sha1 . .It Fl -call-graph-profile-sort Ns = Ns Ar algorithm .Ar algorithm می‌تواند موارد زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm none نادیده گرفتن پروفایل گراف فراخوانی. .It Cm hfsort استفاده از hfsort. .It Cm cdsort استفاده از cdsort (پیش‌فرض). .El .Pp .It Fl -color-diagnostics Ns = Ns Ar value استفاده از رنگ‌ها در پیام‌های عیب‌یابی. .Ar value می‌تواند یکی از مقادیر .Cm always ، .Cm auto و .Cm never باشد. .Cm auto رنگ‌ها را تنها در صورتی فعال می‌کند که خروجی به ترمینال فرستاده شود. .It Fl -color-diagnostics نام مستعاری برای .Fl -color-diagnostics Ns = Ns Cm auto . .It Fl -compress-debug-sections Ns = Ns Ar value فشرده‌سازی بخش‌های اشکال‌زدایی DWARF. اگر محتوای فشرده‌شده بزرگ‌تر شود، بخش‌ها بدون فشرده‌سازی باقی می‌مانند. .Cm value می‌تواند مقادیر زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm none بدون فشرده‌سازی. .It Cm zlib سطح فشرده‌سازی پیش‌فرض ۱ (سریع‌ترین) است؛ زیرا اطلاعات اشکال‌زدایی معمولاً در این سطح به‌خوبی فشرده می‌شوند. .It Cm zstd استفاده از سطح فشرده‌سازی پیش‌فرض در zstd. .El .Pp .It Fl -compress-sections Ns = Ns Ar section-glob={none,zlib,zstd}[:level] فشرده‌سازی بخش‌های خروجی که با glob مطابقت دارند و فاقد پرچم SHF_ALLOC هستند. اگر محتوای فشرده‌شده بزرگ‌تر شود، بخش‌های منطبق بدون فشرده‌سازی باقی می‌مانند. سطح فشرده‌سازی برابر با .Cm level (در صورت مشخص شدن) یا سطح پیش‌فرض متمرکز بر سرعت است. این گزینه مشابه حالت تعمیم‌یافتهٔ .Cm --compress-debug-sections است. .It Fl -cref خروجی دادن جدول ارجاع متقابل. در صورت مشخص شدن .Fl Map Ns ، در فایل نگاشت (map file) چاپ می‌شود. .It Fl -debug-names تولید یک بخش ادغام‌شدهٔ .Li .debug_names . .It Fl -default-script Ns = Ns Ar file , Fl dT Ar file در صورت عدم وجود .Fl -script Ns ، این اسکریپت پیونددهنده پیش‌فرض خوانده شود. .It Fl -defsym Ns = Ns Ar symbol Ns = Ns Ar expression تعریف یک نام مستعار برای نماد. .Ar expression می‌تواند نمادی دیگر یا یک عبارت اسکریپت پیونددهنده باشد. برای نمونه، .Ql --defsym=foo=bar یا .Ql --defsym=foo=bar+0x100 . .It Fl -demangle برگرداندن نام نمادها به شکل اولیه (Demangle). .It Fl -disable-new-dtags غیرفعال کردن برچسب‌های پویای جدید. .It Fl -discard-all , Fl x حذف تمام نمادهای محلی. .It Fl -discard-locals , Fl X حذف نمادهای محلی موقت. .It Fl -discard-none نگه‌داشتن تمام نمادها در جدول نمادها. .It Fl -dynamic-linker Ns = Ns Ar value مشخص کردن پیونددهنده پویایی که برای یک فایل اجرایی با پیوند پویا باید استفاده شود. این مقدار در یک سگمنت ELF از نوع .Dv PT_INTERP ثبت می‌شود. .It Fl -dynamic-list Ns = Ns Ar file مشابه با .Cm --export-dynamic-symbol-list . هنگام ایجاد یک شیء اشتراکی، متضمن .Cm -Bsymbolic است، اما DF_SYMBOLIC را تنظیم نمی‌کند. .It Fl -EB انتخاب قالب ترتیب بایت بزرگ در دستور OUTPUT_FORMAT. .It Fl -EL انتخاب قالب ترتیب بایت کوچک در دستور OUTPUT_FORMAT. .It Fl -eh-frame-hdr درخواست ایجاد بخش .Li .eh_frame_hdr و سرآیند سگمنت .Dv PT_GNU_EH_FRAME . .It Fl -emit-relocs , Fl q تولید بازنشانی‌ها در خروجی. .It Fl -enable-new-dtags فعال کردن برچسب‌های پویای جدید. .It Fl -enable-non-contiguous-regions سرریز کردن بخش‌های ورودی به بخش‌های خروجی منطبق بعدی برای جلوگیری از سرریز ناحیه حافظه. .It Fl -end-lib پایان دادن به گروه‌بندی اشیائی که باید طوری در نظر گرفته شوند که گویی با هم در یک آرشیو هستند. .It Fl -entry Ns = Ns Ar entry نام نماد نقطه ورود. .It Fl -error-limit Ns = Ns Ar value حداکثر تعداد خطاهایی که پیش از توقف نمایش داده می‌شوند. مقدار صفر نشان‌دهنده نامحدود بودن است. .It Fl -error-unresolved-symbols گزارش کردن نمادهای حل‌نشده به عنوان خطا. .It Fl -error-handing-script Ns = Ns Ar script_path فراخوانی اسکریپت .Ar script_path در صورت بروز خطا، با .Ar tag به عنوان آرگومان نخست و یک پارامتر اضافی به عنوان آرگومان دوم. انتظار می‌رود اسکریپت در صورت موفقیت 0 را برگرداند. هر مقدار دیگری به عنوان یک خطای عمومی در نظر گرفته می‌شود..Ar tag می‌تواند .Cm missing-lib به همراه نام کتابخانهٔ مفقود، یا .Cm undefined-symbol به همراه نام نماد تعریف‌نشده باشد. .It Fl -execute-only بخش‌های قابل‌اجرا را به عنوان غیرقابل‌خواندن علامت‌گذاری می‌کند. این گزینه در حال حاضر تنها روی AArch64 پشتیبانی می‌شود. .It Fl -exclude-libs Ns = Ns Ar value کتابخانه‌های ایستا را از برون‌ریزی خودکار مستثنی می‌کند. .It Fl -export-dynamic , Fl E نمادها را در جدول نمادهای پویا قرار می‌دهد. .It Fl -export-dynamic-symbol Ns = Ns Ar glob (فایل اجرایی) نمادهای تعریف‌شدهٔ غیرمحلی منطبق را در جدول نمادهای پویا قرار می‌دهد. (شیء اشتراکی) ارجاعات به نمادهای STV_DEFAULT غیرمحلی منطبق نباید به تعاریف درون شیء اشتراکی مقید شوند، حتی اگر در غیر این صورت به دلیل .Cm -Bsymbolic ، .Cm -Bsymbolic-functions یا .Cm --dynamic-list چنین می‌شدند. .It Fl -export-dynamic-symbol-list Ns = Ns Ar file فهرستی از الگوهای نمادهای پویا را از .Ar file می‌خواند. .Cm --export-dynamic-symbol را روی هر الگو اعمال می‌کند. .It Fl -fatal-warnings با هشدارها مانند خطا رفتار می‌کند. .It Fl -filter Ns = Ns Ar value , Fl F Ar value فیلد .Dv DT_FILTER را به مقدار مشخص‌شده تنظیم می‌کند. .It Fl -fini Ns = Ns Ar symbol یک تابع نهایی‌ساز (finalizer) را مشخص می‌کند. .It Fl -force-group-allocation تنها برای -r معنادار است. گروه‌های بخش دور ریخته می‌شوند. اگر دو عضو یک گروه بخش در بخش خروجی یکسانی قرار گیرند، بازنشانی‌های (relocations) آن‌ها را نیز ترکیب می‌کند. .It Fl -format Ns = Ns Ar input-format , Fl b Ar input-format قالب ورودی‌های پس از این گزینه را مشخص می‌کند. .Ar input-format می‌تواند یکی از .Cm binary ، .Cm elf یا .Cm default باشد. .Cm default مترادفی برای .Cm elf است. .It Fl -gc-sections جمع‌آوری زبالهٔ (garbage collection) بخش‌های استفاده‌نشده را فعال می‌کند. .It Fl -gdb-index بخش .Li .gdb_index را تولید می‌کند. .It Fl -hash-style Ns = Ns Ar value سبک درهم‌سازی (hash style) را مشخص می‌کند. .Ar value می‌تواند .Cm sysv ، .Cm gnu یا .Cm both باشد. .Cm both پیش‌فرض است. .It Fl -help پیام راهنما را چاپ می‌کند. .It Fl -icf Ns = Ns Cm all تا کردن کدهای یکسان (identical code folding) را فعال می‌کند. .It Fl -icf Ns = Ns Cm safe تا کردن ایمن کدهای یکسان را فعال می‌کند. .It Fl -icf Ns = Ns Cm none تا کردن کدهای یکسان را غیرفعال می‌کند. .It Fl -ignore-data-address-equality برابری نشانی داده‌ها را نادیده می‌گیرد. در C/C++ الزامی است که هر داده نشانی یکتایی داشته باشد. این گزینه به lld اجازه می‌دهد بهینه‌سازی ناامنی را انجام دهد که این الزام را نقض می‌کند: ایجاد کپی از داده‌های فقط‌خواندنی، یا ادغام دو یا چند دادهٔ فقط‌خواندنی که اتفاقاً مقادیر یکسانی دارند. .It Fl -ignore-function-address-equality برابری نشانی توابع را نادیده می‌گیرد. این گزینه فراخوانی‌های غیر-PIC به تابعی با نمایانی غیرپیش‌فرض در یک شیء اشتراکی را مجاز می‌داند. تابع ممکن است در فایل اجرایی و در شیء اشتراکی نشانی‌های متفاوتی داشته باشد. .It Fl -image-base Ns = Ns Ar value نشانی پایه را به .Ar value تنظیم می‌کند. .It Fl -init Ns = Ns Ar symbol یک تابع مقداردهی اولیه (initializer) را مشخص می‌کند. .It Fl -keep-unique Ns = Ns Ar symbol نماد .Ar symbol را در طول ICF تا نمی‌کند. .It Fl l Ar libName, Fl -library Ns = Ns Ar libName نام اصلی کتابخانه برای استفاده. .It Fl L Ar dir , Fl -library-path Ns = Ns Ar dir یک دایرکتوری به مسیر جستجوی کتابخانه اضافه می‌کند. .It Fl -lto-aa-pipeline Ns = Ns Ar value خط‌لولهٔ AA برای اجرا در حین LTO. در ترکیب با .Fl -lto-newpm-passes استفاده می‌شود. .It Fl -lto-newpm-passes Ns = Ns Ar value گذرها (passes) برای اجرا در حین LTO. .It Fl -lto-O Ns Ar opt-level سطح بهینه‌سازی برای LTO. .It Fl -lto-partitions Ns = Ns Ar value تعداد بخش‌های تولید کد (codegen) در LTO. .It Fl m Ar value شبیه‌سازی هدف را تعیین می‌کند. .It Fl -Map Ns = Ns Ar file , Fl M Ar file نگاشت پیوند (link map) را در .Ar file چاپ می‌کند. .It Fl -nmagic , Fl n بخش‌ها را هم‌تراز با صفحه نمی‌کند، پیوند را با کتابخانه‌های ایستا انجام می‌دهد. .It Fl -no-allow-shlib-undefined ارجاعات حل‌نشده در کتابخانه‌های اشتراکی را مجاز نمی‌داند. این گزینه به طور پیش‌فرض هنگام پیوند دادن یک فایل اجرایی فعال است. .It Fl -no-as-needed همواره .Dv DT_NEEDED را برای کتابخانه‌های اشتراکی تنظیم می‌کند. .It Fl -no-color-diagnostics از رنگ‌ها در پیام‌های عیب‌یابی استفاده نمی‌کند. .It Fl -no-demangle نام‌های نمادها را رمزگشایی (demangle) نمی‌کند. .It Fl -no-dynamic-linker از خروجی دادن بخش .Li .interp جلوگیری می‌کند. .It Fl -no-fortran-common اعضای آرشیو را برای تعاریفی که نمادهای COMMON را بازنویسی می‌کنند جستجو نمی‌کند. .It Fl -no-gc-sections جمع‌آوری زبالهٔ بخش‌های استفاده‌نشده را غیرفعال می‌کند. .It Fl -no-gnu-unique اتصال نماد STB_GNU_UNIQUE را غیرفعال می‌کند. .It Fl -no-merge-exidx-entries ادغام مدخل‌های .ARM.exidx را غیرفعال می‌کند. .It Fl -no-nmagic بخش‌ها را هم‌تراز با صفحه می‌کند. .It Fl -no-omagic بخش‌های کد و داده را به صورت قابل‌نوشتن تنظیم نمی‌کند، و بخش‌ها را هم‌تراز با صفحه قرار می‌دهد. .It Fl -no-relax تعدیل‌های (relaxations) وابسته به معماری هدف را غیرفعال می‌کند. برای x86-64 این گزینه بهینه‌سازی‌های GOT با R_X86_64_GOTPCRELX و R_X86_64_REX_GOTPCRELX را غیرفعال می‌کند. .It Fl -no-rosegment بخش‌های فقط‌خواندنی غیرقابل‌اجرا را در قطعهٔ (segment) جداگانهٔ خود قرار نمی‌دهد. .It Fl -undefined-version اسکریپت‌های نسخه‌ای را که به نمادهای تعریف‌نشده ارجاع می‌دهند گزارش نمی‌کند. .It Fl -no-undefined نمادهای حل‌نشده را حتی در صورت ساخت یک شیء اشتراکی توسط پیونددهنده گزارش می‌کند. .It Fl -no-warn-mismatch انواع بخش‌های ناشناخته را رد نمی‌کند. .It Fl -no-warn-symbol-ordering در مورد مشکلات فایل مرتب‌سازی نمادها یا پروفایل گراف فراخوانی هشداری صادر نمی‌کند. .It Fl -no-warnings , Fl w هشدارها را فرومی‌نشاند و .Cm --fatal-warnings را لغو می‌کند. .It Fl -no-whole-archive رفتار پیش‌فرض بارگذاری اعضای آرشیو را بازیابی می‌کند. .It Fl -no-pie , Fl -no-pic-executable یک فایل اجرایی مستقل از موقعیت (PIE) ایجاد نمی‌کند. .It Fl -noinhibit-exec فایل خروجی اجرایی را تا زمانی که همچنان قابل استفاده باشد نگه می‌دارد. .It Fl -nostdlib تنها دایرکتوری‌های مشخص‌شده در خط فرمان را جستجو می‌کند. .It Fl o Ar path فایل اجرایی، کتابخانه یا شیء خروجی را در .Ar path می‌نویسد. در صورت عدم تعیین، .Dv a.out به‌عنوان پیش‌فرض استفاده می‌شود. .It Fl O Ns Ar value فایل خروجی را بهینه‌سازی می‌کند. .Ar value می‌تواند مقادیر زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm 0 ادغام رشته‌ها را غیرفعال می‌کند. .It Cm 1 ادغام رشته‌ها را فعال می‌کند. .It Cm 2 ادغام انتهای رشته‌ها (string tail merging) و بهینه‌سازی شاخه-به-شاخه را فعال می‌کند. .El.Pp حالت پیش‌فرض .Fl O Ns Cm 1 است. .It Fl -oformat Ns = Ns Ar format قالب فایل شیء خروجی را مشخص می‌کند. تنها .Ar format پشتیبانی‌شده .Cm binary است، که خروجی را بدون سرآیند ELF تولید می‌کند. .It Fl -omagic , Fl N بخش‌های text و data را خواندنی و نوشتنی تنظیم می‌کند، بخش‌ها را هم‌تراز صفحه (page align) نمی‌کند، و پیوند را در برابر کتابخانه‌های ایستا انجام می‌دهد. .It Fl -opt-remarks-filename Ar file ملاحظات بهینه‌سازی را در قالب YAML درون .Ar file می‌نویسد. .It Fl -opt-remarks-passes Ar pass-regex ملاحظات بهینه‌سازی را فقط با مجاز کردن گذرهایی (passes) که با .Ar pass-regex تطابق دارند، پالایش می‌کند. .It Fl -opt-remarks-with-hotness اطلاعات بسامد اجرا (hotness) را در فایل ملاحظات بهینه‌سازی می‌گنجاند. .It Fl -orphan-handling Ns = Ns Ar mode نحوه مدیریت بخش‌های یتیم (orphan sections) را کنترل می‌کند. بخش یتیم بخشی است که به‌طور مشخص در اسکریپت پیوندساز ذکر نشده باشد. .Ar mode می‌تواند یکی از موارد زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm place قرار دادن بخش‌های یتیم در بخش‌های خروجی مناسب. .It Cm warn قرار دادن بخش‌های یتیم مانند .Cm place و همچنین گزارش دادن یک هشدار. .It Cm error قرار دادن بخش‌های یتیم مانند .Cm place و همچنین گزارش دادن یک خطا. .El .Pp .Cm place حالت پیش‌فرض است. .It Fl -pack-dyn-relocs Ns = Ns Ar format بسته‌بندی بازنشانی‌های پویا در قالب ارائه‌شده. .Ar format می‌تواند یکی از موارد زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm none بسته‌بندی نشود. بازنشانی‌های پویا در SHT_REL(A) کدگذاری می‌شوند. .It Cm android بسته‌بندی بازنشانی‌های پویا در SHT_ANDROID_REL(A). .It Cm relr بسته‌بندی بازنشانی‌های نسبی در SHT_RELR و مابقی بازنشانی‌های پویا در SHT_REL(A). .It Cm android+relr بسته‌بندی بازنشانی‌های نسبی در SHT_RELR و مابقی بازنشانی‌های پویا در SHT_ANDROID_REL(A). .El .Pp .Cm none حالت پیش‌فرض است. اگر .Fl -use-android-relr-tags مشخص شده باشد، به‌جای SHT_RELR از SHT_ANDROID_RELR استفاده می‌شود. .Pp .It Fl -package-metadata درج یک رشته با کدگذاری درصدی (percent-encoded) در بخش .Cm .note.package . به عنوان مثال، %25 به یک % تنها رمزگشایی می‌شود. .It Fl -pic-veneer همیشه thunkهای مستقل از موقعیت تولید می‌کند. .It Fl -pie , Fl -pic-executable یک فایل اجرایی مستقل از موقعیت (position independent executable) ایجاد می‌کند. .It Fl -power10-stubs Ns = Ns Cm mode تعیین استفاده از دستورالعمل‌های Power10 در کال‌استاب‌ها (call stubs) برای R_PPC64_REL24_NOTOC و تعامل‌پذیری TOC/NOTOC. .Ar mode می‌تواند یکی از موارد زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm yes (پیش‌فرض) استفاده شود. .It Cm auto در حال حاضر همانند yes است. .It Cm no استفاده نشود. .El .It Fl -print-gc-sections فهرست کردن بخش‌های بلااستفادهٔ حذف‌شده. .It Fl -print-gc-sections Ns = Ns Ar file فهرست کردن بخش‌های بلااستفادهٔ حذف‌شده در فایل مشخص‌شده. .It Fl -print-icf-sections فهرست کردن بخش‌های تاخوردهٔ یکسان (identical folded sections). .It Fl -print-map چاپ نقشه پیوند در خروجی استاندارد. .It Fl -print-archive-stats Ns = Ns Ar file نوشتن آمار استفاده از بایگانی در فایل مشخص‌شده. تعداد اعضا و اعضای واکشی‌شده را برای هر بایگانی چاپ می‌کند. .It Fl -push-state ذخیره وضعیت فعلی .Fl -as-needed , .Fl -static , و .Fl -whole-archive . .It Fl -pop-state بازیابی وضعیت‌های ذخیره‌شده توسط .Fl -push-state . .It Fl -randomize-section-padding Ns = Ns Ar seed درج فاصله‌گذاری (padding) تصادفی بین بخش‌های ورودی و در ابتدای هر سگمنت با استفاده از seed مشخص‌شده. فاصله‌گذاری در بخش‌های خروجی با نام‌های منطبق بر الگوهای زیر درج می‌شود: .Cm .bss , .Cm .data , .Cm .data.rel.ro , .Cm .lbss , .Cm .ldata , .Cm .lrodata , .Cm .ltext , .Cm .rodata و .Cm .text* . .It Fl --relax-gp فعال‌سازی کاهش اشاره‌گر سراسری (global pointer relaxation) برای RISC-V. .It Fl -relocatable , Fl r ایجاد فایل شیء با قابلیت بازنشانی. .It Fl -remap-inputs Ns = Ns Ar from-glob=to-file فایل‌های ورودی منطبق بر .Cm from-glob به .Cm to-file نگاشت می‌شوند. برای نادیده گرفتن یک فایل ورودی از .Cm /dev/null استفاده کنید. .It Fl -remap-inputs-file Ns = Ns Ar file نگاشت مجدد فایل‌های ورودی بر اساس الگوهای موجود در .Ar file . هر خط در فایل نگاشت مجدد در قالب .Cm from-glob=to-file یا یک توضیح است که با .Cm # آغاز می‌شود. .It Fl -reproduce Ns = Ns Ar path یک فایل tar درون .Ar path می‌نویسد، که شامل تمام فایل‌های ورودی لازم برای بازتولید پیوند، یک فایل متنی با نام response.txt شامل گزینه‌های خط فرمان، و یک فایل متنی با نام version.txt شامل خروجی ld.lld --version است. این بایگانی پس از استخراج، می‌تواند برای اجرای دوباره پیوندساز با همان گزینه‌ها و فایل‌های ورودی استفاده شود. .It Fl -retain-symbols-file Ns = Ns Ar file تنها نمادهای فهرست‌شده در فایل را نگه می‌دارد. .It Fl -rpath Ns = Ns Ar value , Fl R Ar value افزودن یک .Dv DT_RUNPATH به خروجی. .It Fl -rsp-quoting Ns = Ns Ar value سبک نقل‌قول برای فایل‌های پاسخ. مقدارهای پشتیبانی‌شده .Cm windows و .Cm posix هستند. .It Fl -script Ns = Ns Ar file , Fl T Ar file خواندن اسکریپت پیوندساز از .Ar file . در صورت ارائه چندین اسکریپت پیوندساز، آن‌ها به‌گونه‌ای پردازش می‌شوند که گویی به ترتیبی که در خط فرمان ظاهر شده‌اند، به یکدیگر متصل شده‌اند. .It Fl -section-start Ns = Ns Ar section Ns = Ns Ar address تنظیم نشانی بخش. .It Fl -shared , Fl -Bsharable ساخت یک شیء مشترک (shared object). .It Fl -shuffle-sections Ns = Ns Ar seed بُر زدن بخش‌های منطبق با استفاده از seed مشخص‌شده پیش از نگاشت آن‌ها به بخش‌های خروجی. اگر -1 باشد، ترتیب بخش‌ها معکوس می‌شود. اگر 0 باشد، از یک seed تصادفی استفاده می‌شود. .It Fl -soname Ns = Ns Ar value , Fl h Ar value تنظیم .Dv DT_SONAME به .Ar value . .It Fl -sort-common این گزینه برای سازگاری با GNU نادیده گرفته می‌شود. .It Fl -sort-section Ns = Ns Ar value قاعده مرتب‌سازی بخش‌ها را هنگام استفاده از linkerscript مشخص می‌کند. .It Fl -start-lib آغاز دسته‌بندی از اشیاء که باید همانند قرار داشتن در یک بایگانی رفتار شوند. .It Fl -strip-all , Fl s حذف تمام نمادها. به‌معنای اعمال .Fl -strip-debug نیز هست. .It Fl -strip-debug , Fl S حذف اطلاعات اشکال‌زدایی. .It Fl -symbol-ordering-file Ns = Ns Ar file چیدمان بخش‌ها به ترتیبی که توسط .Ar file مشخص شده است. .It Fl -sysroot Ns = Ns Ar value تنظیم ریشه سیستم. .It Fl -target1-abs تفسیر .Dv R_ARM_TARGET1 به‌عنوان .Dv R_ARM_ABS32 . .It Fl -target1-rel تفسیر .Dv R_ARM_TARGET1 به‌عنوان .Dv R_ARM_REL32 . .It Fl -target2 Ns = Ns Ar type تفسیر .Dv R_ARM_TARGET2 به‌عنوان .Ar type , که در آن .Ar type یکی از مقادیر .Cm rel , .Cm abs , یا .Cm got-rel است. .It Fl -Tbss Ns = Ns Ar value مشابه با .Fl -section-start با .Li .bss به‌عنوان نام بخش. .It Fl -Tdata Ns = Ns Ar value مشابه با .Fl -section-start با .Li .data به‌عنوان نام بخش. .It Fl -Ttext Ns = Ns Ar value مشابه با .Fl -section-start با .Li .text به‌عنوان نام بخش. .It Fl -thinlto-cache-dir Ns = Ns Ar value مسیر به دایرکتوری فایل‌های شیء حافظه‌پنهان ThinLTO. .It Fl -thinlto-cache-policy Ns = Ns Ar value سیاست هرس کردن برای حافظه‌پنهان ThinLTO. .It Fl -thinlto-jobs Ns = Ns Ar value تعداد کارهای ThinLTO. .It Fl -threads Ns = Ns Ar N تعداد رشته‌ها. مقدار .Cm all (پیش‌فرض) به معنی تمام رشته‌های هم‌روندِ پشتیبانی‌شده است. .Cm 1 چندرشته‌ای بودن را غیرفعال می‌کند. .It Fl -fat-lto-objects استفاده از بخش .llvm.lto، که حاوی بیت‌کد LLVM است، در فایل‌های شیء fat LTO برای انجام LTO..It Fl -no-fat-lto-objects بخش .llvm.lto در فایل‌های شیء قابل بازنشانی (relocatable) نادیده گرفته می‌شود (پیش‌فرض). .It Fl -time-trace ثبت ردگیری زمانی (time trace). .It Fl -time-trace-file Ns = Ns Ar file نوشتن خروجی ردگیری زمانی در .Ar file . .It Fl -time-trace-granularity Ns = Ns Ar value حداقل دانه‌بندی زمان (به میکروثانیه) که توسط پروفایلر زمانی ردگیری می‌شود. .It Fl -trace چاپ نام فایل‌های ورودی. .It Fl -trace-symbol Ns = Ns Ar symbol , Fl y Ar symbol ردگیری ارجاع‌ها به .Ar symbol . .It Fl -undefined Ns = Ns Ar symbol , Fl u Ar symbol اگر .Ar symbol پس از تفکیک نمادها تعریف نشده باشد، و کتابخانه‌ای ایستا وجود داشته باشد که شامل یک فایل شیء تعریف‌کنندهٔ این نماد باشد، آن عضو بارگذاری می‌شود تا فایل شیء در فایل خروجی گنجانده شود. .It Fl -undefined-glob Ns = Ns Ar pattern مترادفی برای .Fl -undefined ، با این تفاوت که یک الگوی glob می‌پذیرد. در یک الگوی glob، .Cm * با صفر یا چند نویسه، .Cm ? با هر نویسهٔ تکی، و .Cm [...] با نویسه‌های درون قلاب‌ها تطابق می‌یابد. تمام نمادهایی که با یک الگوی داده‌شده مطابقت داشته باشند طوری مدیریت می‌شوند که گویی به عنوان آرگومان‌های .Fl -undefined داده شده‌اند. .It Fl -unique یک بخش خروجی جداگانه برای هر بخش ورودی یتیم (orphan) ایجاد می‌کند. .It Fl -unresolved-symbols Ns = Ns Ar value تعیین نحوهٔ مدیریت نمادهای حل‌نشده (unresolved). .Ar value می‌تواند یکی از مقادیر زیر باشد: .Pp .Bl -tag -width 2n -compact .It Cm report-all گزارش نمادهای حل‌نشده (پیش‌فرض). .It Cm ignore-in-object-files فقط نمادهای حل‌نشدهٔ موجود در کتابخانه‌های مشترک گزارش شوند. .It Cm ignore-in-shared-libs فقط نمادهای حل‌نشدهٔ موجود در فایل‌های شیء گزارش شوند. .It Cm ignore-all نمادهای حل‌نشده گزارش نشوند. .El .It Fl -use-android-relr-tags استفاده از برچسب‌های SHT_ANDROID_RELR / DT_ANDROID_RELR* به جای SHT_RELR / DT_RELR*. .It Fl v , Fl V نمایش شماره نسخه و ادامهٔ روند پیوند در صورتی که فایل‌های شیء مشخص شده باشند. .It Fl -version نمایش شماره نسخه و خروج. .It Fl -verbose حالت پرگو (verbose). .It Fl -version-script Ns = Ns Ar file خواندن اسکریپت نسخه از .Ar file . .It Fl -warn-backrefs هشدار دربارهٔ وابستگی‌های معکوس یا چرخه‌ای به یا بین آرشیوهای ایستا. این گزینه می‌تواند برای اطمینان از حفظ سازگاری فراخوانی پیونددهنده با پیونددهنده‌های سنتی شبه‌یونیکس استفاده شود. .It Fl -warn-backrefs-exclude Ns = Ns Ar glob الگوی glob توصیف‌کنندهٔ یک آرشیو (یا یک فایل شیء درون --start-lib) که باید برای .Fl -warn-backrefs نادیده گرفته شود. .It Fl -warn-common هشدار دربارهٔ نمادهای مشترک (common symbols) تکراری. .It Fl -warn-ifunc-textrel هشدار دربارهٔ استفاده از نمادهای ifunc در ترکیب با بازنشانی‌های متن (text relocations). نسخه‌های قدیمی‌تر کتابخانهٔ glibc (نسخهٔ ۲.۲۸ و پیش از آن) دارای باگی هستند که باعث می‌شود قطعه‌ای که شامل نمادهای ifunc است، هنگام بازنشانی به عنوان غیرقابل‌اجرا علامت‌گذاری شود. در نتیجه، هرچند برنامه با موفقیت کامپایل و پیوند داده می‌شود، اما هنگامی که اشاره‌گر دستورالعمل به یک نماد ifunc می‌رسد خطای segmentation fault رخ می‌دهد. از -warn-ifunc-textrel استفاده کنید تا اگر کد ممکن است شامل نمادهای ifunc باشد، بازنشانی‌های متن انجام دهد و با نسخهٔ قدیمی‌تر glibc پیوند داده شود، lld هشدار دهد. در غیر این صورت، نیازی به استفاده از آن نیست، زیرا مقدار پیش‌فرض هشداری نمی‌دهد. این پرچم در اواخر سال ۲۰۱۸ معرفی شد، معادلی در پیونددهنده‌های ld و gold ندارد، و ممکن است در آینده حذف شود. .It Fl -warn-unresolved-symbols گزارش نمادهای حل‌نشده به عنوان هشدار. .It Fl -whole-archive اجبار به بارگذاری تمام اعضا در یک کتابخانهٔ ایستا. .It Fl -why-extract Ns = Ns Ar file چاپ دلیل استخراج اعضای آرشیو در یک فایل. .It Fl -why-live Ns = Ns Ar glob گزارش زنجیره‌ای از ارجاع‌ها که مانع از جمع‌آوری زباله (garbage collection) برای هر نماد منطبق با glob می‌شوند. .It Fl -wrap Ns = Ns Ar symbol تغییر مسیر ارجاع‌های .Ar symbol به .Ar __wrap_symbol و ارجاع‌های .Ar __real_symbol به .Ar symbol . .It Fl z Ar option افزونه‌های گزینه‌های پیونددهنده. .Bl -tag -width indent -compact .Pp .It Cm dead-reloc-in-nonalloc Ns = Ns Ar section_glob=value حل یک بازنشانی در یک بخش غیر SHF_ALLOC تطبیق‌یافته که به یک نماد دور ریخته‌شده ارجاع دارد، به .Ar value الگوهای glob را می‌پذیرد؛ در صورتی که یک بخش با بیش از یک گزینه مطابقت داشته باشد، آخرین گزینه اولویت دارد. ترتیبی از تطابق با کمترین ویژگی به بیشترین ویژگی توصیه می‌شود. .Pp .It Cm execstack قابل‌اجرا کردن پشتهٔ اصلی (main stack). مجوزهای پشته در قطعهٔ .Dv PT_GNU_STACK ثبت می‌شوند. .Pp .It Cm bti-report Ns = Ns Ar [none|warning|error] تعیین نحوهٔ گزارش ویژگی مفقود GNU_PROPERTY_AARCH64_FEATURE_1_BTI. .Cm none پیش‌فرض است؛ پیونددهنده ویژگی مفقود را گزارش نمی‌کند، در غیر این صورت به عنوان یک هشدار یا یک خطا گزارش خواهد شد. .Pp .It Cm cet-report Ns = Ns Ar [none|warning|error] تعیین نحوهٔ گزارش ویژگی‌های مفقود GNU_PROPERTY_X86_FEATURE_1_IBT یا GNU_PROPERTY_X86_FEATURE_1_SHSTK. .Cm none پیش‌فرض است؛ پیونددهنده ویژگی مفقود را گزارش نمی‌کند، در غیر این صورت به عنوان یک هشدار یا یک خطا گزارش خواهد شد. .Pp .It Cm gcs-report Ns = Ns Ar [none|warning|error] تعیین نحوهٔ گزارش ویژگی مفقود .Cm GNU_PROPERTY_AARCH64_FEATURE_1_GCS . ویژگی GNU_PROPERTY_AARCH64_FEATURE_1_GCS نشان‌دهندهٔ پشتیبانی فایل شیء از قابلیت امنیتی Guarded Control Stack است. .Cm none پیش‌فرض است؛ پیونددهنده ویژگی مفقود را گزارش نمی‌کند، در غیر این صورت به عنوان یک هشدار یا یک خطا گزارش خواهد شد. .Pp .It Cm dynamic-undefined-weak پویا کردن نمادهای ضعیف (weak) تعریف‌نشده در صورت وجود جدول نمادهای پویا، در صورتی که از فایل‌های شیء قابل بازنشانی به آن‌ها ارجاع داده شده باشد و با دیداری‌پذیری نماد یا نسخه‌بندی به حالت محلی محدود نشده باشند. در صورت مشخص شدن .Cm nodynamic-undefined-weak آن‌ها را پویا نکنید. .Cm dynamic-undefined-weak هنگام ساخت یک شیء مشترک (shared object)، یا زمانی که یک شیء مشترک ورودی وجود دارد، حالت پیش‌فرض است. .Pp .It Cm pauth-report Ns = Ns Ar [none|warning|error] تعیین نحوهٔ گزارش ویژگی مفقود GNU_PROPERTY_AARCH64_FEATURE_PAUTH. .Cm none پیش‌فرض است؛ پیونددهنده ویژگی مفقود را گزارش نمی‌کند، در غیر این صورت به عنوان یک هشدار یا یک خطا گزارش خواهد شد. .Pp .It Cm force-bti فعال‌سازی اجباری دستورالعمل BTI مربوط به AArch64 در PLT؛ اگر فایل ELF ورودی فاقد ویژگی GNU_PROPERTY_AARCH64_FEATURE_1_BTI باشد، هشدار می‌دهد. .Pp .It Cm force-ibt فعال‌سازی اجباری Intel Indirect Branch Tracking در PLT؛ اگر یک فایل ELF ورودی فاقد ویژگی GNU_PROPERTY_X86_FEATURE_1_IBT باشد، هشدار می‌دهد. .Pp .It Cm global تنظیم پرچم .Dv DF_1_GLOBAL در بخش .Dv DYNAMIC . بارگذارهای مختلف می‌توانند به خودی خود نحوهٔ مدیریت این پرچم را تعیین کنند. .Pp .It Cm ifunc-noplt تولید نکردن مدخل‌های PLT برای نمادهای ifunc. در عوض، بازنشانی‌های متنی ارجاع‌دهنده به resolver ایجاد می‌شوند. این یک بهینه‌سازی آزمایشی است و تنها برای محیط‌های مستقل (standalone) مناسب است که در آن‌ها بازنشانی‌های متن معایب معمول را ندارند. این گزینه باید با گزینهٔ .Fl z Li notext ترکیب شود. .Pp .It Cm initfirst تنظیم پرچم .Dv DF_1_INITFIRST برای نشان دادن این‌که پودمان (module) باید ابتدا مقداردهی اولیه شود. .Pp .It Cm interpose تنظیم پرچم .Dv DF_1_INTERPOSE برای نشان دادن به پیونددهندهٔ زمان اجرا مبنی بر این‌که شیء یک interposer است. در هنگام تفکیک نمادها، interposerها پس از برنامه اما پیش از سایر وابستگی‌ها جستجو می‌شوند..Pp .It Cm lrodata-after-bss قرار دادن .lrodata پس از .bss. .Pp .It Cm muldefs در صورت تعریف چندبارهٔ یک نماد، خطایی صادر نشود. نخستین تعریف استفاده خواهد شد. این گزینه مترادفی برای .Fl -allow-multiple-definition است. .Pp .It Cm nocombreloc غیرفعال‌سازی ترکیب و مرتب‌سازی چندین بخش بازآرایی (relocation). .Pp .It Cm nocopyreloc غیرفعال‌سازی ایجاد بازآرایی‌های کپی (copy relocations). .Pp .It Cm nodefaultlib تنظیم پرچم .Dv DF_1_NODEFLIB برای مشخص ساختن اینکه مسیرهای پیش‌فرض جستجوی کتابخانه باید نادیده گرفته شوند. .Pp .It Cm nodelete تنظیم پرچم .Dv DF_1_NODELETE برای مشخص ساختن اینکه شیء نباید از یک فرایند تخلیه شود. .Pp .It Cm nodlopen تنظیم پرچم .Dv DF_1_NOOPEN برای مشخص ساختن اینکه شیء نباید توسط .Xr dlopen 3 باز شود. .Pp .It Cm nognustack عدم صدور قطعهٔ .Dv PT_GNU_STACK . .Pp .It Cm norelro عدم مشخص‌سازی اینکه بخش‌هایی از شیء باید پس از پردازش اولیهٔ بازآرایی، به صورت فقط‌خواندنی نگاشت شوند. شیء از درج قطعهٔ .Dv PT_GNU_RELRO صرف‌نظر خواهد کرد. .Pp .It Cm nosectionheader عدم تولید جدول سرآیند بخش‌ها (section header table). .Pp .It Cm notext مجاز دانستن بازآرایی‌ها بر روی قطعه‌های فقط‌خواندنی. پرچم .Dv DT_TEXTREL را در بخش .Dv DYNAMIC تنظیم می‌کند. .Pp .It Cm now تنظیم پرچم .Dv DF_BIND_NOW برای مشخص ساختن اینکه بارگذار زمان اجرا (run-time loader) باید تمام پردازش بازآرایی را به عنوان بخشی از مقداردهی اولیهٔ شیء انجام دهد. به طور پیش‌فرض، بازآرایی‌ها ممکن است برحسب تقاضا انجام شوند. .Pp .It Cm origin تنظیم پرچم .Dv DF_ORIGIN برای مشخص ساختن اینکه شیء نیازمند پردازش $ORIGIN است. .Pp .It Cm pac-plt تنها در AArch64، استفاده از احراز هویت اشاره‌گر در PLT. .Pp .It Cm pack-relative-relocs مشابه .Cm -pack-dyn-relocs=relr است، اما در صورت وجود وابستگی نسخهٔ GLIBC_2.*، وابستگی نسخهٔ GLIBC_ABI_DT_RELR را تولید می‌کند. بخش ld.so در glibc از بارگذاری یک شیء پیوند خورده به صورت پویا بدون وابستگی نسخهٔ GLIBC_ABI_DT_RELR خودداری می‌کند. .Pp .It Cm rel استفاده از قالب REL برای بازآرایی‌های پویا. .Pp .It Cm rela استفاده از قالب RELA برای بازآرایی‌های پویا. .Pp .It Cm retpolineplt تولید ورودی‌های PLT با قالب retpoline به عنوان راهکاری برای کاهش اثر CVE-2017-5715. .Pp .It Cm rodynamic فقط‌خواندنی کردن بخش .Li .dynamic . برچسب .Dv DT_DEBUG صادر نخواهد شد. .Pp .It Cm separate-loadable-segments .It Cm separate-code .It Cm noseparate-code مشخص می‌کند که آیا دو قطعهٔ مجاور PT_LOAD مجاز به هم‌پوشانی در صفحات هستند یا خیر. .Cm noseparate-code (پیش‌فرض) هم‌پوشانی را مجاز می‌داند. .Cm separate-code هم‌پوشانی بین دو قطعهٔ قابل اجرا یا دو قطعهٔ غیرقابل اجرا را مجاز می‌داند. .Cm separate-loadable-segments هم‌پوشانی را غیرمجاز می‌کند. .Pp .It Cm shstk تنها در x86، استفاده از پشتهٔ سایه (shadow stack). .Pp .It Cm gcs Ns = Ns Ar [implicit|never|always] مشخص می‌کند که بیت .Cm GNU_PROPERTY_AARCH64_FEATURE_1_GCS چگونه در فایل ELF خروجی تنظیم شود. هنگامی که تنظیم شود، نشان‌دهندهٔ پشتیبانی از ویژگی امنیتی پشتهٔ کنترل محافظت‌شده (GCS) است. .Cm implicit (پیش‌فرض) بیت ویژگی GCS در صورتی تنظیم می‌شود که همهٔ فایل‌های بازآرایی‌پذیر ورودی دارای یک بخش .note.gnu.property حاوی بیت GNU_PROPERTY_AARCH64_FEATURE_1_GCS باشند. .Cm never صرف‌نظر از نشانه‌گذاری‌های فایل‌های بازآرایی‌پذیر ورودی، بیت ویژگی GCS را پاک می‌کند. .Cm always صرف‌نظر از نشانه‌گذاری‌های شیء ورودی، بیت ویژگی GCS را تنظیم می‌کند. .Pp .It Cm stack-size Ns = Ns Ar size تنظیم اندازهٔ پشتهٔ رشتهٔ اصلی به .Ar size . اندازهٔ پشته به عنوان اندازهٔ .Ar size . قطعهٔ برنامهٔ .Dv PT_GNU_STACK ثبت می‌شود. .Pp .It Cm start-stop-gc ارجاعات __start_/__stop_ مانع از جمع‌آوری بخش‌های نام شناسهٔ C متناظر نشوند (پیش‌فرض). .Pp .It Cm nostart-stop-gc به ارجاعات __start_/__stop_ اجازه می‌دهد بخش‌های نام شناسهٔ C متناظر را حفظ کنند. .Pp .It Cm text عدم اجازه به بازآرایی‌ها بر روی قطعه‌های فقط‌خواندنی. این حالت پیش‌فرض است. .Pp .It Cm nobtcfi ایجاد یک قطعهٔ .Dv PT_OPENBSD_NOBTCFI . .Pp .It Cm wxneeded ایجاد یک قطعهٔ .Dv PT_OPENBSD_WXNEEDED . .El .El.Sh "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .Bl -tag -width LC_CTYPE .It Ev LLD_REPRODUCE یک فایل tarball بازتولید با نام مشخص‌شده ایجاد می‌کند. در صورت مشخص شدن .Fl -reproduce گزینهٔ .Fl -reproduce اولویت خواهد داشت. .It Ev LLD_VERSION دستور ld.lld بخشی به نام .Cm .comment حاوی رشتهٔ نگارش LLD ایجاد می‌کند. این رشتهٔ نگارش را می‌توان با این متغیر محیطی بازنویسی کرد، که برای از بین بردن تفاوت‌های ایجادشده در باینری ناشی از تفاوت شماره نگارش LLD سودمند است. .El .Sh "نکات پیاده‌سازی (IMPLEMENTATION NOTES)" نحوهٔ مدیریت فایل‌های آرشیو (آن‌هایی که پسوند فایل .Pa .a دارند) توسط .Nm با پیونددهنده‌های سنتی مورد استفاده در سیستم‌های شبیه یونیکس متفاوت است. .Pp پیونددهنده‌های سنتی مجموعه‌ای از نمادهای تعریف‌نشده را در طول فرایند پیوند نگهداری می‌کنند. پیونددهنده هر فایل را به ترتیبی که در خط فرمان ظاهر می‌شود پردازش می‌کند تا زمانی که مجموعهٔ نمادهای تعریف‌نشده خالی شود. یک فایل شیء هنگام مواجهه در شیء خروجی پیوند داده شده و نمادهای تعریف‌نشدهٔ آن به مجموعه افزوده می‌شوند. یک پیونددهندهٔ سنتی پس از مواجهه با یک فایل آرشیو، اشیاء درون آن را جستجو کرده و مواردی را پردازش می‌کند که نمادهای موجود در مجموعهٔ برطرف‌نشده را برآورده سازند. .Pp مدیریت آرشیوهایی با وابستگی متقابل هنگام استفاده از یک پیونددهندهٔ سنتی می‌تواند دشوار باشد. ممکن است لازم باشد فایل‌های آرشیو چندین بار مشخص شوند، یا از گزینه‌های ویژهٔ خط فرمان .Fl -start-group و .Fl -end-group استفاده شود تا پیونددهنده روی فایل‌های درون گروه تا زمانی که هیچ نماد جدیدی به مجموعه افزوده نشود حلقه بزند. .Pp .Nm هم‌زمان با پیمایش آرگومان‌های خط فرمان، تمام نمادهای یافت‌شده در اشیاء و آرشیوها را ثبت می‌کند. هنگامی که .Nm با یک نماد تعریف‌نشده مواجه می‌شود که می‌تواند توسط یک فایل شیء موجود در یک فایل آرشیوِ از قبل پردازش‌شده برطرف شود، بلافاصله آن را استخراج کرده و در شیء خروجی پیوند می‌دهد. .Pp با برخی ورودی‌های آرشیو، .Nm ممکن است در مقایسه با پیونددهنده‌های سنتی نتایج متفاوتی تولید کند. در عمل، بخش‌های وسیعی از نرم‌افزارهای شخص ثالث بدون مشکلات اساسی با .Nm پیوند داده شده‌اند. .Pp گزینهٔ .Fl -warn-backrefs می‌تواند برای شناسایی فراخوانی‌هایی از پیونددهنده به کار رود که ممکن است با رفتار سنتی پیونددهنده‌ها در سیستم‌های شبیه یونیکس ناسازگار باشند.