| #!/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 |