diff options
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | autodeps/linux.prov | 10 | ||||
-rw-r--r-- | autodeps/linux.req | 14 |
3 files changed, 25 insertions, 0 deletions
@@ -7,6 +7,7 @@ - added rpmtransSetScriptFd() - fixed config file problems during chroot upgrades - fixed %attr brokenness for directories + - augment linux provides/requires for glibc 2.1 backward compatibility. 2.5.x -> 2.90 - added --excludepath diff --git a/autodeps/linux.prov b/autodeps/linux.prov index fd2f98748..472d786f8 100644 --- a/autodeps/linux.prov +++ b/autodeps/linux.prov @@ -11,6 +11,16 @@ for f in $filelist; do if [ "$soname" != "" ]; then if [ ! -L $f ]; then echo $soname + 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)" + done fi else echo ${f##*/} diff --git a/autodeps/linux.req b/autodeps/linux.req index cde32666e..9c69e11c2 100644 --- a/autodeps/linux.req +++ b/autodeps/linux.req @@ -25,3 +25,17 @@ for f in $scriptlist; do 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!="") { print LIBNAME "(" $4 ")"; } + /^$/ { START=0; } + ' +done + |