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_PROG
NAME
%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
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout