mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-04 12:20:42 +09:00
Only fail if it is an ABI incompatible change. Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
43 lines
1.0 KiB
Bash
Executable File
43 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
INSTALL_DIR1=${1}
|
|
INSTALL_DIR2=${2}
|
|
|
|
abidiff \
|
|
--headers-dir1 "${INSTALL_DIR1}/include/libssh/" \
|
|
--headers-dir2 "${INSTALL_DIR2}/include/libssh/" \
|
|
"${INSTALL_DIR1}/lib64/libssh.so" \
|
|
"${INSTALL_DIR2}/lib64/libssh.so" \
|
|
--fail-no-debug-info
|
|
abiret=$?
|
|
|
|
ABIDIFF_ERROR=$(((abiret & 0x01) != 0))
|
|
ABIDIFF_USAGE_ERROR=$(((abiret & 0x02) != 0))
|
|
ABIDIFF_ABI_CHANGE=$(((abiret & 0x04) != 0))
|
|
ABIDIFF_ABI_INCOMPATIBLE_CHANGE=$(((abiret & 0x08) != 0))
|
|
ABIDIFF_UNKNOWN_BIT_SET=$(((abiret & 0xf0) != 0))
|
|
|
|
if [ $ABIDIFF_ERROR -ne 0 ]; then
|
|
echo "abidiff reported ABIDIFF_ERROR."
|
|
exit 1
|
|
fi
|
|
if [ $ABIDIFF_USAGE_ERROR -ne 0 ]; then
|
|
echo "abidiff reported ABIDIFF_USAGE_ERROR."
|
|
exit 1
|
|
fi
|
|
if [ $ABIDIFF_UNKNOWN_BIT_SET -ne 0 ]; then
|
|
echo "abidiff reported ABIDIFF_UNKNOWN_BIT_SET."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $ABIDIFF_ABI_INCOMPATIBLE_CHANGE -ne 0 ]; then
|
|
echo "abidiff result ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this breaks the API!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ $ABIDIFF_ABI_CHANGE -ne 0 ]; then
|
|
echo "Ignoring abidiff result ABI_CHANGE"
|
|
fi
|
|
|
|
exit 0
|