diff options
Diffstat (limited to 'buildtools')
-rwxr-xr-x | buildtools/scripts/abi_gen.sh | 9 |
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 |