diff options
author | David Timber <mieabby@gmail.com> | 2021-08-14 20:11:07 +1000 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2021-08-14 20:11:07 +1000 |
commit | f8afe0c17c248e7eda1be258786a089f5bf6c3bf (patch) | |
tree | 7a2845c7d7a39ea232349a4078a4c0e3d9e80b21 /scripts/do_symsize.sh | |
parent | 05bb8bc021320cf16121265e18ae4c530de108e2 (diff) |
build scripts ...
* Add readelf output for symbol size analysis
* Add symbol size parser scripts
* Add templates/symbol-size.fodt for generating hardcopy of
extsymsize.sh output
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 |