#! @BASH@ # This is the `ldd' command, which lists what shared libraries are # used by given dynamically-linked executables. It works by invoking the # run-time dynamic linker as a command and setting the environment # variable LD_TRACE_LOADED_OBJECTS to a non-empty value. RTLD=@RTLD@ usage=$"\ ldd [OPTION]... FILE... --help print this help and exit --version print version information and exit Report bugs to ." while test $# -gt 0; do case "$1" in --v*) echo 'ldd (GNU libc) @VERSION@'; exit 0 ;; --h*) echo "$usage"; exit 0 ;; --) # Stop option prcessing shift; break ;; *) break ;; esac done case $# in 0) echo >&2 $"\ ldd: missing file arguments Try \`ldd --help' for more information." exit 1 ;; 1) # We don't list the file name when there is only one. case "$1" in /*) file="$1" ;; *) file="./$1" ;; esac if test ! -f "$file"; then echo "${file}:" $"no such file" elif ${RTLD} --verify "$file"; then LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1 else echo $" not a dynamic executable" fi exit ;; *) set -e # Bail out immediately if ${RTLD} loses on any argument. for file; do echo "${file}:" case "$file" in /*) : ;; *) file="./$file" ;; esac if test ! -f "$file"; then echo "$file:" $"no such file" elif ${RTLD} --verify "$file"; then LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file" else echo $" not a dynamic executable" fi done esac exit 0