.\" 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 linker from the LLVM project
.Sh SYNOPSIS
.Nm ld.lld
.Op Ar options
.Ar objfile ...
.Sh DESCRIPTION
A linker takes one or more object, archive, and library files, and combines
them into an output file (an executable, a shared library, or another object
file).
It relocates code and data from the input files and resolves symbol
references between them.
.Pp
.Nm
is a drop-in replacement for the GNU BFD and gold linkers.
It accepts most of the same command line arguments and linker scripts
as GNU linkers.
.Pp
.Nm
currently supports i386, x86-64, ARM, AArch64, LoongArch, PowerPC32,
PowerPC64, MIPS32, MIPS64, RISC-V, AMDGPU, Hexagon and SPARC V9 targets.
.Nm
acts as a Microsoft link.exe-compatible linker if invoked as
.Nm lld-link
and as macOS's ld if invoked as
.Nm ld.ld64.
All these targets are always supported however
.Nm
was built, so you can always use
.Nm
as a native linker as well as a cross linker.
.Sh OPTIONS
Many options have both a single-letter and long form.
When using the long form options other than those beginning with the
letter
.Cm o
may be specified using either one or two dashes preceding the option name.
Long options beginning with
.Cm o
require two dashes to avoid confusion with the
.Fl o Ar path
option.
.Pp
.Bl -tag -width indent
.It Fl -allow-multiple-definition
Do not error if a symbol is defined multiple times.
The first definition will be used.
.It Fl -allow-shlib-undefined
Allow unresolved references in shared libraries.
This option is enabled by default when linking a shared library.
.It Fl -apply-dynamic-relocs
Apply link-time values for dynamic relocations.
.It Fl -as-needed
Only set
.Dv DT_NEEDED
for shared libraries if used.
.It Fl -auxiliary Ns = Ns Ar value
Set the
.Dv DT_AUXILIARY
field to the specified name.
.It Fl -Bdynamic , Fl -dy
Link against shared libraries.
.It Fl -Bstatic , Fl -static , Fl -dn
Do not link against shared libraries.
.It Fl Bno-symbolic
Don't bind default visibility defined symbols locally for
.Fl shared
(default).
.It Fl Bsymbolic
Bind default visibility defined symbols locally for
.Fl shared.
Also set the
.Dv DF_SYMBOLIC
flag.
.It Fl Bsymbolic-non-weak
Bind default visibility defined STB_GLOBAL symbols locally for
.Fl shared.
.It Fl Bsymbolic-functions
Bind default visibility defined function symbols locally for
.Fl shared.
.It Fl Bsymbolic-non-weak-functions
Bind default visibility defined STB_GLOBAL function symbols locally for
.Fl shared.
.It Fl -be8
Write a Big Endian ELF File using BE8 format(AArch32 only)
.It Fl -branch-to-branch
Enable the branch-to-branch optimizations: a branch whose target is
another branch instruction is rewritten to point to the latter branch
target (AArch64 and X86_64 only). Enabled by default at
.Fl O2 Ns .
.It Fl -build-id Ns = Ns Ar value
Generate a build ID note.
.Ar value
may be one of
.Cm fast ,
.Cm md5 ,
.Cm sha1 ,
.Cm tree ,
.Cm uuid ,
.Cm 0x Ns Ar hex-string ,
and
.Cm none .
.Cm tree
is an alias for
.Cm sha1 .
Build-IDs of type
.Cm fast ,
.Cm md5 ,
.Cm sha1 ,
and
.Cm tree
are calculated from the object contents.
.Cm fast
is not intended to be cryptographically secure.
.It Fl -build-id
Synonym for
.Fl -build-id Ns = Ns Cm sha1 .
.It Fl -call-graph-profile-sort Ns = Ns Ar algorithm
.Ar algorithm
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm none
Ignore call graph profile.
.It Cm hfsort
Use hfsort.
.It Cm cdsort
Use cdsort (default).
.El
.Pp
.It Fl -color-diagnostics Ns = Ns Ar value
Use colors in diagnostics.
.Ar value
may be one of
.Cm always ,
.Cm auto ,
and
.Cm never .
.Cm auto
enables color if and only if output is to a terminal.
.It Fl -color-diagnostics
Alias for
.Fl -color-diagnostics Ns = Ns Cm auto .
.It Fl -compress-debug-sections Ns = Ns Ar value
Compress DWARF debug sections.
The sections remain uncompressed if compressed content would be larger.
.Cm value
may be
.Pp
.Bl -tag -width 2n -compact
.It Cm none
No compression.
.It Cm zlib
The default compression level is 1 (fastest) as the debug info usually
compresses well at that level.
.It Cm zstd
Use the default compression level in zstd.
.El
.Pp
.It Fl -compress-sections Ns = Ns Ar section-glob={none,zlib,zstd}[:level]
Compress output sections that match the glob and do not have the SHF_ALLOC flag.
The matched sections remain uncompressed if compressed content would be larger.
The compression level is
.Cm level
(if specified) or a default speed-focused level.
This is like a generalized
.Cm --compress-debug-sections.
.It Fl -cref
Output cross reference table. If
.Fl Map
is specified, print to the map file.
.It Fl -debug-names
Generate a merged
.Li .debug_names
section.
.It Fl -default-script Ns = Ns Ar file , Fl dT Ar file
In the absence of
.Fl -script ,
read this default linker script.
.It Fl -defsym Ns = Ns Ar symbol Ns = Ns Ar expression
Define a symbol alias.
.Ar expression
may be another symbol or a linker script expression.
For example,
.Ql --defsym=foo=bar
or
.Ql --defsym=foo=bar+0x100 .
.It Fl -demangle
Demangle symbol names.
.It Fl -disable-new-dtags
Disable new dynamic tags.
.It Fl -discard-all , Fl x
Delete all local symbols.
.It Fl -discard-locals , Fl X
Delete temporary local symbols.
.It Fl -discard-none
Keep all symbols in the symbol table.
.It Fl -dynamic-linker Ns = Ns Ar value
Specify the dynamic linker to be used for a dynamically linked executable.
This is recorded in an ELF segment of type
.Dv PT_INTERP .
.It Fl -dynamic-list Ns = Ns Ar file
Similar to
.Cm --export-dynamic-symbol-list .
When creating a shared object, implies
.Cm -Bsymbolic
but does not set DF_SYMBOLIC
.It Fl -EB
Select the big-endian format in the OUTPUT_FORMAT command.
.It Fl -EL
Select the little-endian format in the OUTPUT_FORMAT command.
.It Fl -eh-frame-hdr
Request creation of
.Li .eh_frame_hdr
section and
.Dv PT_GNU_EH_FRAME
segment header.
.It Fl -emit-relocs , Fl q
Generate relocations in the output.
.It Fl -enable-new-dtags
Enable new dynamic tags.
.It Fl -enable-non-contiguous-regions
Spill input sections to later matching output sections to avoid memory region overflow.
.It Fl -end-lib
End a grouping of objects that should be treated as if they were together
in an archive.
.It Fl -entry Ns = Ns Ar entry
Name of entry point symbol.
.It Fl -error-limit Ns = Ns Ar value
Maximum number of errors to emit before stopping.
A value of zero indicates that there is no limit.
.It Fl -error-unresolved-symbols
Report unresolved symbols as errors.
.It Fl -error-handing-script Ns = Ns Ar script_path
Call script
.Ar script_path
upon some error, with
.Ar tag
as first argument, and an extra parameter as second argument. The script is
expected to return 0 on success. Any other value is considered a generic error.
.Ar tag
may be
.Cm missing-lib
followed by the name of the missing library.
.Cm undefined-symbol
followed by the name of the undefined symbol.
.It Fl -execute-only
Mark executable sections unreadable.
This option is currently only supported on AArch64.
.It Fl -exclude-libs Ns = Ns Ar value
Exclude static libraries from automatic export.
.It Fl -export-dynamic , Fl E
Put symbols in the dynamic symbol table.
.It Fl -export-dynamic-symbol Ns = Ns Ar glob
(executable) Put matched non-local defined symbols to the dynamic symbol table.
(shared object) References to matched non-local STV_DEFAULT symbols shouldn't be bound to definitions within the shared object even if they would otherwise be due to
.Cm -Bsymbolic
,
.Cm -Bsymbolic-functions
or
.Cm --dynamic-list
.It Fl -export-dynamic-symbol-list Ns = Ns Ar file
Read a list of dynamic symbol patterns from
.Ar file .
Apply
.Cm --export-dynamic-symbol
on each pattern.
.It Fl -fatal-warnings
Treat warnings as errors.
.It Fl -filter Ns = Ns Ar value , Fl F Ar value
Set the
.Dv DT_FILTER
field to the specified value.
.It Fl -fini Ns = Ns Ar symbol
Specify a finalizer function.
.It Fl -force-group-allocation
Only meaningful for -r. Section groups are discarded. If two section group members are placed to the same output section, combine their relocations as well.
.It Fl -format Ns = Ns Ar input-format , Fl b Ar input-format
Specify the format of the inputs following this option.
.Ar input-format
may be one of
.Cm binary ,
.Cm elf ,
and
.Cm default .
.Cm default
is a synonym for
.Cm elf .
.It Fl -gc-sections
Enable garbage collection of unused sections.
.It Fl -gdb-index
Generate
.Li .gdb_index
section.
.It Fl -hash-style Ns = Ns Ar value
Specify hash style.
.Ar value
may be
.Cm sysv ,
.Cm gnu ,
or
.Cm both .
.Cm both
is the default.
.It Fl -help
Print a help message.
.It Fl -icf Ns = Ns Cm all
Enable identical code folding.
.It Fl -icf Ns = Ns Cm safe
Enable safe identical code folding.
.It Fl -icf Ns = Ns Cm none
Disable identical code folding.
.It Fl -ignore-data-address-equality
Ignore address equality of data. C/C++ requires each data to have a unique
address.
This option allows lld to do unsafe optimization that breaks the
requirement: create copies of read-only data or merge two or more read-only data
that happen to have the same value.
.It Fl -ignore-function-address-equality
Ignore address equality of functions.
This option allows non-PIC calls to a function with non-default visibility in
a shared object.
The function may have different addresses within the executable and within the
shared object.
.It Fl -image-base Ns = Ns Ar value
Set the base address to
.Ar value .
.It Fl -init Ns = Ns Ar symbol
Specify an initializer function.
.It Fl -keep-unique Ns = Ns Ar symbol
Do not fold
.Ar symbol
during ICF.
.It Fl l Ar libName, Fl -library Ns = Ns Ar libName
Root name of library to use.
.It Fl L Ar dir , Fl -library-path Ns = Ns Ar dir
Add a directory to the library search path.
.It Fl -lto-aa-pipeline Ns = Ns Ar value
AA pipeline to run during LTO.
Used in conjunction with
.Fl -lto-newpm-passes .
.It Fl -lto-newpm-passes Ns = Ns Ar value
Passes to run during LTO.
.It Fl -lto-O Ns Ar opt-level
Optimization level for LTO.
.It Fl -lto-partitions Ns = Ns Ar value
Number of LTO codegen partitions.
.It Fl m Ar value
Set target emulation.
.It Fl -Map Ns = Ns Ar file , Fl M Ar file
Print a link map to
.Ar file .
.It Fl -nmagic , Fl n
Do not page align sections, link against static libraries.
.It Fl -no-allow-shlib-undefined
Do not allow unresolved references in shared libraries.
This option is enabled by default when linking an executable.
.It Fl -no-as-needed
Always set
.Dv DT_NEEDED
for shared libraries.
.It Fl -no-color-diagnostics
Do not use colors in diagnostics.
.It Fl -no-demangle
Do not demangle symbol names.
.It Fl -no-dynamic-linker
Inhibit output of an
.Li .interp
section.
.It Fl -no-fortran-common
Do not search archive members for definitions to override COMMON symbols.
.It Fl -no-gc-sections
Disable garbage collection of unused sections.
.It Fl -no-gnu-unique
Disable STB_GNU_UNIQUE symbol binding.
.It Fl -no-merge-exidx-entries
Disable merging .ARM.exidx entries.
.It Fl -no-nmagic
Page align sections.
.It Fl -no-omagic
Do not set the text data sections to be writable, page align sections.
.It Fl -no-relax
Disable target-specific relaxations. For x86-64 this disables R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX GOT optimization.
.It Fl -no-rosegment
Do not put read-only non-executable sections in their own segment.
.It Fl -undefined-version
Do not report version scripts that refer to undefined symbols.
.It Fl -no-undefined
Report unresolved symbols even if the linker is creating a shared library.
.It Fl -no-warn-mismatch
Do not reject unknown section types.
.It Fl -no-warn-symbol-ordering
Do not warn about problems with the symbol ordering file or call graph profile.
.It Fl -no-warnings , Fl w
Suppress warnings and cancel
.Cm --fatal-warnings.
.It Fl -no-whole-archive
Restores the default behavior of loading archive members.
.It Fl -no-pie , Fl -no-pic-executable
Do not create a position independent executable.
.It Fl -noinhibit-exec
Retain the executable output file whenever it is still usable.
.It Fl -nostdlib
Only search directories specified on the command line.
.It Fl o Ar path
Write the output executable, library, or object to
.Ar path .
If not specified,
.Dv a.out
is used as a default.
.It Fl O Ns Ar value
Optimize output file.
.Ar value
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm 0
Disable string merging.
.It Cm 1
Enable string merging.
.It Cm 2
Enable string tail merging and branch-to-branch optimization.
.El
.Pp
.Fl O Ns Cm 1
is the default.
.It Fl -oformat Ns = Ns Ar format
Specify the format for the output object file.
The only supported
.Ar format
is
.Cm binary ,
which produces output with no ELF header.
.It Fl -omagic , Fl N
Set the text and data sections to be readable and writable, do not page align
sections, link against static libraries.
.It Fl -opt-remarks-filename Ar file
Write optimization remarks in YAML format to
.Ar file .
.It Fl -opt-remarks-passes Ar pass-regex
Filter optimization remarks by only allowing the passes matching
.Ar pass-regex .
.It Fl -opt-remarks-with-hotness
Include hotness information in the optimization remarks file.
.It Fl -orphan-handling Ns = Ns Ar mode
Control how orphan sections are handled.
An orphan section is one not specifically mentioned in a linker script.
.Ar mode
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm place
Place orphan sections in suitable output sections.
.It Cm warn
Place orphan sections as for
.Cm place
and also report a warning.
.It Cm error
Place orphan sections as for
.Cm place
and also report an error.
.El
.Pp
.Cm place
is the default.
.It Fl -pack-dyn-relocs Ns = Ns Ar format
Pack dynamic relocations in the given format.
.Ar format
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm none
Do not pack.
Dynamic relocations are encoded in SHT_REL(A).
.It Cm android
Pack dynamic relocations in SHT_ANDROID_REL(A).
.It Cm relr
Pack relative relocations in SHT_RELR, and the rest of dynamic relocations in
SHT_REL(A).
.It Cm android+relr
Pack relative relocations in SHT_RELR, and the rest of dynamic relocations in
SHT_ANDROID_REL(A).
.El
.Pp
.Cm none
is the default.
If
.Fl -use-android-relr-tags
is specified, use SHT_ANDROID_RELR instead of SHT_RELR.
.Pp
.It Fl -package-metadata
Emit a percent-encoded string to the
.Cm .note.package
section. For example, %25 decodes to a single %.
.It Fl -pic-veneer
Always generate position independent thunks.
.It Fl -pie , Fl -pic-executable
Create a position independent executable.
.It Fl -power10-stubs Ns = Ns Cm mode
Whether to use Power10 instructions in call stubs for R_PPC64_REL24_NOTOC and TOC/NOTOC interworking.
.Ar mode
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm yes
(default) Use.
.It Cm auto
Currently the same as yes.
.It Cm no
Don't use.
.El

