aboutsummaryrefslogtreecommitdiff
path: root/src/secp256k1/tools/check-abi.sh
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2024-04-04 12:05:16 +0100
committerfanquake <fanquake@gmail.com>2024-04-04 12:05:16 +0100
commit4654cc32248d788ac1160ca320ea68d31357d0c9 (patch)
treecd6a9d7a793e98bf7f6c53387169032a15cfccb8 /src/secp256k1/tools/check-abi.sh
parent71c51c161d476cc495afdb7864283fdb84d2dc0c (diff)
parent53eec53dca1cb677d11564b055d3b8581ddd6747 (diff)
downloadbitcoin-4654cc32248d788ac1160ca320ea68d31357d0c9.tar.xz
Update secp256k1 subtree to latest master
Diffstat (limited to 'src/secp256k1/tools/check-abi.sh')
-rwxr-xr-xsrc/secp256k1/tools/check-abi.sh27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/secp256k1/tools/check-abi.sh b/src/secp256k1/tools/check-abi.sh
index 8f6119cd8e..55c945ac16 100755
--- a/src/secp256k1/tools/check-abi.sh
+++ b/src/secp256k1/tools/check-abi.sh
@@ -3,17 +3,19 @@
set -eu
default_base_version="$(git describe --match "v*.*.*" --abbrev=0)"
-default_new_version="master"
+default_new_version="HEAD"
display_help_and_exit() {
- echo "Usage: $0 <base_ver> <new_ver>"
+ echo "Usage: $0 [<base_ver> [<new_ver>]]"
echo ""
echo "Description: This script uses the ABI Compliance Checker tool to determine if the ABI"
echo " of a new version of libsecp256k1 has changed in a backward-incompatible way."
echo ""
echo "Options:"
- echo " base_ver Specify the base version (default: $default_base_version)"
- echo " new_ver Specify the new version (default: $default_new_version)"
+ echo " base_ver Specify the base version as a git commit-ish"
+ echo " (default: most recent reachable tag matching \"v.*.*\", currently \"$default_base_version\")"
+ echo " new_ver Specify the new version as a git commit-ish"
+ echo " (default: $default_new_version)"
echo " -h, --help Display this help message"
exit 0
}
@@ -23,9 +25,11 @@ if [ "$#" -eq 0 ]; then
new_version="$default_new_version"
elif [ "$#" -eq 1 ] && { [ "$1" = "-h" ] || [ "$1" = "--help" ]; }; then
display_help_and_exit
-elif [ "$#" -eq 2 ]; then
+elif [ "$#" -eq 1 ] || [ "$#" -eq 2 ]; then
base_version="$1"
- new_version="$2"
+ if [ "$#" -eq 2 ]; then
+ new_version="$2"
+ fi
else
echo "Invalid usage. See help:"
echo ""
@@ -33,7 +37,8 @@ else
fi
checkout_and_build() {
- git worktree add -d "$1" "$2"
+ _orig_dir="$(pwd)"
+ git worktree add --detach "$1" "$2"
cd "$1"
mkdir build && cd build
cmake -S .. --preset dev-mode \
@@ -45,20 +50,18 @@ checkout_and_build() {
-DSECP256K1_BUILD_EXAMPLES=OFF
cmake --build . -j "$(nproc)"
abi-dumper src/libsecp256k1.so -o ABI.dump -lver "$2"
+ cd "$_orig_dir"
}
echo "Comparing $base_version (base version) to $new_version (new version)"
echo
-original_dir="$(pwd)"
-
-base_source_dir=$(mktemp -d)
+base_source_dir="$(mktemp -d)"
checkout_and_build "$base_source_dir" "$base_version"
-new_source_dir=$(mktemp -d)
+new_source_dir="$(mktemp -d)"
checkout_and_build "$new_source_dir" "$new_version"
-cd "$original_dir"
abi-compliance-checker -lib libsecp256k1 -old "${base_source_dir}/build/ABI.dump" -new "${new_source_dir}/build/ABI.dump"
git worktree remove "$base_source_dir"
git worktree remove "$new_source_dir"