Removed incomplete API compatibility check scripts.

This commit is contained in:
yhirose 2025-02-14 14:10:06 -05:00
parent bfa2f735f2
commit d74e4a7c9c
2 changed files with 0 additions and 117 deletions

View File

@ -1,59 +0,0 @@
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Usage: $0 old_library.so new_library.so"
exit 1
fi
OLD_LIB=$1
NEW_LIB=$2
OLD_FUNCS=_old_funcs.txt
NEW_FUNCS=_new_funcs.txt
OLD_VARS=_old_vars.txt
NEW_VARS=_new_vars.txt
# Extract function symbols from the old and new libraries
nm -C --defined-only $OLD_LIB | c++filt | awk '$2 ~ /[TWt]/ {print substr($0, index($0,$3))}' | sort > $OLD_FUNCS
nm -C --defined-only $NEW_LIB | c++filt | awk '$2 ~ /[TWt]/ {print substr($0, index($0,$3))}' | sort > $NEW_FUNCS
# Extract variable symbols from the old and new libraries
nm -C --defined-only $OLD_LIB | c++filt | awk '$2 ~ /[BDGVs]/ {print substr($0, index($0,$3))}' | sort > $OLD_VARS
nm -C --defined-only $NEW_LIB | c++filt | awk '$2 ~ /[BDGVs]/ {print substr($0, index($0,$3))}' | sort > $NEW_VARS
# Initialize error flag and message
error_flag=0
error_message=""
# Check for removed function symbols
removed_funcs=$(comm -23 $OLD_FUNCS $NEW_FUNCS)
if [ -n "$removed_funcs" ]; then
error_flag=1
error_message+="[Removed Functions]\n$removed_funcs\n\n"
fi
# Check for removed variable symbols
removed_vars=$(comm -23 $OLD_VARS $NEW_VARS)
if [ -n "$removed_vars" ]; then
error_flag=1
error_message+="[Removed Variables]\n$removed_vars\n\n"
fi
# Check for added variable symbols
added_vars=$(comm -13 $OLD_VARS $NEW_VARS)
if [ -n "$added_vars" ]; then
error_flag=1
error_message+="[Added Variables]\n$added_vars\n\n"
fi
# Remove temporary files
rm -f $NEW_FUNCS $OLD_FUNCS $OLD_VARS $NEW_VARS
# Display error messages if any
if [ "$error_flag" -eq 1 ]; then
echo -en "$error_message"
echo "ABI compatibility check failed."
exit 1
fi
echo "ABI compatibility check passed: No variable symbols were removed or added, and no function symbols were removed."
exit 0

View File

@ -1,58 +0,0 @@
#!/usr/bin/env bash
PREVIOUS_VERSION=$(git describe --tags --abbrev=0 master)
BUILD_DIR=_build_for_abi_compatibility_check
# Make the build directory
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR/new
mkdir -p $BUILD_DIR/old
cd $BUILD_DIR
# Build the current commit
cd new
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="-g -Og" \
-DBUILD_SHARED_LIBS=ON \
-DHTTPLIB_COMPILE=ON \
-DCMAKE_INSTALL_PREFIX=./out \
../../.. > /dev/null
cmake --build . --target install > /dev/null
cmake --build . --target clean > /dev/null
cd ..
# Build the nearest vesion
cd old
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="-g -Og" \
-DBUILD_SHARED_LIBS=ON \
-DHTTPLIB_COMPILE=ON \
-DCMAKE_INSTALL_PREFIX=./out \
../../.. > /dev/null
git checkout -q "${PREVIOUS_VERSION}"
cmake --build . --target install > /dev/null
cmake --build . --target clean > /dev/null
cd ..
# Checkout the original commit
git checkout -q master
# ABI compatibility check
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
../check-abi-compatibility.sh ./old/out/lib/libcpp-httplib.so ./new/out/lib/libcpp-httplib.so
exit $?
elif [[ "$OSTYPE" == "darwin"* ]]; then
../check-abi-compatibility.sh ./old/out/lib/libcpp-httplib.dylib ./new/out/lib/libcpp-httplib.dylib
exit $?
else
echo "Unknown OS..."
exit 1
fi