mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-03 16:30:42 +02:00
06bff6dec8 Merge bitcoin-core/secp256k1#1528: tests: call `secp256k1_ecmult_multi_var` with a non-`NULL` error callback 4155e62fcc Merge bitcoin-core/secp256k1#1526: cmake: Fix `check_arm32_assembly` when using as subproject 9554362b15 tests: call secp256k1_ecmult_multi_var with a non-NULL error callback 9f4c8cd730 cmake: Fix `check_arm32_assembly` when using as subproject 7712a53061 Merge bitcoin-core/secp256k1#1524: check-abi: explicitly provide public headers 7d0bc0870f Merge bitcoin-core/secp256k1#1525: changelog: Correct 0.5.0 release date d45d9b74bb changelog: Correct 0.5.0 release date d7f6613dbb Merge bitcoin-core/secp256k1#1523: release cleanup: bump version after 0.5.0 2f05e2da4b release cleanup: bump version after 0.5.0 e3a885d42a Merge bitcoin-core/secp256k1#1522: release: prepare for 0.5.0 dd695563e6 check-abi: explicitly provide public headers c0e4ec3fee release: prepare for 0.5.0 bb528cfb08 Merge bitcoin-core/secp256k1#1518: Add secp256k1_pubkey_sort 7d2591ce12 Add secp256k1_pubkey_sort da515074e3 Merge bitcoin-core/secp256k1#1058: Signed-digit multi-comb ecmult_gen algorithm 4c341f89ab Add changelog entry for SDMC a043940253 Permit COMB_BITS < 256 for exhaustive tests 39b2f2a321 Add test case for ecmult_gen recoded = {-1,0,1} 644e86de9a Reintroduce projective blinding 07810d9abb Reduce side channels from single-bit reads a0d32b597d Optimization: use Nx32 representation for recoded bits e03dcc44b5 Make secp256k1_scalar_get_bits support 32-bit reads 5005abee60 Rename scalar_get_bits -> scalar_get_bits_limb32; return uint32_t 6247f485b6 Optimization: avoid unnecessary doublings in precomputation 15d0cca2a6 Optimization: first table lookup needs no point addition 7a33db35cd Optimization: move (2^COMB_BITS-1)/2 term into ctx->scalar_offset ed2a056f3d Provide 3 configurations accessible through ./configure 5f7be9f6a5 Always generate tables for current (blocks,teeth) config fde1dfcd8d Signed-digit multi-comb ecmult_gen algorithm 486518b350 Make exhaustive tests's scalar_inverse(&x,&x) work ab45c3e089 Initial gej blinding -> final ge blinding aa00a6b892 Introduce CEIL_DIV macro and use it git-subtree-dir: src/secp256k1 git-subtree-split: 06bff6dec8d038f7b4112664a9b882293ebc5178
68 lines
2.2 KiB
Bash
Executable File
68 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
default_base_version="$(git describe --match "v*.*.*" --abbrev=0)"
|
|
default_new_version="HEAD"
|
|
|
|
display_help_and_exit() {
|
|
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 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
|
|
}
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
base_version="$default_base_version"
|
|
new_version="$default_new_version"
|
|
elif [ "$#" -eq 1 ] && { [ "$1" = "-h" ] || [ "$1" = "--help" ]; }; then
|
|
display_help_and_exit
|
|
elif [ "$#" -eq 1 ] || [ "$#" -eq 2 ]; then
|
|
base_version="$1"
|
|
if [ "$#" -eq 2 ]; then
|
|
new_version="$2"
|
|
fi
|
|
else
|
|
echo "Invalid usage. See help:"
|
|
echo ""
|
|
display_help_and_exit
|
|
fi
|
|
|
|
checkout_and_build() {
|
|
_orig_dir="$(pwd)"
|
|
git worktree add --detach "$1" "$2"
|
|
cd "$1"
|
|
mkdir build && cd build
|
|
cmake -S .. --preset dev-mode \
|
|
-DCMAKE_C_COMPILER=gcc -DCMAKE_BUILD_TYPE=None -DCMAKE_C_FLAGS="-g -Og -gdwarf-4" \
|
|
-DSECP256K1_BUILD_BENCHMARK=OFF \
|
|
-DSECP256K1_BUILD_TESTS=OFF \
|
|
-DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF \
|
|
-DSECP256K1_BUILD_CTIME_TESTS=OFF \
|
|
-DSECP256K1_BUILD_EXAMPLES=OFF
|
|
cmake --build . -j "$(nproc)"
|
|
abi-dumper src/libsecp256k1.so -o ABI.dump -lver "$2" -public-headers ../include/
|
|
cd "$_orig_dir"
|
|
}
|
|
|
|
echo "Comparing $base_version (base version) to $new_version (new version)"
|
|
echo
|
|
|
|
base_source_dir="$(mktemp -d)"
|
|
checkout_and_build "$base_source_dir" "$base_version"
|
|
|
|
new_source_dir="$(mktemp -d)"
|
|
checkout_and_build "$new_source_dir" "$new_version"
|
|
|
|
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"
|