blob: f01dc1d0d90f4f44508c9ceb76ba20cc255288af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#!/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
|