.It Fl -print-gc-sections
List removed unused sections.
.It Fl -print-gc-sections Ns = Ns Ar file
List removed unused sections to the specified file.
.It Fl -print-icf-sections
List identical folded sections.
.It Fl -print-map
Print a link map to the standard output.
.It Fl -print-archive-stats Ns = Ns Ar file
Write archive usage statistics to the specified file.
Print the numbers of members and fetched members for each archive.
.It Fl -push-state
Save the current state of
.Fl -as-needed ,
.Fl -static ,
and
.Fl -whole-archive.
.It Fl -pop-state
Restore the states saved by
.Fl -push-state.
.It Fl -randomize-section-padding Ns = Ns Ar seed
Randomly insert padding between input sections and at the start of each segment using the given seed.
Padding is inserted into output sections with names matching the following patterns:
.Cm .bss ,
.Cm .data ,
.Cm .data.rel.ro ,
.Cm .lbss ,
.Cm .ldata ,
.Cm .lrodata ,
.Cm .ltext ,
.Cm .rodata
and
.Cm .text* .
.It Fl --relax-gp
Enable global pointer relaxation for RISC-V.
.It Fl -relocatable , Fl r
Create relocatable object file.
.It Fl -remap-inputs Ns = Ns Ar from-glob=to-file
Input files matching
.Cm from-glob
are mapped to
.Cm to-file.
Use
.Cm /dev/null
to ignore an input file.
.It Fl -remap-inputs-file Ns = Ns Ar file
Remap input files based on patterns in
.Ar file .
Each line in the remap file is of the format
.Cm from-glob=to-file
or a comment starting with
.Cm # .
.It Fl -reproduce Ns = Ns Ar path
Write a tar file to
.Ar path,
containing all the input files needed to reproduce the link, a text file called
response.txt containing the command line options and a text file called
version.txt containing the output of ld.lld --version.
The archive when
unpacked can be used to re-run the linker with the same options and input files.
.It Fl -retain-symbols-file Ns = Ns Ar file
Retain only the symbols listed in the file.
.It Fl -rpath Ns = Ns Ar value , Fl R Ar value
Add a
.Dv DT_RUNPATH
to the output.
.It Fl -rsp-quoting Ns = Ns Ar value
Quoting style for response files.
The supported values are
.Cm windows
and
.Cm posix .
.It Fl -script Ns = Ns Ar file , Fl T Ar file
Read linker script from
.Ar file .
If multiple linker scripts are given, they are processed as if they
were concatenated in the order they appeared on the command line.
.It Fl -section-start Ns = Ns Ar section Ns = Ns Ar address
Set address of section.
.It Fl -shared , Fl -Bsharable
Build a shared object.
.It Fl -shuffle-sections Ns = Ns Ar seed
Shuffle matched sections using the given seed before mapping them to the output sections.
If -1, reverse the section order. If 0, use a random seed.
.It Fl -soname Ns = Ns Ar value , Fl h Ar value
Set
.Dv DT_SONAME
to
.Ar value .
.It Fl -sort-common
This option is ignored for GNU compatibility.
.It Fl -sort-section Ns = Ns Ar value
Specifies sections sorting rule when linkerscript is used.
.It Fl -start-lib
Start a grouping of objects that should be treated as if they were together
in an archive.
.It Fl -strip-all , Fl s
Strip all symbols.
Implies
.Fl -strip-debug .
.It Fl -strip-debug , Fl S
Strip debugging information.
.It Fl -symbol-ordering-file Ns = Ns Ar file
Lay out sections in the order specified by
.Ar file .
.It Fl -sysroot Ns = Ns Ar value
Set the system root.
.It Fl -target1-abs
Interpret
.Dv R_ARM_TARGET1
as
.Dv R_ARM_ABS32 .
.It Fl -target1-rel
Interpret
.Dv R_ARM_TARGET1
as
.Dv R_ARM_REL32 .
.It Fl -target2 Ns = Ns Ar type
Interpret
.Dv R_ARM_TARGET2
as
.Ar type ,
where
.Ar type
is one of
.Cm rel ,
.Cm abs ,
or
.Cm got-rel .
.It Fl -Tbss Ns = Ns Ar value
Same as
.Fl -section-start
with
.Li .bss
as the sectionname.
.It Fl -Tdata Ns = Ns Ar value
Same as
.Fl -section-start
with
.Li .data
as the sectionname.
.It Fl -Ttext Ns = Ns Ar value
Same as
.Fl -section-start
with
.Li .text
as the sectionname.
.It Fl -thinlto-cache-dir Ns = Ns Ar value
Path to ThinLTO cached object file directory.
.It Fl -thinlto-cache-policy Ns = Ns Ar value
Pruning policy for the ThinLTO cache.
.It Fl -thinlto-jobs Ns = Ns Ar value
Number of ThinLTO jobs.
.It Fl -threads Ns = Ns Ar N
Number of threads.
.Cm all
(default) means all of concurrent threads supported.
.Cm 1
disables multi-threading.
.It Fl -fat-lto-objects
Use the .llvm.lto section, which contains LLVM bitcode, in fat LTO object files to perform LTO.
.It Fl -no-fat-lto-objects
Ignore the .llvm.lto section in relocatable object files (default).
.It Fl -time-trace
Record time trace.
.It Fl -time-trace-file Ns = Ns Ar file
Write time trace output to
.Ar file .
.It Fl -time-trace-granularity Ns = Ns Ar value
Minimum time granularity (in microseconds) traced by time profiler.
.It Fl -trace
Print the names of the input files.
.It Fl -trace-symbol Ns = Ns Ar symbol , Fl y Ar symbol
Trace references to
.Ar symbol .
.It Fl -undefined Ns = Ns Ar symbol , Fl u Ar symbol
If
.Ar symbol
is not defined after symbol resolution, and there's a static library
that contains an object file defining the symbol, load the member
to include the object file in the output file.
.It Fl -undefined-glob Ns = Ns Ar pattern
Synonym for
.Fl -undefined ,
except that it takes a glob pattern.
In a glob pattern,
.Cm *
matches zero or more characters,
.Cm ?
matches any single character, and
.Cm [...]
matches the characters within brackets.
All symbols that match
a given pattern are handled as if they were given as arguments of
.Fl -undefined .
.It Fl -unique
Creates a separate output section for every orphan input section.
.It Fl -unresolved-symbols Ns = Ns Ar value
Determine how to handle unresolved symbols.
.Ar value
may be:
.Pp
.Bl -tag -width 2n -compact
.It Cm report-all
Report unresolved symbols (default).
.It Cm ignore-in-object-files
Only report unresolved symbols contained in shared libraries.
.It Cm ignore-in-shared-libs
Only report unresolved symbols contained in object files.
.It Cm ignore-all
Do not report unresolved symbols.
.El
.It Fl -use-android-relr-tags
Use SHT_ANDROID_RELR / DT_ANDROID_RELR* tags instead of SHT_RELR / DT_RELR*.
.It Fl v , Fl V
Display the version number and proceed with linking if object files are
specified.
.It Fl -version
Display the version number and exit.
.It Fl -verbose
Verbose mode.
.It Fl -version-script Ns = Ns Ar file
Read version script from
.Ar file .
.It Fl -warn-backrefs
Warn about reverse or cyclic dependencies to or between static archives.
This can be used to ensure linker invocation remains compatible with
traditional Unix-like linkers.
.It Fl -warn-backrefs-exclude Ns = Ns Ar glob
Glob describing an archive (or an object file within --start-lib)
which should be ignored for
.Fl -warn-backrefs
.It Fl -warn-common
Warn about duplicate common symbols.
.It Fl -warn-ifunc-textrel
Warn about using ifunc symbols in conjunction with text relocations.
Older versions of glibc library (2.28 and earlier) has a bug that causes
the segment that includes ifunc symbols to be marked as not executable when
they are relocated.
As a result, although the program compiles and links
successfully, it gives segmentation fault when the instruction pointer reaches
an ifunc symbol.
Use -warn-ifunc-textrel to let lld give a warning, if the
code may include ifunc symbols, may do text relocations and be linked with
an older glibc version.
Otherwise, there is no need to use it, as the default value does not give a
warning.
This flag has been introduced in late 2018, has no counter part in ld and gold
linkers, and may be removed in the future.
.It Fl -warn-unresolved-symbols
Report unresolved symbols as warnings.
.It Fl -whole-archive
Force load of all members in a static library.
.It Fl -why-extract Ns = Ns Ar file
Print to a file about why archive members are extracted.
.It Fl -why-live Ns = Ns Ar glob
Report a chain of references preventing garbage collection for each symbol matching the glob.
.It Fl -wrap Ns = Ns Ar symbol
Redirect
.Ar symbol
references to
.Ar __wrap_symbol
and
.Ar __real_symbol
references to
.Ar symbol.
.It Fl z Ar option
Linker option extensions.
.Bl -tag -width indent -compact
.Pp
.It Cm dead-reloc-in-nonalloc Ns = Ns Ar section_glob=value
Resolve a relocation in a matched non-SHF_ALLOC section referencing a discarded symbol to
.Ar value
Accepts globs, in the event of a section matching more than one option, the last
option takes precedence. An order of least specific to most specific match is
recommended.
.Pp
.It Cm execstack
Make the main stack executable.
Stack permissions are recorded in the
.Dv PT_GNU_STACK
segment.
.Pp
.It Cm bti-report Ns = Ns Ar [none|warning|error]
Specify how to report the missing GNU_PROPERTY_AARCH64_FEATURE_1_BTI property.
.Cm none
is the default, linker will not report the missing property otherwise will be reported as a warning or an error.
.Pp
.It Cm cet-report Ns = Ns Ar [none|warning|error]
Specify how to report the missing GNU_PROPERTY_X86_FEATURE_1_IBT or GNU_PROPERTY_X86_FEATURE_1_SHSTK properties.
.Cm none
is the default, linker will not report the missing property otherwise will be reported as a warning or an error.
.Pp
.It Cm gcs-report Ns = Ns Ar [none|warning|error]
Specify how to report missing
.Cm GNU_PROPERTY_AARCH64_FEATURE_1_GCS
property. GNU_PROPERTY_AARCH64_FEATURE_1_GCS indicates object file support for the Guarded Control Stack security feature.
.Cm none
is the default, linker will not report the missing property otherwise will be reported as a warning or an error.
.Pp
.It Cm dynamic-undefined-weak
Make undefined weak symbols dynamic when the dynamic symbol table is present, if they are referenced from
relocatable object files and not forced local by symbol visibility or versioning. Do not make them dynamic when
.Cm nodynamic-undefined-weak
is specified.
.Cm dynamic-undefined-weak
is the default when building a shared object, or when an input shared object is present.
.Pp
.It Cm pauth-report Ns = Ns Ar [none|warning|error]
Specify how to report the missing GNU_PROPERTY_AARCH64_FEATURE_PAUTH property.
.Cm none
is the default, linker will not report the missing property otherwise will be reported as a warning or an error.
.Pp
.It Cm force-bti
Force enable AArch64 BTI instruction in PLT, warn if Input ELF file does not have GNU_PROPERTY_AARCH64_FEATURE_1_BTI property.
.Pp
.It Cm force-ibt
Force enable Intel Indirect Branch Tracking in PLT, warn if an input ELF file
does not have GNU_PROPERTY_X86_FEATURE_1_IBT property.
.Pp
.It Cm global
Sets the
.Dv DF_1_GLOBAL flag in the
.Dv DYNAMIC
section.
Different loaders can decide how to handle this flag on their own.
.Pp
.It Cm ifunc-noplt
Do not emit PLT entries for ifunc symbols.
Instead, emit text relocations referencing the resolver.
This is an experimental optimization and only suitable for standalone
environments where text relocations do not have the usual drawbacks.
This option must be combined with the
.Fl z Li notext
option.
.Pp
.It Cm initfirst
Sets the
.Dv DF_1_INITFIRST
flag to indicate the module should be initialized first.
.Pp
.It Cm interpose
Set the
.Dv DF_1_INTERPOSE
flag to indicate to the runtime linker that the object is an interposer.
During symbol resolution interposers are searched after the application
but before other dependencies.
.Pp
.It Cm lrodata-after-bss
Place .lrodata after .bss.
.Pp
.It Cm muldefs
Do not error if a symbol is defined multiple times.
The first definition will be used.
This is a synonym for
.Fl -allow-multiple-definition.
.Pp
.It Cm nocombreloc
Disable combining and sorting multiple relocation sections.
.Pp
.It Cm nocopyreloc
Disable the creation of copy relocations.
.Pp
.It Cm nodefaultlib
Set the
.Dv DF_1_NODEFLIB
flag to indicate that default library search paths should be ignored.
.Pp
.It Cm nodelete
Set the
.Dv DF_1_NODELETE
flag to indicate that the object cannot be unloaded from a process.
.Pp
.It Cm nodlopen
Set the
.Dv DF_1_NOOPEN
flag to indicate that the object may not be opened by
.Xr dlopen 3 .
.Pp
.It Cm nognustack
Do not emit the
.Dv PT_GNU_STACK
segment.
.Pp
.It Cm norelro
Do not indicate that portions of the object should be mapped read-only
after initial relocation processing.
The object will omit the
.Dv PT_GNU_RELRO
segment.
.Pp
.It Cm nosectionheader
Don't generate the section header table.
.Pp
.It Cm notext
Allow relocations against read-only segments.
Sets the
.Dv DT_TEXTREL flag in the
.Dv DYNAMIC
section.
.Pp
.It Cm now
Set the
.Dv DF_BIND_NOW
flag to indicate that the run-time loader should perform all relocation
processing as part of object initialization.
By default relocations may be performed on demand.
.Pp
.It Cm origin
Set the
.Dv DF_ORIGIN
flag to indicate that the object requires
$ORIGIN
processing.
.Pp
.It Cm pac-plt
AArch64 only, use pointer authentication in PLT.
.Pp
.It Cm pack-relative-relocs
Similar to
.Cm -pack-dyn-relocs=relr
, but synthesizes the GLIBC_ABI_DT_RELR version dependency if there is a GLIBC_2.* version dependency.
glibc ld.so rejects loading a dynamically linked object without the GLIBC_ABI_DT_RELR version dependency.
.Pp
.It Cm rel
Use REL format for dynamic relocations.
.Pp
.It Cm rela
Use RELA format for dynamic relocations.
.Pp
.It Cm retpolineplt
Emit retpoline format PLT entries as a mitigation for CVE-2017-5715.
.Pp
.It Cm rodynamic
Make the
.Li .dynamic
section read-only.
The
.Dv DT_DEBUG
tag will not be emitted.
.Pp
.It Cm separate-loadable-segments
.It Cm separate-code
.It Cm noseparate-code
Specify whether two adjacent PT_LOAD segments are allowed to overlap in pages.
.Cm noseparate-code
(default) allows overlap.
.Cm separate-code
allows overlap between two executable segments, or two non-executable segments.
.Cm separate-loadable-segments
disallows overlap.
.Pp
.It Cm shstk
x86 only, use shadow stack.
.Pp
.It Cm gcs Ns = Ns Ar [implicit|never|always]
Specifies how the
.Cm GNU_PROPERTY_AARCH64_FEATURE_1_GCS
bit is set in the output ELF file. When set, it indicates support for the Guarded Control Stack (GCS) security feature.
.Cm implicit
(default) The GCS feature bit is set if all input relocatable files have a .note.gnu.property section containing the GNU_PROPERTY_AARCH64_FEATURE_1_GCS bit.
.Cm never
clears the GCS feature bit regardless of input relocatable files' markings.
.Cm always
sets the GCS feature bit regardless of input object markings.
.Pp
.It Cm stack-size Ns = Ns Ar size
Set the main thread's stack size to
.Ar size .
The stack size is recorded as the size of the
.Ar size .
.Dv PT_GNU_STACK
program segment.
.Pp
.It Cm start-stop-gc
Don't let __start_/__stop_ references retain the associated C identifier name sections (default).
.Pp
.It Cm nostart-stop-gc
Let __start_/__stop_ references retain the associated C identifier name sections.
.Pp
.It Cm text
Do not allow relocations against read-only segments.
This is the default.
.Pp
.It Cm nobtcfi
Create a
.Dv PT_OPENBSD_NOBTCFI
segment.
.Pp
.It Cm wxneeded
Create a
.Dv PT_OPENBSD_WXNEEDED
segment.
.El
.El

