aboutsummaryrefslogtreecommitdiff
path: root/scripts/do_symsize.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/do_symsize.sh')
-rwxr-xr-xscripts/do_symsize.sh35
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