blob: f01dc1d0d90f4f44508c9ceb76ba20cc255288af [file] [log] [blame]
#!/bin/bash
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: /var/cvsroot/gentoo-src/portage/bin/prepstrip,v 1.23.2.3 2005/08/15 02:58:20 vapier Exp $
if [ "${FEATURES//*nostrip*/true}" == "true" ] || [ "${RESTRICT//*nostrip*/true}" == "true" ] ; then
echo "nostrip"
exit 0
fi
STRIP="${STRIP:-${CHOST}-strip}"
type -p -- ${STRIP} > /dev/null || STRIP=strip
PORTAGE_STRIP_FLAGS=${PORTAGE_STRIP_FLAGS:---strip-unneeded}
banner=1
save_elf_debug() {
local x=$1
local y="${D}/usr/lib/debug/${x:${#D}:${#x}}"
[ "${FEATURES//*splitdebug*/true}" != "true" ] && return 0
mkdir -p $(dirname ${y})
${CHOST}-objcopy --only-keep-debug ${x} ${y}.debug
${CHOST}-objcopy --add-gnu-debuglink=${y}.debug ${x}
}
for x in $(scanelf -yRBF%F "$@") $(for y in "$@"; do find $y -type f -name '*.a' -print0 ; done); do
if [ ${banner} -eq 1 ] ; then
echo "strip: ${STRIP} ${PORTAGE_STRIP_FLAGS}"
banner=0
fi
f=$(file "${x}") || continue
[ -z "${f}" ] && continue
if [[ ${f} == *"current ar archive"* ]] ; then
echo " ${x:${#D}:${#x}}"
${STRIP} -g "${x}"
fi
if [[ ${f} == *"SB executable"* || ${f} == *"SB shared object"* ]] ; then
echo " ${x:${#D}:${#x}}"
save_elf_debug "${x}"
${STRIP} ${PORTAGE_STRIP_FLAGS} "${x}"
fi
done