May 23, 2004 LDD 1

### NAME

ldd - list dynamic object dependencies

### SYNOPSIS

ldd [-f format] program ...

### DESCRIPTION

ldd displays all shared objects that are needed to run the given program. Contrary to nm(1), the list includes ``indirect'' dependencies that are the result of needed shared objects which themselves depend on yet other shared objects. Zero, one or two -f options may be given. The argument is a format string passed to rtld(1) and allows customization of ldd's output. The first format argument is used for library objects and is equivalent to the ld.aout_so(1) environment variable ```LD_TRACE_LOADED_OBJECTS_FMT1`. It defaults to "\t-l%o.%m => %p\n for elf and "\t-l%o.%m => %p (%x)\n for a.out. The second format argument is used for non-library objects and it is equivalent to the ld.aout_so(1) environment variable ```LD_TRACE_LOADED_OBJECTS_FMT2`. It defaults to "\t%o => %p\n for elf and "\t%o (%x)\n for a.out.

These arguments are interpreted as format strings a la printf(3) to customize the trace output and allow ldd 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` in a.out and the program name from the argument vector from elf.

%o
  The library name.

%m
  The library's major version number.

%n
  The library's minor version number (a.out only, ignored in elf).

%p
  The full pathname as determined by rtld's library search rules.

%x
  The library's load address

Additionally, \n and \t are recognized and have their usual meaning.

### SEE ALSO

ld(1), ld.aout_so(1), ld.elf_so(1), nm(1), rtld(1)

### HISTORY

A ldd utility first appeared in SunOS 4.0, it appeared in its current form in NetBSD0.9a.

### BUGS

The a.out ldd actually runs the program it has been requested to analyze which in specially constructed environments can have security implications.