1446fa73405e87849fde9f7aeedc108a8449820f
[platform/upstream/harfbuzz.git] / src / check-static-inits.sh
1 #!/bin/sh
2
3 LC_ALL=C
4 export LC_ALL
5
6 test -z "$srcdir" && srcdir=.
7 stat=0
8
9
10 if which objdump 2>/dev/null >/dev/null; then
11         :
12 else
13         echo "check-static-inits.sh: 'objdump' not found; skipping test"
14         exit 77
15 fi
16
17 OBJS=.libs/*.o
18 if test "x`echo $OBJS`" = "x$OBJS" 2>/dev/null >/dev/null; then
19         echo "check-static-inits.sh: object files not found; skipping test"
20         exit 77
21 fi
22
23 echo "Checking that no object file has static initializers"
24 for obj in $OBJS; do
25         if objdump -t "$obj" | grep '[.][cd]tors' | grep -v '\<00*\>'; then
26                 echo "Ouch, $obj has static initializers/finalizers"
27                 stat=1
28         fi
29 done
30
31 echo "Checking that no object file has lazy static C++ constructors/destructors or other such stuff"
32 for obj in $OBJS; do
33         if objdump -t "$obj" | grep '__cxa_'; then
34                 echo "Ouch, $obj has lazy static C++ constructors/destructors or other such stuff"
35                 stat=1
36         fi
37 done
38
39 exit $stat