diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2011-06-03 09:02:38 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2011-06-03 09:02:38 +0000 |
commit | 21366c854a411880fe83b68aceaf20596d2b374e (patch) | |
tree | 9e4b81531e1b9f562c4efd4e0e403f725654d6c5 /mkinitfs-rundep.in | |
parent | b9ad256b04db3965bf21ed7ee25ddfd7c166d102 (diff) | |
download | mkinitfs-21366c854a411880fe83b68aceaf20596d2b374e.tar.bz2 mkinitfs-21366c854a411880fe83b68aceaf20596d2b374e.tar.xz |
mkinitfs-rundep: new tool for tracing runtime deps
Diffstat (limited to 'mkinitfs-rundep.in')
-rwxr-xr-x | mkinitfs-rundep.in | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/mkinitfs-rundep.in b/mkinitfs-rundep.in new file mode 100755 index 0000000..ee9bcdb --- /dev/null +++ b/mkinitfs-rundep.in @@ -0,0 +1,36 @@ +#!/bin/sh + +# resolve .so dependencies using ldd + +find_path() { + for i in /lib /usr/lib; do + [ -e "$i/$1" ] && echo "$i/$1" && return 0 + done + return 1 +} + +resolve_links() { + local f + while [ $# -gt 0 ]; do + if [ -L "$1" ]; then + local f=$(readlink $1) + local p="$(find_path $f)" +# echo "following $p" + resolve_links $p + fi + echo "$1" + shift + done +} + +find_deps() { + bin=$1 + resolve_links $(ldd $bin 2>/dev/null | awk -F'=>' '{print $2}' | sed 's/(.*//') +} + +while [ $# -gt 0 ]; do + find_deps $1 || exit 1 + shift +done + + |