From 21366c854a411880fe83b68aceaf20596d2b374e Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 3 Jun 2011 09:02:38 +0000 Subject: mkinitfs-rundep: new tool for tracing runtime deps --- Makefile | 2 +- mkinitfs-rundep.in | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100755 mkinitfs-rundep.in diff --git a/Makefile b/Makefile index c5b84e0..2552e65 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ sysconfdir ?= /etc/mkinitfs datarootdir ?= /usr/share datadir ?= $(datarootdir)/mkinitfs -SBIN_FILES := mkinitfs bootchartd +SBIN_FILES := mkinitfs bootchartd mkinitfs-rundep SHARE_FILES := initramfs-init fstab passwd group CONF_FILES := mkinitfs.conf \ modules.d/ata \ 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 + + -- cgit v1.2.3