# See README for details.
LIBFILE=libfoo.so
# Compile shared library
#
$CXX $LDFLAGS $CXXFLAGS -shared -o $LIBFILE foo.cpp
if [ $? != 0 ]; then
echo "ERROR: Can't build shared library!"
exit 1
fi
# Check that there is no .ctors section
${PREFIX}readelf -S libfoo.so | grep -q -e .ctors
if [ $? = 0 ]; then
echo "ERROR: Shared library should not have a .ctors section!"
exit 1
fi
# Check that there is no .dtors section
${PREFIX}readelf -S libfoo.so | grep -q -e .dtors
if [ $? = 0 ]; then
echo "ERROR: Shared library should not have a .dtors section!"
exit 1
fi
# Check that there is an .init_array section
${PREFIX}readelf -S $LIBFILE | grep -q -e .init_array
if [ $? != 0 ]; then
echo "ERROR: Shared library is missing an .init_array section!"
exit 1
fi
# Check that there is a .fini_array section
${PREFIX}readelf -S $LIBFILE | grep -q -e .fini_array
if [ $? != 0 ]; then
echo "ERROR: Shared library is missing an .fini_array section!"
exit 1
fi
# Everything's good
echo "Shared library is ok."
exit 0