--- elf/ldd.bash.in~ Tue Apr 3 21:43:31 2001 +++ elf/ldd.bash.in Tue Apr 3 21:54:15 2001 @@ -32,6 +32,7 @@ warn= bind_now= verbose= +filename_magic_regex="((^|/)lib|.so$)" while test $# -gt 0; do case "$1" in @@ -123,8 +124,11 @@ echo "ldd: ${file}:" $"No such file or directory" >&2 result=1 elif test -r "$file"; then - test -x "$file" || echo 'ldd:' $"\ -warning: you do not have execution permission for" "\`$file'" >&2 + if test ! -x "$file" && eval echo "$file" \ + | egrep -v "$filename_magic_regex" > /dev/null; then + echo 'ldd:' $"warning: you do not have execution permission for"\ + "\`$file'" >&2 + fi RTLD= for rtld in ${RTLDLIST}; do if test -x $rtld; then @@ -143,7 +147,12 @@ fi case $ret in 0) - eval $add_env '"$file"' || result=1 + if [ ! -x "$file" ] && eval file -L "$file" 2>/dev/null \ + | sed 10q | egrep "$file_magic_regex" > /dev/null; then + eval $add_env ${RTLD} '"$file"' || result=1 + else + eval $add_env '"$file"' || result=1 + fi ;; 1) # This can be a non-ELF binary or no binary at all.