X-Git-Url: http://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fcheckstatic;fp=bin%2Fcheckstatic;h=e525384060bf905aa660eb96ef97cf9c2d2726fe;hp=0000000000000000000000000000000000000000;hb=53597f24b007ce503dd7d22356c722cf0334f504;hpb=79d8563979c2289120e1f00714fc6757cb87ce0e diff --git a/bin/checkstatic b/bin/checkstatic new file mode 100755 index 0000000..e525384 --- /dev/null +++ b/bin/checkstatic @@ -0,0 +1,38 @@ +#! /bin/sh + +fis="${*:-*.o}" + +for i in $fis;do + rest="`echo '' $fis ''|sed "s# $i # #"`" + trail="()" + for t in T BCDRS;do + for sym in `nm $i|sed -n 's/^.* ['$t'] \(.*\)$/\1/p'`;do + if nm $rest|grep -q ' U '"$sym"'$';then :;else + echo "$i $sym$trail"|sed 's/\.o /.c /' + fi + done + trail="" + done +done + +echo + +function checkextern +{ + ctags -f - --c-types=$1 `cvsfiles|grep '\.h$'` | \ + if $2;then + grep ' /\^extern ' + else + cat + fi \ + | while read -r line;do + sym="` echo "$line" | awk '{print $1}'`" + file="`echo "$line" | awk '{print $2}'`" + if nm $fis|grep -q " [$3] ""$sym"'$';then :;else + echo "extern $file $sym$4" + fi + done +} + +checkextern x true BCDRS "" +checkextern p false T "()"