@@ -35,30 +35,36 @@ jobs:
3535 make -j 4 || $(exit 4)
3636 # ignore properly prefixed symbols, and symbols associated with asm implementations (all internal) regardless of prefix:
3737 readelf --symbols --wide src/.libs/libwolfssl.so | \
38- awk ' \
39- BEGIN { \
40- unprefixed_public_symbols = 0; \
41- } \
42- { \
43- if (($7 == "UND") || \
44- ($8 ~ /^(wc_|wolf|WOLF|__pfx|fe_|sp_[a-zA-Z090-0_]*[0-9])/) || \
45- ($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_bmi2|_x64$)/)) \
46- { \
47- next; \
48- } \
49- } \
50- { \
51- if (($4 == "FUNC") && ($5 == "GLOBAL") && ($6 == "DEFAULT")) { \
52- ++unprefixed_public_symbols; \
53- print; \
54- } \
55- } \
56- END { \
57- if (unprefixed_public_symbols) { \
58- print unprefixed_public_symbols " unprefixed public symbols found." >"/dev/stderr";
59- exit(1); \
60- } else { \
61- print "no unprefixed public symbols found."
62- exit(0); \
63- } \
38+ awk '
39+ BEGIN {
40+ total_public_symbols = 0;
41+ unprefixed_public_symbols = 0;
42+ }
43+ {
44+ if (($5 == "GLOBAL") && ($6 != "HIDDEN") && ($7 ~ /^[0-9]+$/)) {
45+ ++total_public_symbols;
46+ }
47+ }
48+ {
49+ if (($7 !~ /^[0-9]+$/) ||
50+ ($8 ~ /^(wc_|wolf|WOLF|__pfx|fe_|sp_[a-zA-Z090-0_]*[0-9])/) ||
51+ ($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_bmi2|_x64$)/))
52+ {
53+ next;
54+ }
55+ }
56+ {
57+ if (($4 == "FUNC") && ($5 == "GLOBAL") && ($6 == "DEFAULT")) {
58+ ++unprefixed_public_symbols;
59+ print;
60+ }
61+ }
62+ END {
63+ if (unprefixed_public_symbols) {
64+ print unprefixed_public_symbols " unprefixed public symbols found, of " total_public_symbols " total." >"/dev/stderr";
65+ exit(1);
66+ } else {
67+ print total_public_symbols " public symbols found in libwolfssl, all OK.";
68+ exit(0);
69+ }
6470 }' || $(exit 5)
0 commit comments