diff options
Diffstat (limited to 'scripts/do_symsize.sh')
-rwxr-xr-x | scripts/do_symsize.sh | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/do_symsize.sh b/scripts/do_symsize.sh new file mode 100755 index 0000000..154fb00 --- /dev/null +++ b/scripts/do_symsize.sh @@ -0,0 +1,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 |