diff options
Diffstat (limited to 'buildtools/scripts/abi_gen.sh')
-rwxr-xr-x | buildtools/scripts/abi_gen.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/buildtools/scripts/abi_gen.sh b/buildtools/scripts/abi_gen.sh new file mode 100755 index 0000000..c66a1b8 --- /dev/null +++ b/buildtools/scripts/abi_gen.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# generate a set of ABI signatures from a shared library + +SHAREDLIB="$1" + +GDBSCRIPT="gdb_syms.$$" + +( + cat <<EOF +set height 0 +set width 0 +EOF + + # 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}" + done +) >$GDBSCRIPT + +# forcing the terminal avoids a problem on Fedora12 +TERM=none gdb -n -batch -x $GDBSCRIPT "$SHAREDLIB" </dev/null +rm -f $GDBSCRIPT |