diff options
author | Mike Frysinger <vapier@gentoo.org> | 2013-04-07 20:57:17 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2013-04-07 20:57:17 +0000 |
commit | b0c6af95a4183de63c79dc24804309e17b47da18 (patch) | |
tree | d2abff116beec7fbc623aaf78557f5fb43e24456 /symtree.sh | |
parent | tests: more flexible parallel build logic (diff) | |
download | pax-utils-b0c6af95a4183de63c79dc24804309e17b47da18.tar.gz pax-utils-b0c6af95a4183de63c79dc24804309e17b47da18.tar.bz2 pax-utils-b0c6af95a4183de63c79dc24804309e17b47da18.zip |
symtree: make it work with either lddtree implementationv0.7
Diffstat (limited to 'symtree.sh')
-rwxr-xr-x | symtree.sh | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1,7 +1,5 @@ #!/bin/bash -source lddtree /../..source.lddtree || exit 1 - argv0=${0##*/} usage() { @@ -22,10 +20,14 @@ sym_list() { local type=$1; shift echo "%${type}%$@" | sed "s:,:,%${type}%:g" } +find_elf() { + echo "$2" | awk -F/ -v lib="$1" '$NF == lib {print}' +} show_elf() { local elf=$1 local rlib lib libs - local resolved=$(find_elf "${elf}") + local resolved=$(realpath "${elf}") + local resolved_libs=$(lddtree -l "${resolved}") printf "%s\n" "${resolved}" @@ -35,7 +37,7 @@ show_elf() { u=$(scanelf -q -F'%s#F' -s'%u%' "${elf}") for lib in ${libs//,/ } ; do lib=${lib##*/} - rlib=$(find_elf "${lib}" "${resolved}") + rlib=$(find_elf "${lib}" "${resolved_libs}") d=$(scanelf -qF'%s#F' -s`sym_list d "${u}"` "${rlib}") if [[ -n ${d} ]] ; then |