diff options
author | Kim Kibum <kb0929.kim@samsung.com> | 2012-05-21 17:49:08 +0900 |
---|---|---|
committer | Kim Kibum <kb0929.kim@samsung.com> | 2012-05-21 17:49:08 +0900 |
commit | dec48cfa66e17ba4a7e50c92cb24b913289feb12 (patch) | |
tree | e1f48cd5cabb40a1d604b36949ff072d01267cb5 /autodeps/freebsdelf.req | |
parent | b7a3bffb8e0341b7e4ef69def268bca3a7f279ff (diff) | |
download | rpm-dec48cfa66e17ba4a7e50c92cb24b913289feb12.tar.gz rpm-dec48cfa66e17ba4a7e50c92cb24b913289feb12.tar.bz2 rpm-dec48cfa66e17ba4a7e50c92cb24b913289feb12.zip |
Upload Tizen:Base source
Diffstat (limited to 'autodeps/freebsdelf.req')
-rw-r--r-- | autodeps/freebsdelf.req | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/autodeps/freebsdelf.req b/autodeps/freebsdelf.req new file mode 100644 index 0000000..dde04c5 --- /dev/null +++ b/autodeps/freebsdelf.req @@ -0,0 +1,46 @@ +#!/bin/sh + +# note this works for both a.out and ELF executables +# it also auto-generates requirment lines for shell scripts + +ulimit -c 0 + +filelist=`sed "s/['\"]/\\\&/g"` +exelist=`if test "x$filelist" != x; then echo $filelist | xargs file | grep ":.*executable" | cut -d: -f1; fi` +scriptlist=`if test "x$filelist" != x; then echo $filelist | xargs file | grep -E ":.* (commands|script) " | cut -d: -f1; fi` +liblist=`if test "x$filelist" != x; then echo $filelist | xargs file | grep ":.*shared object" | cut -d : -f1; fi` + +LDDLIST=`for f in $exelist; do + if [ -x $f ]; then + ldd $f | awk '/=>/ { print $1 }' + fi +done | sort -u | sed "s/['\"]/\\\&/g"` +if test "x$LDDLIST" != x; then + echo $LDDLIST | xargs -n 1 basename | grep -v 'libNoVersion.so' | sort -u +fi + +LDDLIST=`for f in $liblist; do + ldd $f | awk '/=>/ { print $1 }' +done | sort -u | sed "s/['\"]/\\\&/g"` +if test "x$LDDLIST" != x; then + echo $LDDLIST | xargs -n 1 basename | grep -v 'libNoVersion.so' | sort -u +fi + +for f in $scriptlist; do + if [ -x $f ]; then + head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1 + fi +done | sort -u + +for f in $liblist $exelist ; do + objdump -p $f | awk ' + BEGIN { START=0; LIBNAME=""; } + /Version References:/ { START=1; } + /required from/ && (START==1) { + sub(/:/, "", $3); + LIBNAME=$3; + } + (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { print LIBNAME "(" $4 ")"; } + /^$/ { START=0; } + ' +done | sort -u |