Computer Science
ld.so(8) ld.so(8)
NAME
ld.so - a.out dynamic linker/loader
DESCRIPTION
ld.so completes the final process of linking all necessary
references to sharable objects and unreferenced symbols in
an impure executable, (usually a dynamically linked exe-
cutable), to produce a runnable file.
Unless explicitly specified via the -static option to ld
during compilation, all Linux binaries in a.out format
will be "incomplete" and require further linking at run
time. ld.so's job is thus to complete the linking process
started at compilation.
The necessary dynamically linked libraries (DLL's) which
the executable requires to complete it's linking process
are searched for in the following order
o Using the environment variable
LD_AOUT_LIBRARY_PATH. Except if the executable is
a setuid/setgid binary, in which case it is
ignored.
o From the cache file /etc/ld.so.cache which contains
a compiled list of candidate libraries previously
found in the augmented library path.
o In the default path /usr/lib, and then /lib.
MESSAGES
The following, possibly fatal, warnings may be output by
ld.so
can't find library 'libfoo'
If ld.so cannot find the library the executable
requires anywhere.
can't load library 'libfoo'
If the library is corrupt.
incompatible library 'libfoo'
Require major version x and found y
ld.so cannot use the library version found as it is
incompatable with the binary attempting to be exe-
cuted.
using incompatible library 'libfoo'
Desire minor version >= x and found y
Even though the minor version is incompatable ld.so
will attempt to use it. This message is suppressed
if the environment variable LD_NOWARN is set.
too many directories in library path
There is a hard coded limit of 32 search directo-
ries. The above warning will ensue it this limit is
exceeded.
dynamic linker error in fixup pass 1,2
dynamic linker error in resolve pass
dynamic linker error in reset pass
An attempt to perform necessary fixups and or relo-
cations failed. These are usually fatal and signi-
fies possible binary corruption.
can't map cache file '/etc/ld.so.cache'
cache file '/etc/ld.so.cache' is corrupt
cache file '/etc/ld.so.cache' has wrong version
cache file '/etc/ld.so.cache' is empty
A problem was encountered with the cache. Execu-
tion will continue as if the cache did not exist.
ENVIRONMENT
LD_AOUT_LIBRARY_PATH
A colon-separated list of directories in which to
search for libraries at execution-time. Similar to
the PATH environment variable.
LD_NOWARN
Suppress warnings about libraries with incompatible
minor version numbers.
LD_KEEPDIR
Don't ignore the directory in the names of
libraries to be loaded. Use of this option is
strongly discouraged.
LD_AOUT_PRELOAD
The name of an additional, user-specified, shared
library to be loaded after all others. This can be
used to selectively override functions in other
shared libraries.
FILES
/lib/ld.so execution time linker/loader
/etc/ld.so.cache File containing a compiled list of
directories in which to search for
libraries and an ordered list of can-
didate libraries.
lib*.so.version shared libraries
lib*.sa exported initialized library data.
SEE ALSO
ldd(1), ldconfig(8), ld.so.info.
BUGS
Currently ld.so has no means of unloading and searching
for compatible or newer version of libraries.
ld.so functionality is only available for executables com-
piled using libc version 4.4.3 or greater.
AUTHORS
David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu,
Linus Torvalds, Lars Wirzenius and Mitch D'Souza (not nec-
essarily in that order).
30 March 1995 1
Back to the index