diff options
Diffstat (limited to 'elf/ldd.sh.in')
-rw-r--r-- | elf/ldd.sh.in | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/elf/ldd.sh.in b/elf/ldd.sh.in index ede1b9790b..16d3fd8b79 100644 --- a/elf/ldd.sh.in +++ b/elf/ldd.sh.in @@ -2,14 +2,34 @@ # 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. +# 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 <bug-glibc@prep.ai.mit.edu>." + +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 "Usage: $0 FILE..." + 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. @@ -18,7 +38,7 @@ case $# in *) file="./$1" ;; esac if test ! -f "$file"; then - echo "$file: no such file" + echo "${file}: no such file" elif ${RTLD} --verify "$file"; then LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1 else @@ -30,7 +50,7 @@ case $# in for file; do echo "${file}:" case "$file" in - /*) file="$file" ;; + /*) : ;; *) file="./$file" ;; esac if test ! -f "$file"; then |