Blame src/check-static-inits.sh

Packit Service 5bcba8
#!/bin/sh
Packit Service 5bcba8
Packit Service 5bcba8
LC_ALL=C
Packit Service 5bcba8
export LC_ALL
Packit Service 5bcba8
Packit Service 5bcba8
test -z "$srcdir" && srcdir=.
Packit Service 5bcba8
stat=0
Packit Service 5bcba8
Packit Service 5bcba8
Packit Service 5bcba8
if which objdump 2>/dev/null >/dev/null; then
Packit Service 5bcba8
	:
Packit Service 5bcba8
else
Packit Service 5bcba8
	echo "check-static-inits.sh: 'objdump' not found; skipping test"
Packit Service 5bcba8
	exit 77
Packit Service 5bcba8
fi
Packit Service 5bcba8
Packit Service 5bcba8
OBJS=.libs/*.o
Packit Service 5bcba8
if test "x`echo $OBJS`" = "x$OBJS" 2>/dev/null >/dev/null; then
Packit Service 5bcba8
	echo "check-static-inits.sh: object files not found; skipping test"
Packit Service 5bcba8
	exit 77
Packit Service 5bcba8
fi
Packit Service 5bcba8
Packit Service 5bcba8
echo "Checking that no object file has static initializers"
Packit Service 5bcba8
for obj in $OBJS; do
Packit Service 5bcba8
	if objdump -t "$obj" | grep '[.][cd]tors' | grep -v '\<00*\>'; then
Packit Service 5bcba8
		echo "Ouch, $obj has static initializers/finalizers"
Packit Service 5bcba8
		stat=1
Packit Service 5bcba8
	fi
Packit Service 5bcba8
done
Packit Service 5bcba8
Packit Service 5bcba8
echo "Checking that no object file has lazy static C++ constructors/destructors or other such stuff"
Packit Service 5bcba8
for obj in $OBJS; do
Packit Service 5bcba8
	if objdump -t "$obj" | grep '__cxa_'; then
Packit Service 5bcba8
		echo "Ouch, $obj has lazy static C++ constructors/destructors or other such stuff"
Packit Service 5bcba8
		stat=1
Packit Service 5bcba8
	fi
Packit Service 5bcba8
done
Packit Service 5bcba8
Packit Service 5bcba8
exit $stat