fffd993df2
[/] root@ed-exigent>ldd `which httpd` ldd: /usr/local/sbin/httpd: can't read program header ldd: /usr/local/sbin/httpd: not a dynamic executable But... [/] root@ed-exigent>LD_32_TRACE_LOADED_OBJECTS==1 `which httpd` libm.so.4 => /lib32//libm.so.4 (0x280c8000) libaprutil-1.so.2 => /usr/local/lib/libaprutil-1.so.2 (0x280de000) libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x280f2000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28110000) libapr-1.so.2 => /usr/local/lib/libapr-1.so.2 (0x281fd000) libcrypt.so.3 => /lib32//libcrypt.so.3 (0x2821d000) libpthread.so.2 => not found (0x0) libc.so.6 => /lib32//libc.so.6 (0x28235000) libpthread.so.2 => /usr/lib32/libpthread.so.2 (0x2830d000) Added support in ldd(1) for the LD_32_xxx environment variables if the architecture of the machine is >32 bits. If we ever go to 128 bit architectures this excercise will have to be repeated but thanks to earlier commits today it will be relative simple. PR: bin/124906 Submitted by: edwin Approved by: bde (mentor) MFC after: 1 week
87 lines
1.8 KiB
Groff
87 lines
1.8 KiB
Groff
.\" $FreeBSD$
|
|
.\"
|
|
.Dd May 15, 2008
|
|
.Dt LDD 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm ldd
|
|
.Nd list dynamic object dependencies
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl a
|
|
.Op Fl v
|
|
.Op Fl f Ar format
|
|
.Ar program ...
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility displays all shared objects that are needed to run the given program or
|
|
to load the given shared object.
|
|
Contrary to
|
|
.Xr nm 1 ,
|
|
the list includes
|
|
.Dq indirect
|
|
dependencies that are the result of needed shared objects which themselves
|
|
depend on yet other shared objects.
|
|
.Pp
|
|
Zero, one or two
|
|
.Fl f
|
|
options may be given.
|
|
The argument is a format string passed to
|
|
.Xr rtld 1
|
|
and allows customization of
|
|
.Nm Ns 's
|
|
output.
|
|
If one is given, it sets
|
|
.Ev LD_TRACE_LOADED_OBJECTS_FMT1 .
|
|
If two are given, they set
|
|
.Ev LD_TRACE_LOADED_OBJECTS_FMT1
|
|
and
|
|
.Ev LD_TRACE_LOADED_OBJECTS_FMT2 ,
|
|
respectively.
|
|
See
|
|
.Xr rtld 1
|
|
for details, including a list of recognized conversion characters.
|
|
.Pp
|
|
The
|
|
.Fl a
|
|
option displays the list of all objects that are needed by each loaded
|
|
object.
|
|
This option does not work with
|
|
.Xr a.out 5
|
|
binaries.
|
|
.Pp
|
|
The
|
|
.Fl v
|
|
option displays a verbose listing of the dynamic linking headers
|
|
encoded in the executable.
|
|
See the source code and include
|
|
files for the definitive meaning of all the fields.
|
|
.Sh EXAMPLES
|
|
The following is an example of a shell pipeline which uses the
|
|
.Fl f
|
|
option.
|
|
It will print a report of all ELF binaries in the current directory,
|
|
which link against libc.so.6:
|
|
.Dl "find . -type f | xargs -n1 file -F " " | grep ELF | cut -f1 -d' ' | xargs ldd -f '%A %o\en' | grep libc.so.6"
|
|
.Sh BUGS
|
|
On 64 bit architectures, dlopen() cannot open 32 bit dynamic libraries,
|
|
so
|
|
.Nm
|
|
will show the error
|
|
.Qq "unsupported file layout" .
|
|
.Sh SEE ALSO
|
|
.Xr ld 1 ,
|
|
.Xr nm 1 ,
|
|
.Xr rtld 1
|
|
.Sh HISTORY
|
|
A
|
|
.Nm
|
|
utility first appeared in SunOS 4.0, it appeared in its current form in
|
|
.Fx 1.1 .
|
|
.Pp
|
|
The
|
|
.Fl v
|
|
support is based on code written by
|
|
.An John Polstra Aq jdp@polstra.com
|