From 94aeb47ddf730050067f3135115a8aabac24480a Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 25 Mar 2014 09:01:39 +0000 Subject: mkinitfs: automatically resolv elf dependencies This is so we don't need to manually manage the dependencies which gets ugly when supporting multiple libc. --- mkinitfs.in | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'mkinitfs.in') diff --git a/mkinitfs.in b/mkinitfs.in index c464397..cd10359 100755 --- a/mkinitfs.in +++ b/mkinitfs.in @@ -31,7 +31,7 @@ feature_files() { fi done done - done | sort -u + done } initfs_base() { @@ -44,12 +44,14 @@ initfs_base() { local oldpwd="$PWD" cd "${basedir}" - for file in $(feature_files "$basedir" files); do - echo "${file#$basedir}" - done | cpio -pdm "$tmpdir" || return 1 + lddtree -R "$basedir" -l --no-auto-root \ + $(feature_files "$basedir" files) \ + \ + | sed -e "s|^$basedir||" | sort -u \ + | cpio -pdm "$tmpdir" || return 1 # copy init - cd $startdir + cd "$startdir" install -m755 "$init" "$tmpdir"/init || return 1 for i in "$fstab" "$passwd" "$group"; do install -Dm644 "$i" "$tmpdir"/etc/${i##*/} || return 1 @@ -112,7 +114,7 @@ initfs_kmods() { cd "${basedir}" for file in $(find_kmods); do echo "${file#/}" - done | cpio -pdm "$tmpdir" || return 1 + done | sort -u | cpio -pdm "$tmpdir" || return 1 depmod $kernel -b "$tmpdir" cd "$oldpwd" } -- cgit v1.2.3