Home | History | Annotate | Download | only in src
      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
     40