diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-11-06 00:28:40 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-11-06 00:28:40 -0800 |
commit | 4ade44bb3c75422d02046e2328a02224cd265404 (patch) | |
tree | 45877bb3e008556a5a3f908873f00453dc7b768d | |
parent | 764e86e21c907e4bc402a7e65e7b846781b02dbe (diff) | |
download | portage-4ade44bb3c75422d02046e2328a02224cd265404.tar.gz portage-4ade44bb3c75422d02046e2328a02224cd265404.tar.bz2 portage-4ade44bb3c75422d02046e2328a02224cd265404.zip |
prepstrip: check USERLAND outside of loop
-rwxr-xr-x | bin/ebuild-helpers/prepstrip | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/bin/ebuild-helpers/prepstrip b/bin/ebuild-helpers/prepstrip index 57dbc0fea..575001cf3 100755 --- a/bin/ebuild-helpers/prepstrip +++ b/bin/ebuild-helpers/prepstrip @@ -70,16 +70,6 @@ tmpdir="${T}/prepstrip" rm -rf "${tmpdir}" mkdir -p "${tmpdir}"/{inodes,splitdebug,sources} -# Usage: inode_var_name: <file> -inode_file_link() { - echo -n "${tmpdir}/inodes/" - if [[ ${USERLAND} == "BSD" ]] ; then - stat -f '%i' "$1" - else - stat -c '%i' "$1" - fi -} - # Usage: save_elf_sources <elf> save_elf_sources() { ${FEATURES_installsources} || return 0 @@ -247,16 +237,21 @@ fi # inodes in advance, so that we can avoid interference due to trying # to strip the same (hardlinked) file multiple times in parallel. # See bug #421099. +if [[ ${USERLAND} == BSD ]] ; then + get_inode_number() { stat -f '%i' "$1"; } +else + get_inode_number() { stat -c '%i' "$1"; } +fi +cd "${tmpdir}/inodes" || die "cd failed unexpectedly" while read -r x ; do - inode_link=$(inode_file_link "${x}") - echo "${x}" >> "${inode_link}" || die "echo failed" + inode_link=$(get_inode_number "${x}") || die "stat failed unexpectedly" + echo "${x}" >> "${inode_link}" || die "echo failed unexpectedly" done < <( scanelf -yqRBF '#k%F' -k '.symtab' "$@" find "$@" -type f ! -type l -name '*.a' ) # Now we look for unstripped binaries. -cd "${tmpdir}/inodes" || die "cd failed" for inode_link in $(shopt -s nullglob; echo *) ; do while read -r x do |