summaryrefslogtreecommitdiff
path: root/buildtools/scripts/abi_gen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'buildtools/scripts/abi_gen.sh')
-rwxr-xr-xbuildtools/scripts/abi_gen.sh9
1 files changed, 7 insertions, 2 deletions
diff --git a/buildtools/scripts/abi_gen.sh b/buildtools/scripts/abi_gen.sh
index 6dd6d321f77..ddb0a7cc36f 100755
--- a/buildtools/scripts/abi_gen.sh
+++ b/buildtools/scripts/abi_gen.sh
@@ -10,9 +10,14 @@ cat <<EOF
set height 0
set width 0
EOF
-nm "$SHAREDLIB" | cut -d' ' -f2- | egrep '^[BDGTRVWS]' | grep -v @ | egrep -v ' (__bss_start|_edata|_init|_fini|_end)' | cut -c3- | sort | while read s; do
+
+# On older linker versions _init|_fini symbols are not hidden.
+objdump --dynamic-syms "${SHAREDLIB}" | \
+ awk '$0 !~ /.hidden/ {if ($2 == "g" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.rodata|.text)/) print $NF}' | \
+ sort | \
+ while read -r s; do
echo "echo $s: "
- echo p $s
+ echo p "${s}"
done
) > $GDBSCRIPT