summaryrefslogtreecommitdiff
path: root/packages/glibc/glibc-cvs/ldd.patch
blob: 01719dbe08c82e6d4d37bb43bcf38db066d236bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- 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.