X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=devtools%2Fcheck-symbol-maps.sh;h=5bd290ac97171ea9a8745d4b66f2a49667a1ce26;hb=32b4771cd8ef377c039d895d034b3b5e86ee34d2;hp=055db24472866b9dc55cb134f9577dc107c421be;hpb=71459555a6f8c88d3638fd857b810d4913a504e3;p=dpdk.git diff --git a/devtools/check-symbol-maps.sh b/devtools/check-symbol-maps.sh index 055db24472..5bd290ac97 100755 --- a/devtools/check-symbol-maps.sh +++ b/devtools/check-symbol-maps.sh @@ -7,11 +7,15 @@ cd $(dirname $0)/.. # speed up by ignoring Unicode details export LC_ALL=C +if [ $# = 0 ] ; then + set -- $(find lib drivers -name '*.map') +fi + ret=0 find_orphan_symbols () { - for map in $(find lib drivers -name '*.map') ; do + for map in $@ ; do for sym in $(sed -rn 's,^([^}]*_.*);.*$,\1,p' $map) ; do if echo $sym | grep -q '^per_lcore_' ; then symsrc=${sym#per_lcore_} @@ -27,11 +31,26 @@ find_orphan_symbols () done } -orphan_symbols=$(find_orphan_symbols) +orphan_symbols=$(find_orphan_symbols $@) if [ -n "$orphan_symbols" ] ; then echo "Found only in symbol map file:" echo "$orphan_symbols" | sed 's,^,\t,' ret=1 fi +find_duplicate_symbols () +{ + for map in $@ ; do + buildtools/map-list-symbol.sh $map | \ + sort | uniq -c | grep -v " 1 $map" || true + done +} + +duplicate_symbols=$(find_duplicate_symbols $@) +if [ -n "$duplicate_symbols" ] ; then + echo "Found duplicates in symbol map file:" + echo "$duplicate_symbols" + ret=1 +fi + exit $ret