OS Manuals

/usr/bin/lld-link

LLVM linker

From lld-21 21.1.8-r17 (os), captured 2026-11-05 by running lld-link -help (exit 0). permalink

OVERVIEW: LLVM Linker

USAGE: /usr/bin/lld-link [options] file...

OPTIONS:
  /align:<value>          Section alignment
  /aligncomm:<value>      Set common symbol alignment
  /allowbind:no           Disable DLL binding
  /allowbind              Enable DLL binding (default)
  /allowisolation:no      Disable DLL isolation
  /allowisolation         Enable DLL isolation (default)
  /alternatename:<value>  Define weak alias
  /appcontainer:no        Image can run outside an app container (default)
  /appcontainer           Image can only be run in an app container
  /base:<value>           Base address of the program
  /Brepro                 Use a hash of the executable as the PE header timestamp
  /build-id:no            Do not Generate build ID
  /build-id               Generate build ID (always on when generating PDB)
  /call-graph-ordering-file:<value>
                          Layout sections to optimize the given callgraph
  /call-graph-profile-sort:no
                          Do not reorder sections with call graph profile
  /call-graph-profile-sort
                          Reorder sections with call graph profile (default)
  /cetcompat:no           Don't mark executable image as compatible with Control-flow Enforcement Technology (CET) Shadow Stack (default)
  /cetcompat              Mark executable image as compatible with Control-flow Enforcement Technology (CET) Shadow Stack
  --color-diagnostics=[auto,always,never]
                          Use colors in diagnostics (default: auto)
  --color-diagnostics     Alias for --color-diagnostics=always
  /debug:<value>          Embed a symbol table in the image with option
  /debugtype:<value>      Debug Info Options
  /debug                  Embed a symbol table in the image
  /def:<value>            Use module-definition file
  /defarm64native:<value> Use a module-definition file for the native view in a hybrid image.
  /defaultlib:<value>     Add the library to the list of input files
  /delayload:<value>      Delay loaded DLL name
  /demangle:no            Do not demangle symbols in output
  /demangle               Demangle symbols in output (default)
  /dependentloadflag:<value>
                          Sets the default load flags used to resolve the statically linked imports of a module
  /diasdkdir:<value>      Set the location of the DIA SDK
  /dll                    Create a DLL
  /driver:uponly          Set IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER bit in PE header
  /driver:wdm             Set IMAGE_FILE_UP_SYSTEM_ONLY bit in PE header
  /driver                 Generate a Windows NT Kernel Mode Driver
  /dwodir:<value>         Directory to store .dwo files when LTO and debug fission are used
  /dynamicbase:no         Disable ASLR (default when /fixed)
  /dynamicbase            Enable ASLR (default unless /fixed)
  /end-lib                End group of objects treated as if they were in a library
  /entry:<value>          Name of entry point symbol
  /errorlimit:<value>     Maximum number of errors to emit before stopping (0 = no limit)
  /exclude-symbols:<symbol[,symbol,...]>
                          Exclude symbols from automatic export
  /export:<value>         Export a function
  /filealign:<value>      Section alignment in the output file
  /fixed:no               Enable base relocations (default)
  /fixed                  Disable base relocations
  /force:multipleres      Allow multiply defined resources when creating executables
  /force:multiple         Allow multiply defined symbols when creating executables
  /force:unresolved       Allow undefined symbols when creating executables
  /force                  Allow undefined and multiply defined symbols
  /functionpadmin:<value> Prepares an image for hotpatching
  /guard:<value>          Control flow guard
  /heap:<value>           Size of the heap
  /highentropyva:no       Disable 64-bit ASLR
  /highentropyva          Enable 64-bit ASLR (default on 64-bit)
  /ignore:<value>         Specify warning codes to ignore
  /implib:<value>         Import library name
  /include:<value>        Force symbol to be added to symbol table as undefined one
  /includeglob:<value>    Force symbol to be added to symbol table as undefined one using a glob pattern
  /includeoptional:<value>
                          Add symbol as undefined, but allow it to remain undefined
  /incremental:no         Overwrite import library even if contents are unchanged
  /incremental            Keep original import library if contents are unchanged
  /inferasanlibs:no       No effect (default)
  /inferasanlibs          Unused, generates a warning
  /integritycheck:no      No effect (default)
  /integritycheck         Set FORCE_INTEGRITY bit in PE header
  /largeaddressaware:no   Disable large addresses (default on 32-bit)
  /largeaddressaware      Enable large addresses (default on 64-bit)
  /libpath:<value>        Additional library search path
  /lib                    Act like lib.exe; must be first argument if present
  /linkrepro:directory    Write repro.tar containing inputs and command to reproduce link
  /lldemit:<value>        Specify output type
  /lldignoreenv           Ignore environment variables like %LIB%
  /lldltocache:<value>    Path to ThinLTO cached object file directory
  /lldltocachepolicy:<value>
                          Pruning policy for the ThinLTO cache
  /lldsavetemps:<value>   Save select intermediate LTO compilation results
  /lldsavetemps           Save intermediate LTO compilation results
  /lto-cs-profile-file:<value>
                          Context sensitive profile file path
  /lto-cs-profile-generate
                          Perform context sensitive PGO instrumentation
  /lto-obj-path:<value>   output native object for merged LTO unit to this path
  /lto-pgo-warn-mismatch:no
                          turn off warnings about profile cfg mismatch
  /lto-pgo-warn-mismatch  turn on warnings about profile cfg mismatch (default)>
  /lto-sample-profile:<value>
                          Sample profile file path
  /machine:<value>        Specify target platform
  /manifest:<value>       NO disables manifest output; EMBED[,ID=#] embeds manifest as resource in the image
  /manifestdependency:<value>
                          Attributes for <dependency> element in manifest file; implies /manifest
  /manifestfile:<value>   Manifest output path, with /manifest
  /manifestinput:<value>  Additional manifest inputs; only valid with /manifest:embed
  /manifestuac:<value>    User access control
  /manifest               Create .manifest file
  /mapinfo:<value>        Include the specified information in a map file
  /merge:<value>          Combine sections
  /mllvm:<value>          Options to pass to LLVM
  /natvis:<value>         Path to natvis file to embed in the PDB
  --no-color-diagnostics  Alias for --color-diagnostics=never
  /nodefaultlib:<value>   Remove a default library
  /nodefaultlib           Remove all default libraries
  /noentry                Don't add reference to DllMainCRTStartup; only valid with /dll
  /noimplib               Don't output an import lib
  /nxcompat:no            Disable data execution provention
  /nxcompat               Enable data execution prevention (default)
  /opt:<value>            Control optimizations
  /order:<value>          Put functions in order
  /out:<value>            Path to file to write output
  /pdb:<value>            PDB file path
  /pdbaltpath:<value>     PDB file path to embed in the image
  /pdbpagesize:<value>    PDB page size
  /pdbsourcepath:<value>  Base path used to make relative source file path absolute in PDB
  /pdbstream:<name>=<file>
                          Embed the contents of <file> in the PDB as named stream <name>
  /pdbstripped:<value>    Stripped PDB file path
  /print-symbol-order:<value>
                          Print a symbol order specified by /call-graph-ordering-file and /call-graph-profile-sort into the specified file
  /release                Set the Checksum in the header of an PE file
  /reproduce:filename     Write tar file containing inputs and command to reproduce link
  --rsp-quoting=<value>   Quoting style for response files, 'windows' (default) or 'posix'
  /safeseh:no             Don't produce an image with Safe Exception Handler
  /safeseh                Produce an image with Safe Exception Handler (only for x86)
  /section:<value>        Specify section attributes
  /stack:<value>          Size of the stack
  /start-lib              Start group of objects treated as if they were in a library
  /stub:<value>           Specify DOS stub file
  /subsystem:<value>      Specify subsystem
  /swaprun:cd             Make loader run output binary from swap instead of from CD
  /swaprun:net            Make loader run output binary from swap instead of from network
  /swaprun:<value>        Comma-separated list of 'cd' or 'net'
  /thinlto-distributor-arg:<value>
                          Arguments to pass to the ThinLTO distributor
  /thinlto-distributor:<value>
                          Distributor to use for ThinLTO backend compilations. If specified, ThinLTO backend compilations will be distributed
  /thinlto-emit-imports-files
                          Emit .imports files with -thinlto-index-only
  /thinlto-index-only:<value>
                          -thinlto-index-only and also write native module names to file
  /thinlto-index-only     Instead of linking, emit ThinLTO index files
  /thinlto-object-suffix-replace:<value>
                          'old;new' replace old suffix with new suffix in ThinLTO index
  /thinlto-prefix-replace:<value>
                          'old;new' replace old prefix with new prefix in ThinLTO outputs
  /thinlto-remote-compiler-arg:<value>
                          Compiler arguments for the ThinLTO distributor to pass for ThinLTO backend compilations
  /thinlto-remote-compiler:<value>
                          Compiler for the ThinLTO distributor to invoke for ThinLTO backend compilations
  /threads:<value>        Number of threads. '1' disables multi-threading. By default all available hardware threads are used
  --time-trace-granularity=<value>
                          Minimum time granularity (in microseconds) traced by time profiler
  --time-trace=<file>     Record time trace to <file>
  --time-trace            Record time trace to file next to output
  /timestamp:<value>      Specify the PE header timestamp
  /time                   Print the time spent in each phase of linking
  /tsaware:no             Create non-Terminal Server aware executable
  /tsaware                Create Terminal Server aware executable (default)
  /vctoolsdir:<value>     Set the location of the VC tools
  /vctoolsversion:<value> Specify which VC tools version to use
  /version:<value>        Specify a version number in the PE header
  --version               Display the version number and exit
  /vfsoverlay:<value>     Path to a vfsoverlay yaml file to optionally look for /defaultlib's in
  /wholearchive:<value>   Include all object files from this library
  /wholearchive           Include all object files from all libraries
  /winsdkdir:<value>      Set the location of the Windows SDK
  /winsdkversion:<value>  Specify which SDK version to use
  /winsysroot:<value>     Adds several subdirectories to the library search paths
  /WX:no                  Don't treat warnings as errors (default)
  /WX                     Treat warnings as errors
Options (6)
OptionDescriptionSource
--color-diagnostics autoUse colors in diagnostics (default: auto)help
--no-color-diagnosticsAlias for --color-diagnostics=neverhelp
--rsp-quoting valueQuoting style for response files, 'windows' (default) or 'posix'help
--time-trace-granularity valueMinimum time granularity (in microseconds) traced by time profilerhelp
--time-trace fileRecord time trace to <file>help
--versionDisplay the version number and exithelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.