summaryrefslogtreecommitdiff
path: root/scripts/brp-strip-comment-note
blob: baf8537f3d87d72236681479020b12006567fb2c (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
#!/bin/sh
# If using normal root, avoid changing anything.
if [ -z "$RPM_BUILD_ROOT" ] || [ "$RPM_BUILD_ROOT" = "/" ]; then
	exit 0
fi

STRIP=${1:-strip}
OBJDUMP=${2:-objdump}
NCPUS=${RPM_BUILD_NCPUS:-1}

case `uname -a` in
Darwin*) exit 0 ;;
*) ;;
esac

# Strip .comment and .note sections (the latter only if it is not allocated)
# for already stripped elf files in the build root
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -print0 | xargs -0 -r -P$NCPUS -n32 sh -c "file \"\\$@\" | grep -v \"^${RPM_BUILD_ROOT}/\?usr/lib/debug\" | sed -n -e 's/^\(.*\):[ 	]*ELF.*, stripped.*/\1/p'" ARG0`; do
	note="-R .note"
	if $OBJDUMP -h $f | grep '^[ 	]*[0-9]*[ 	]*.note[ 	]' -A 1 | \
		grep ALLOC >/dev/null; then
		note=
	fi
	$STRIP -R .comment $note "$f" || :
done