2015-04-02 18:59:30 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
tmp/list-macros.sh
|
|
|
|
tmp/list-enum-consts.pl
|
|
|
|
tmp/list-identifiers.sh
|
|
|
|
tmp/list-symbols.sh
|
|
|
|
|
|
|
|
UNDECLARED=$( diff exported-symbols identifiers | sed -n -e 's/^< //p' )
|
|
|
|
if [ "x$UNDECLARED" == "x" ]; then
|
|
|
|
echo "All exported symbols are declared in headers: good"
|
|
|
|
else
|
|
|
|
echo "The following symbols are probably missing a 'static': $UNDECLARED"
|
|
|
|
fi
|
|
|
|
|
|
|
|
for THING in macros identifiers enum-consts; do
|
|
|
|
echo ''
|
|
|
|
echo "=== $THING ==="
|
|
|
|
|
|
|
|
NO_=$( grep -v _ $THING | tr '\n' ' ' )
|
|
|
|
echo "Without underscore: $NO_"
|
|
|
|
|
|
|
|
cut -f1 -d_ $THING | uniq -c | sort -nr > prefix-$THING
|
|
|
|
echo "By prefix: (10 most frequent, see prefix-$THING for full list)"
|
|
|
|
head -n 10 < prefix-$THING
|
|
|
|
done
|
|
|
|
|
|
|
|
echo ''; echo "=== all public names ==="
|
|
|
|
sort -u macros identifiers enum-consts > public-names
|
|
|
|
wc -l public-names
|
|
|
|
|
|
|
|
|
|
|
|
NL='
|
|
|
|
'
|
|
|
|
sed -n 's/POLARSSL_[A-Z0-9_]*/\'"$NL"'&\'"$NL"/gp \
|
2015-04-03 15:21:50 +02:00
|
|
|
include/mbedtls/*.h tests/scripts/* scripts/* library/*.c configs/*.h \
|
2015-04-02 18:59:30 +02:00
|
|
|
| grep POLARSSL | sort -u > _POLARSSL_XXX
|
|
|
|
diff public-names _POLARSSL_XXX | sed -n 's/^> //p' > extra-names
|
|
|
|
rm _POLARSSL_XXX
|
|
|
|
|
|
|
|
echo 'polarssl_zeroize' >> extra-names
|
|
|
|
|
|
|
|
wc -l extra-names
|
|
|
|
|
|
|
|
for THING in public-names extra-names; do
|
|
|
|
if grep '[^A-Za-z0-9_]' $THING; then
|
|
|
|
echo "invalid character in $THING" >&2
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
done
|