Bash程序  |  46行  |  1.03 KB


# 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