#!/bin/sh allowed=" calloc free malloc memalign realloc " ${OBJDUMP:-objdump} -d ${top_builddir:-../..}/lib/libc.so.? | \ gawk -v allowed="${allowed}" ' BEGIN { COUNT = split(" " allowed, ALLOWED); } # Strip away the noise. The name will be like: # <brk>: # <foo@plt> function symstrip(name) { return gensub(/.*<([^>@]*).*/, "\\1", "", name); } { # Match the start of the symbol disassembly # 00009720 <brk>: if ($2 ~ />:$/) { f = symstrip($2); } else if ($NF ~ /@plt>/) { rf = symstrip($NF); for (a in ALLOWED) { a = ALLOWED[a]; if (a == rf) next; } print "Func " f " references " rf; } }' | sort -u