非公開ソースのインタフェースの数を調べる

ソースが公開されていないライブラリ、オブジェクトファイル(*a,*o)の呼び出されているAPI数を調べる。
次のスクリプトを実行させると、dにAPIの一覧がのる。

#!/bin/bash
#呼び出し側のソース:
find ${caller_path} -name "*.[oa]" | xargs nm | xargs cat > a
grep "U " a > aa
sort aa |xargs uniq > aaa #未解決シンボル一覧
cut -f 3- < aaa > aaaa #シンボル名だけ抜き出す

#呼び出され側ソース:
find ${callee_path} -name "*.[oa]" | xargs nm | xargs cat > b
grep -v "U " b > bb
sort bb | xargs uniq > bbb #解決シンボル一覧
cut -f 3- < bbb > bbbb #シンボル名だけ抜き出す

cat aaaa bbbb > c #呼び出し側未解決シンボル、呼び出され側解決シンボルをつなげる
sort cc | xargs uniq -u > ccc #解決されたシンボルは消える

diff -c aaaa ccc | xargs grep "+ " > d #解決されたシンボルの一覧をdに出力する