.Sh ENVIRONMENT VARIABLES
.Bl -tag -width LC_CTYPE
.It Ev LLD_REPRODUCE
Create a reproduce tarball with the specified filename. If
.Fl -reproduce
is specified,
.Fl -reproduce
takes precedence.
.It Ev LLD_VERSION
ld.lld creates a section named
.Cm .comment
containing the LLD version string. The version string can be overridden by this environment variable,
which is useful to eliminate differences in the binary caused by LLD version number differences.
.El

.Sh IMPLEMENTATION NOTES
.Nm Ap s
handing of archive files (those with a
.Pa .a
file extension) is different from traditional linkers used on Unix-like
systems.
.Pp
Traditional linkers maintain a set of undefined symbols during linking.
The linker processes each file in the order in which it appears on the
command line, until the set of undefined symbols becomes empty.
An object file is linked into the output object when it is encountered,
with its undefined symbols added to the set.
Upon encountering an archive file a traditional linker searches the objects
contained therein, and processes those that satisfy symbols in the unresolved
set.
.Pp
Handling mutually dependent archives may be awkward when using a traditional
linker.
Archive files may have to be specified multiple times, or the special command
line options
.Fl -start-group
and
.Fl -end-group
may be used to have the linker loop over the files in the group until no new
symbols are added to the set.
.Pp
.Nm
records all symbols found in objects and archives as it iterates over
command line arguments.
When
.Nm
encounters an undefined symbol that can be resolved by an object file
contained in a previously processed archive file, it immediately extracts
and links it into the output object.
.Pp
With certain archive inputs
.Nm
may produce different results compared to traditional linkers.
In practice, large bodies of third party software have been linked with
.Nm
without material issues.
.Pp
The
.Fl -warn-backrefs
option may be used to identify a linker invocation that may be incompatible
with traditional Unix-like linker behavior.
