aboutsummaryrefslogtreecommitdiff
path: root/scripts/do_symsize.sh
blob: 154fb00cbb56d624bf17efbcc0bd98e1cd916f03 (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
#!/bin/bash
ELF_PREFIX='./builds/proone.bin/readelf'
OUT_PREFIX='./builds/proone.bin/symsize'
NPROC=$(nproc)
NB_PROC=0

#
# \param 1: input file
# \param 2: output file
call_extsymsize () {
	./scripts/extsymsize.sh < "$1" | sort -nr > "$2"
}

for f in "$ELF_PREFIX".*; do
	suffix=$(echo "$f" | egrep -o '(\.\w+\.\w+)$')
	if [ $? -ne 0 ]; then
		echo "$f: invalid suffix" >&2
		exit 1
	fi

	set -e
	out="$OUT_PREFIX""$suffix"
	if [ $NB_PROC -lt $NPROC ]; then
		call_extsymsize "$f" "$out" &
		let 'NB_PROC += 1'
	else
		wait
		call_extsymsize "$f" "$out" &
	fi
	set +e
done

for (( i = 0; i < NB_PROC; i += 1 )); do
	wait
done