mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
d8311688bd Merge bitcoin-core/secp256k1#1515: ci: Note affected clangs in comment on ASLR quirk a85e2233e7 ci: Note affected clangs in comment on ASLR quirk 4b77fec67a Merge bitcoin-core/secp256k1#1512: msan: notate more variable assignments from assembly code f7f0184ba1 msan: notate more variable assignments from assembly code a61339149f change inconsistent array param to pointer 05bfab69ae Merge bitcoin-core/secp256k1#1507: ci: Add workaround for ASLR bug in sanitizers a5e8ab2484 ci: Add sanitizer env variables to debug output 84a93de4d2 ci: Add workaround for ASLR bug in sanitizers 427e86b9ed Merge bitcoin-core/secp256k1#1490: tests: improve fe_sqr test (issue #1472) 2028069df2 doc: clarify input requirements for secp256k1_fe_mul 11420a7a28 tests: improve fe_sqr test cdc9a6258e Merge bitcoin-core/secp256k1#1489: tests: add missing fe comparison checks for inverse field test cases d926510cf7 Merge bitcoin-core/secp256k1#1496: msan: notate variable assignments from assembly code 31ba404944 msan: notate variable assignments from assembly code e7ea32e30a msan: Add SECP256K1_CHECKMEM_MSAN_DEFINE which applies to memory sanitizer and not valgrind e7bdddd9c9 refactor: rename `check_fe_equal` -> `fe_equal` 00111c9c56 tests: add missing fe comparison checks for inverse field test cases 0653a25d50 Merge bitcoin-core/secp256k1#1486: ci: Update cache action 94a14d5290 ci: Update cache action 2483627299 Merge bitcoin-core/secp256k1#1483: cmake: Recommend native CMake commands in README 5ad3aa3dcd Merge bitcoin-core/secp256k1#1484: tests: Drop redundant _scalar_check_overflow calls 51df2d9ab3 tests: Drop redundant _scalar_check_overflow calls 3777e3f36a cmake: Recommend native CMake commands in README e4af41c61b Merge bitcoin-core/secp256k1#1249: cmake: Add `SECP256K1_LATE_CFLAGS` configure option 3bf4d68fc0 Merge bitcoin-core/secp256k1#1482: build: Clean up handling of module dependencies e6822678ea build: Error if required module explicitly off 89ec583ccf build: Clean up handling of module dependencies 44378867a0 Merge bitcoin-core/secp256k1#1468: v0.4.1 release aftermath a9db9f2d75 Merge bitcoin-core/secp256k1#1480: Get rid of untested sizeof(secp256k1_ge_storage) == 64 code path 74b7c3b53e Merge bitcoin-core/secp256k1#1476: include: make docs more consistent b37fdb28ce check-abi: Minor UI improvements ad5f589a94 check-abi: Default to HEAD for new version 9fb7e2f156 release process: Style and formatting nits ba5d72d626 assumptions: Use new STATIC_ASSERT macro e53c2d9ffc Require that sizeof(secp256k1_ge_storage) == 64 d0ba2abbff util: Add STATIC_ASSERT macro da7bc1b803 include: in doc, remove article in front of "pointer" aa3dd5280b include: make doc about ctx more consistent e3f690015a include: remove obvious "cannot be NULL" doc d373bf6d08 Merge bitcoin-core/secp256k1#1474: tests: restore scalar_mul test 79e094517c Merge bitcoin-core/secp256k1#1473: Fix typos 3dbfb48946 tests: restore scalar_mul test d77170a88d Fix typos e7053d065b release process: Add email step 429d21dc79 release process: Run sanity checks on release PR 42f8c51402 cmake: Add `SECP256K1_LATE_CFLAGS` configure option git-subtree-dir: src/secp256k1 git-subtree-split: d8311688bd383d3a923a1b11789cded3cc8e5e03
67 lines
2.2 KiB
Bash
Executable file
67 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"
|
|
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"
|