summaryrefslogtreecommitdiff
path: root/glibc/glibc-cvs/ldd.patch
diff options
context:
space:
mode:
Diffstat (limited to 'glibc/glibc-cvs/ldd.patch')
-rw-r--r--glibc/glibc-cvs/ldd.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/glibc/glibc-cvs/ldd.patch b/glibc/glibc-cvs/ldd.patch
index e69de29bb2..01719dbe08 100644
--- a/glibc/glibc-cvs/ldd.patch
+++ b/glibc/glibc-cvs/ldd.patch
@@ -0,0 +1,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.