aboutsummaryrefslogtreecommitdiffstats
path: root/mkinitfs-rundep.in
diff options
context:
space:
mode:
Diffstat (limited to 'mkinitfs-rundep.in')
-rwxr-xr-xmkinitfs-rundep.in36
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
+
+