diff --git a/src/check-libstdc++.sh b/src/check-libstdc++.sh index e7e0e295e..27deb42dc 100755 --- a/src/check-libstdc++.sh +++ b/src/check-libstdc++.sh @@ -17,14 +17,14 @@ fi tested=false for suffix in so dylib; do so=.libs/libharfbuzz.$suffix - if test -f "$so"; then - echo "Checking that we are not linking to libstdc++" - if ldd $so | grep 'libstdc[+][+]'; then - echo "Ouch, linked to libstdc++" - stat=1 - fi - tested=true + if ! test -f "$so"; then continue; fi + + echo "Checking that we are not linking to libstdc++" + if ldd $so | grep 'libstdc[+][+]'; then + echo "Ouch, linked to libstdc++" + stat=1 fi + tested=true done if ! $tested; then echo "check-libstdc++.sh: libharfbuzz shared library not found; skipping test" diff --git a/src/check-symbols.sh b/src/check-symbols.sh index e000b01b8..91eefd4e4 100755 --- a/src/check-symbols.sh +++ b/src/check-symbols.sh @@ -16,11 +16,17 @@ fi echo "Checking that we are not exposing internal symbols" tested=false -for so in `ls .libs/lib*.so .libs/lib*.dylib 2>/dev/null` ; do +for suffix in so dylib; do + so=.libs/libharfbuzz.$suffix + if ! test -f "$so"; then continue; fi + prefix= EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\| _ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>' | cut -d' ' -f3`" prefix=`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'` + # Ob mac, C symbols are prefixed with _ + if test $suffix = dylib; then prefix="_$prefix"; fi + echo "Processing $so" if echo "$EXPORTED_SYMBOLS" | grep -v "^${prefix}_"; then echo "Ouch, internal symbols exposed"