45 lines
1 KiB
Bash
45 lines
1 KiB
Bash
|
|
# 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
|