aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-04-07 20:57:17 +0000
committerMike Frysinger <vapier@gentoo.org>2013-04-07 20:57:17 +0000
commitb0c6af95a4183de63c79dc24804309e17b47da18 (patch)
treed2abff116beec7fbc623aaf78557f5fb43e24456 /symtree.sh
parenttests: more flexible parallel build logic (diff)
downloadpax-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-xsymtree.sh10
1 files changed, 6 insertions, 4 deletions
diff --git a/symtree.sh b/symtree.sh
index d76a22d..b0a7d4d 100755
--- a/symtree.sh
+++ b/symtree.sh
@@ -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