aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Robbins <drobbins@funtoo.org>2011-05-22 00:03:51 -0600
committerDaniel Robbins <drobbins@funtoo.org>2011-05-22 00:03:51 -0600
commit042b18e65b5483a250f556a185f4874c3f472b4e (patch)
tree5b96a454e46ca2d29da9828c635c7208a751dadc
parentadding missing patch for O= fix due to my detached head (diff)
downloadgenkernel-042b18e65b5483a250f556a185f4874c3f472b4e.tar.gz
genkernel-042b18e65b5483a250f556a185f4874c3f472b4e.tar.bz2
genkernel-042b18e65b5483a250f556a185f4874c3f472b4e.zip
adding dynagrab.sh - for grabbing shared libraries required for binaries
-rwxr-xr-xdynagrab.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/dynagrab.sh b/dynagrab.sh
new file mode 100755
index 00000000..ea4c4e56
--- /dev/null
+++ b/dynagrab.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+linky() {
+ out=$1
+ shift
+ case $1 in
+ */ld-linux*.so.2)
+ if [ ! -e $out/$1 ]; then
+ echo "cp $1 $out"
+ return
+ fi
+ ;;
+ esac
+ lib=$3
+ while [ 1 ]
+ do
+ if [ -L $lib ]; then
+ realfile=$(readlink $lib)
+ echo "ln -sf $realfile $out/${lib##*/}"
+ lib=$(readlink -f $lib)
+ else
+ echo "cp $lib $out"
+ break
+ fi
+ done
+}
+
+dynagrab() {
+ ldd $1 | grep -v 'linux-vdso\.so\.1' | while read line; do
+ linky $2 $line
+ done
+}
+
+# grab all shared libs required by binary $1 and copy to destination directory $2:
+dynagrab $1 $2