1#! /bin/sh 2# $DragonFly: src/tools/tools/local_syms/local_syms.sh,v 1.1 2005/01/10 22:13:45 joerg Exp $ 3 4# Process all object files in the current directory and build a list 5# of symbols which are used only locally. Those are good candidates 6# for static. 7 8tempfoo=`basename $0` 9TMPFILE=`mktemp -d -t ${tempfoo}` || exit 1 10 11for a in *.o 12do 13 nm -gpu "$a" | sed 's/^ *U //' 14done | sort | uniq > ${TMPFILE}/external_syms 15 16for a in *.o 17do 18 nm -pg --defined-only $a | awk '{ print $3 ; }' | sort > ${TMPFILE}/defined_syms 19 comm -23 ${TMPFILE}/defined_syms ${TMPFILE}/external_syms > ${TMPFILE}/uniq_syms 20 if test `wc -l < ${TMPFILE}/uniq_syms` -gt 0 21 then 22 echo "$a:" 23 cat ${TMPFILE}/uniq_syms 24 echo 25 fi 26done 27 28rm -R ${TMPFILE} 29