rtld(1)
NAME
ld-elf.so.1, ld.so, rtld - run-time link-editor
DESCRIPTION
- The ld-elf.so.1 utility is a self-contained shared object
- providing runtime support for loading and link-editing shared objects in
- to a process'
address space. It is also commonly known as the dynamic - linker. It uses
the data structures contained within dynamically linked pro - grams to
determine which shared libraries are needed and loads them - using the
mmap(2) system call. - After all shared libraries have been successfully loaded,
- ld-elf.so.1
proceeds to resolve external references from both the main - program and
all objects loaded. A mechanism is provided for initializa - tion routines
to be called on a per-object basis, giving a shared object - an opportunity
to perform any extra set-up before execution of the program - proper
begins. This is useful for C++ libraries that contain stat - ic constructors.
- The ld-elf.so.1 utility itself is loaded by the kernel to
- gether with any
dynamically-linked program that is to be executed. The ker - nel transfers
control to the dynamic linker. After the dynamic linker has - finished
loading, relocating, and initializing the program and its - required shared
objects, it transfers control to the entry point of the pro - gram.
- To locate the required shared objects in the file system,
- ld-elf.so.1 may
use a ``hints'' file prepared by the ldconfig(8) utility. - The ld-elf.so.1 utility recognizes a number of environment
- variables that
can be used to modify its behaviour as follows: - LD_DUMP_REL_POST If set ld-elf.so.1 will print a table
- containing
- all relocations after symbol binding
- and relocation.
- LD_DUMP_REL_PRE If set ld-elf.so.1 will print a table
- containing
- all relocations before symbol binding
- and relocation.
- LD_LIBMAP A library replacement list in the
- same format as
- libmap.conf(5). For convenience, the
- characters
`=' and `,' can be used instead of a - space and a
newline. This variable is parsed af - ter
libmap.conf(5), and will override its - entries.
- LD_LIBMAP_DISABLE If set, disables the use of
- libmap.conf(5) and
- LD_LIBMAP.
- LD_LIBRARY_PATH A colon separated list of directo
- ries, overriding
- the default search path for shared
- libraries.
This is ignored for set-user-ID and - set-group-ID
programs. - LD_PRELOAD A list of shared libraries, separated
- by colons
- and/or white space, to be linked in
- before any
other shared libraries. If the di - rectory is not
specified then the directories speci - fied by
LD_LIBRARY_PATH will be searched - first followed by
the set of built-in standard directo - ries. This is
ignored for set-user-ID and set - group-ID programs.
- LD_BIND_NOW When set to a nonempty string, causes
- ld-elf.so.1
- to relocate all external function
- calls before
starting execution of the program. - Normally,
function calls are bound lazily, at - the first call
of each function. LD_BIND_NOW in - creases the
start-up time of a program, but it - avoids run-time
surprises caused by unexpectedly un - defined functions.
- LD_TRACE_LOADED_OBJECTS
- When set to a nonempty string, causes
- ld-elf.so.1
to exit after loading the shared ob - jects and
printing a summary which includes the - absolute
pathnames of all objects, to standard - output.
- LD_TRACE_LOADED_OBJECTS_ALL
- When set to a nonempty string, causes
- ld-elf.so.1
to expand the summary to indicate - which objects
caused each object to be loaded. - LD_TRACE_LOADED_OBJECTS_FMT1
- LD_TRACE_LOADED_OBJECTS_FMT2
- When set, these variables are inter
- preted as format strings a la printf(3) to cus
- tomize the trace
output and are used by ldd(1)'s -f - option and
allows ldd(1) to be operated as a - filter more conveniently. The following conversions
- can be used:
- %a The main program's name (also
- known as
``__progname'').
- %A The value of the environment
- variable
LD_TRACE_LOADED_OBJECTS_PROGNAME
- %o The library name.
- %m The library's major version
- number.
- %p The full pathname as determined
- by rtld's
library search rules.
- %x The library's load address.
- Additionally, `0 and `' are recog
- nized and
have their usual meaning.
FILES
/var/run/ld-elf.so.hints Hints file.
/etc/libmap.conf The libmap configuration file.
SEE ALSO
- ld(1), ldd(1), elf(5), libmap.conf(5), ldconfig(8)
- BSD May 31, 2003