diff options
author | jbj <devnull@localhost> | 2000-02-22 13:08:35 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2000-02-22 13:08:35 +0000 |
commit | 9126b5c2c020ac51e87302bef5bee45f3d81e6b2 (patch) | |
tree | 0a43fe4b43b68faae3cd53c5932dc5074081ae84 /autodeps | |
parent | 3e1e638ba2d642de1902e0438b40764560ae844f (diff) | |
download | rpm-9126b5c2c020ac51e87302bef5bee45f3d81e6b2.tar.gz rpm-9126b5c2c020ac51e87302bef5bee45f3d81e6b2.tar.bz2 rpm-9126b5c2c020ac51e87302bef5bee45f3d81e6b2.zip |
sparc: 64bit find-{provides,requires}.
CVS patchset: 3577
CVS date: 2000/02/22 13:08:35
Diffstat (limited to 'autodeps')
-rw-r--r-- | autodeps/sparc-linux.prov | 29 | ||||
-rw-r--r-- | autodeps/sparc-linux.req | 13 |
2 files changed, 37 insertions, 5 deletions
diff --git a/autodeps/sparc-linux.prov b/autodeps/sparc-linux.prov new file mode 100644 index 000000000..a637b874e --- /dev/null +++ b/autodeps/sparc-linux.prov @@ -0,0 +1,29 @@ +#!/bin/bash + +# This script reads filenames from STDIN and outputs any relevant provides +# information that needs to be included in the package. + +filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) + +for f in $filelist; do + soname=$(objdump -p $f | awk '/SONAME/ {print $2}') + + if [ "$soname" != "" ]; then + lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + if [ ! -L $f ]; then + echo $soname$lib64 + objdump -p $f | awk ' + BEGIN { START=0 ; } + /Version definitions:/ { START=1; } + /^[0-9]/ && (START==1) { print $4; } + /^$/ { START=0; } + ' | \ + grep -v $soname | \ + while read symbol ; do + echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" + done + fi + else + echo ${f##*/} + fi +done | sort -u diff --git a/autodeps/sparc-linux.req b/autodeps/sparc-linux.req index 937efa5bb..b93b6c618 100644 --- a/autodeps/sparc-linux.req +++ b/autodeps/sparc-linux.req @@ -11,14 +11,16 @@ scriptlist=`echo $filelist | xargs -r file | egrep ":.* (commands|script) " | cu liblist=`echo $filelist | xargs -r file | grep ":.*shared object" | cut -d : -f1 ` for f in $exelist; do + lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` if [ -x $f ]; then - ldd $f | awk '/=>/ { print $1 }' + ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' fi -done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | grep -v '4[um]lib.so' | sort -u +done | xargs -r -n 1 basename | sort -u for f in $liblist; do - ldd $f | awk '/=>/ { print $1 }' -done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | grep -v '4[um]lib.so' | sort -u + lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' +done | xargs -r -n 1 basename | sort -u for f in $scriptlist; do if [ -x $f ]; then @@ -27,6 +29,7 @@ for f in $scriptlist; do done | sort -u for f in $liblist $exelist ; do + lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "(64bit)"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } @@ -34,7 +37,7 @@ for f in $liblist $exelist ; do sub(/:/, "", $3); LIBNAME=$3; } - (START==1) && (LIBNAME!="") && ($4!="") { print LIBNAME "(" $4 ")"; } + (START==1) && (LIBNAME!="") && ($4!="") { print LIBNAME "(" $4 ")'$lib64'"; } /^$/ { START=0; } ' done | sort -u |