1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/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
|