# 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