| #!/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 \ |
| include/mbedtls/*.h tests/scripts/* scripts/* library/*.c configs/*.h \ |
| | 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 |