Imported Upstream version 2.6.4
[platform/upstream/harfbuzz.git] / src / check-static-inits.sh
index 83d02c8..def25c7 100755 (executable)
@@ -4,9 +4,9 @@ LC_ALL=C
 export LC_ALL
 
 test -z "$srcdir" && srcdir=.
+test -z "$libs" && libs=.libs
 stat=0
 
-
 if which objdump 2>/dev/null >/dev/null; then
        :
 else
@@ -14,7 +14,7 @@ else
        exit 77
 fi
 
-OBJS=.libs/*.o
+OBJS=$libs/*.o
 if test "x`echo $OBJS`" = "x$OBJS" 2>/dev/null >/dev/null; then
        echo "check-static-inits.sh: object files not found; skipping test"
        exit 77
@@ -22,15 +22,16 @@ fi
 
 echo "Checking that no object file has static initializers"
 for obj in $OBJS; do
-       if objdump -t "$obj" | grep '[.]ctors'; then
-               echo "Ouch, $obj has static initializers"
+       if objdump -t "$obj" | grep '[.][cd]tors' | grep -v '\<00*\>'; then
+               echo "Ouch, $obj has static initializers/finalizers"
                stat=1
        fi
 done
 
 echo "Checking that no object file has lazy static C++ constructors/destructors or other such stuff"
 for obj in $OBJS; do
-       if objdump -t "$obj" | grep '__cxa_'; then
+       if objdump -t "$obj" | grep -q '__cxa_' && ! objdump -t "$obj" | grep -q __ubsan_handle; then
+               objdump -t "$obj" | grep '__cxa_'
                echo "Ouch, $obj has lazy static C++ constructors/destructors or other such stuff"
                stat=1
        fi