Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LD.LLD(1)		  BSD General Commands Manual		     LD.LLD(1)

NAME
     ld.lld -- ELF linker from the LLVM	project

SYNOPSIS
     ld.lld [options] objfile ...

DESCRIPTION
     A linker takes one	or more	object,	archive, and library files, and	com-
     bines them	into an	output file (an	executable, a shared library, or an-
     other object file).  It relocates code and	data from the input files and
     resolves symbol references	between	them.

     ld.lld is a drop-in replacement for the GNU BFD and gold linkers.	It ac-
     cepts most	of the same command line arguments and linker scripts as GNU
     linkers.

     Many options have both a single-letter and	long form.  When using the
     long form options other than those	beginning with the letter o may	be
     specified using either one	or two dashes preceeding the option name.
     Long options beginning with o require two dashes to avoid confusion with
     the -o path option.

     These options are available:

     --allow-multiple-definition
	     Do	not error if a symbol is defined multiple times.  The first
	     definition	will be	used.

     --as-needed
	     Only set DT_NEEDED	for shared libraries if	used.

     --auxiliary value
	     Set the DT_AUXILIARY field	to the specified name.

     --Bdynamic
	     Link against shared libraries.

     --Bstatic
	     Do	not link against shared	libraries.

     --Bsymbolic-functions
	     Bind defined function symbols locally.

     --Bsymbolic
	     Bind defined symbols locally.

     --build-id=value
	     Generate a	build ID note.	value may be one of md5, sha1, tree,
	     uuid, 0xhex-string, and none.  tree is an alias for sha1.	Build-
	     IDs of type md5, sha1, and	tree are calculated from the object
	     contents.

     --build-id
	     Generate a	build ID note.

     --color-diagnostics=value
	     Use colors	in diagnostics.	 value may be one of always, auto, and
	     never.  auto enables color	if and only if output is to a termi-
	     nal.

     --color-diagnostics
	     Alias for --color-diagnostics=auto.

     --compress-debug-sections=value
	     Compress DWARF debug sections.  value may be none or zlib.

     --define-common
	     Assign space to common symbols.

     --defsym=symbol=expression
	     Define a symbol alias.  expression	may be another symbol or a
	     linker script expression.	For example, --defsym=foo=bar or
	     --defsym=foo=bar+0x100.

     --demangle
	     Demangle symbol names.

     --disable-new-dtags
	     Disable new dynamic tags.

     --discard-all
	     Delete all	local symbols.

     --discard-locals
	     Delete temporary local symbols.

     --discard-none
	     Keep all symbols in the symbol table.

     --dynamic-linker value
	     Specify the dynamic linker	to be used for a dynamically linked
	     executable.  This is recorded in an ELF segment of	type
	     PT_INTERP.

     --dynamic-list file
	     Read a list of dynamic symbols from file.

     --eh-frame-hdr
	     Request creation of .eh_frame_hdr section and PT_GNU_EH_FRAME
	     segment header.

     --emit-relocs
	     Generate relocations in the output.

     --enable-new-dtags
	     Enable new	dynamic	tags.

     --end-lib
	     End a grouping of objects that should be treated as if they were
	     together in an archive.

     --entry entry
	     Name of entry point symbol.

     --error-limit value
	     Maximum number of errors to emit before stopping.	A value	of
	     zero indicates that there is no limit.

     --error-unresolved-symbols
	     Report unresolved symbols as errors.

     --exclude-libs value
	     Exclude static libraries from automatic export.

     --export-dynamic-symbol symbol
	     Include symbol in the dynamic symbol table.

     --export-dynamic
	     Put symbols in the	dynamic	symbol table.

     --fatal-warnings
	     Treat warnings as errors.

     --filter=value
	     Set the DT_FILTER field to	the specified value.

     --fini symbol
	     Specify a finalizer function.

     --format=input-format
	     Specify the format	of the inputs following	this option.
	     input-format may be one of	binary,	elf, and default.  default is
	     a synonym for elf.

     --gc-sections
	     Enable garbage collection of unused sections.

     --gdb-index
	     Generate .gdb_index section.

     --hash-style value
	     Specify hash style.  value	may be sysv, gnu, or both.  both is
	     the default.

     --help  Print a usage message.

     --icf=all
	     Enable identical code folding.

     --icf=none
	     Disable identical code folding.

     --image-base=value
	     Set the base address to value.

     --init symbol
	     Specify an	initializer function.

     --lto-aa-pipeline=value
	     AA	pipeline to run	during LTO.  Used in conjunction with
	     --lto-newpm-passes.

     --lto-newpm-passes=value
	     Passes to run during LTO.

     --lto-O opt-level
	     Optimization level	for LTO.

     --lto-partitions=value
	     Number of LTO codegen partitions.

     -L	dir  Add a directory to	the library search path.

     -l	libName
	     Root name of library to use.

     --Map file
	     Print a link map to file.

     -m	value
	     Set target	emulation.

     --no-as-needed
	     Always set	DT_NEEDED for shared libraries.

     --no-color-diagnostics
	     Do	not use	colors in diagnostics.

     --no-define-common
	     Do	not assign space to common symbols.

     --no-demangle
	     Do	not demangle symbol names.

     --no-dynamic-linker
	     Inhibit output of an .interp section.

     --no-gc-sections
	     Disable garbage collection	of unused sections.

     --no-gnu-unique
	     Disable STB_GNU_UNIQUE symbol binding.

     --no-rosegment
	     Do	not put	read-only non-executable sections in their own seg-
	     ment.

     --no-threads
	     Do	not run	the linker multi-threaded.

     --no-undefined-version
	     Report version scripts that refer undefined symbols.

     --no-undefined
	     Report unresolved symbols even if the linker is creating a	shared
	     library.

     --no-whole-archive
	     Restores the default behavior of loading archive members.

     --noinhibit-exec
	     Retain the	executable output file whenever	it is still usable.

     --no-pie
	     Do	not create a position independent executable.

     --nostdlib
	     Only search directories specified on the command line.

     --oformat format
	     Specify the format	for the	output object file.  The only sup-
	     ported format is binary, which produces output with no ELF
	     header.

     --omagic
	     Set the text and data sections to be readable and writable.

     --opt-remarks-filename file
	     Write optimization	remarks	in YAML	format to file.

     --opt-remarks-with-hotness
	     Include hotness information in the	optimization remarks file.

     -O	value
	     Optimize output file size.	 value may be:

	     O0	     Disable string merging.

	     O1	     Enable string merging.

	     O2	     Enable string tail	merging.
	     O1	is the default.

     -o	path
	     Write the output executable, library, or object to	path.  If not
	     specified,	a.out is used as a default.

     --pie   Create a position independent executable.

     --print-gc-sections
	     List removed unused sections.

     --print-map
	     Print a link map to the standard output.

     --relocatable
	     Create relocatable	object file.

     --reproduce value
	     Dump linker invocation and	input files for	debugging.

     --retain-symbols-file=file
	     Retain only the symbols listed in the file.

     --rpath value
	     Add a DT_RUNPATH to the output.

     --rsp-quoting=value
	     Quoting style for response	files.	The supported values are
	     windows and posix.

     --script file
	     Read linker script	from file.

     --section-start address
	     Set address of section.

     --shared
	     Build a shared object.

     --soname=value
	     Set DT_SONAME to value.

     --sort-section value
	     Specifies sections	sorting	rule when linkerscript is used.

     --start-lib
	     Start a grouping of objects that should be	treated	as if they
	     were together in an archive.

     --strip-all
	     Strip all symbols.

     --strip-debug
	     Strip debugging information.

     --symbol-ordering-file file
	     Lay out sections in the order specified by	file.

     --sysroot=value
	     Set the system root.

     --target1-abs
	     Interpret R_ARM_TARGET1 as	R_ARM_ABS32.

     --target1-rel
	     Interpret R_ARM_TARGET1 as	R_ARM_REL32.

     --target2=type
	     Interpret R_ARM_TARGET2 as	type, where type is one	of rel,	abs,
	     or	got-rel.

     --Tbss value
	     Same as --section-start with .bss as the sectionname.

     --Tdata value
	     Same as --section-start with .data	as the sectionname.

     --thinlto-cache-dir=value
	     Path to ThinLTO cached object file	directory.

     --thinlto-cache-policy value
	     Pruning policy for	the ThinLTO cache.

     --thinlto-jobs=value
	     Number of ThinLTO jobs.

     --threads
	     Run the linker multi-threaded.  This option is enabled by de-
	     fault.

     --trace-symbol symbol
	     Trace references to symbol.

     --trace
	     Print the names of	the input files.

     --Ttext value
	     Same as --section-start with .text	as the sectionname.

     --undefined symbol
	     Force symbol to be	an undefined symbol during linking.

     --unresolved-symbols=value
	     Determine how to handle unresolved	symbols.

     --verbose
	     Verbose mode.

     --version-script file
	     Read version script from file.

     -V, --version
	     Display the version number	and exit.

     -v	     Display the version number	and proceed with linking if object
	     files are specified.

     --warn-common
	     Warn about	duplicate common symbols.

     --warn-unresolved-symbols
	     Report unresolved symbols as warnings.

     --whole-archive
	     Force load	of all members in a static library.

     --wrap symbol
	     Use wrapper functions for symbol.

     -z	option
	     Linker option extensions.

	     execstack
		     Make the main stack executable.  Stack permissions	are
		     recorded in the PT_GNU_STACK segment.

	     ifunc-noplt
		     Do	not emit PLT entries for GNU ifuncs.  Instead, pre-
		     serve relocations for ifunc call sites so that they may
		     be	applied	by a run-time loader.  Note that this feature
		     requires special loader support and will generally	result
		     in	application crashes when used outside of freestanding
		     environments.

	     interpose
		     Set the DF_1_INTERPOSE flag to indicate that the object
		     is	an interposer.	Runtime	linkers	perform	symbol resolu-
		     tion by first searching the application, followed by in-
		     terposers,	and then any other dependencies.

	     muldefs
		     Do	not error if a symbol is defined multiple times.  The
		     first definition will be used.  This is a synonym for
		     --allow-multiple-definition.

	     nocombreloc
		     Disable combining and sorting multiple relocation sec-
		     tions.

	     nocopyreloc
		     Disable the creation of copy relocations.

	     nodelete
		     Set the DF_1_NODELETE flag	to indicate that the object
		     cannot be unloaded	from a process.

	     nodlopen
		     Set the DF_1_NOOPEN flag to indcate that the object may
		     not be opened by dlopen(3).

	     norelro
		     Do	not indicate that portions of the object shold be
		     mapped read-only after initial relocation processing.
		     The object	will omit the PT_GNU_RELRO segment.

	     notext  Allow relocations against read-only segments.  Sets the
		     DT_TEXTREL	flag in	the DYNAMIC section.

	     now     Set the 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.

	     origin  Set the DF_ORIGIN flag to indicate	that the object	re-
		     quires $ORIGIN processing.

	     retpolineplt
		     Emit retpoline format PLT entries as a mitigation for
		     CVE-2017-5715.

	     rodynamic
		     Make the .dynamic section read-only.  The DT_DEBUG	tag
		     will not be emitted.

	     stack-size=size
		     Set the main thread's stack size to size.	The stack size
		     is	recorded as the	size of	the size.  PT_GNU_STACK	pro-
		     gram segment.

	     text    Do	not allow relocations against read-only	segments.
		     This is the default.

	     wxneeded
		     Create a PT_OPENBSD_WXNEEDED segment.

BSD			      September	14, 2018			   BSD

NAME | SYNOPSIS | DESCRIPTION

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ld&sektion=1&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help