#! /bin/sh # 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 giving it the special `--list' # switch. RTLD=@RTLD@ case $# in 0) echo >&2 "Usage: $0 FILE..." exit 1 ;; 1) # We don't list the file name when there is only one. case "$1" in /*) file="$1" ;; *) file="./$1" ;; esac if ${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" ;; *) file="./$file" ;; esac if ${RTLD} --verify "$file"; then LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file" else echo ' not a dynamic executable' fi done esac exit 0