Update secp256k1 subtree to latest master #33036
pull fanquake wants to merge 2 commits into bitcoin:master from fanquake:update_secp256k1_subtree changing 17 files +281 −303-
fanquake commented at 8:46 am on July 22, 2025: memberUpdates the subtree to https://github.com/bitcoin-core/secp256k1/commit/b9313c6e1a6082a66b4c75777e18ca4b176fcf9d. See https://github.com/bitcoin-core/secp256k1/blob/master/CHANGELOG.md#070---2025-07-21 for the most relevant changes.
-
Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a
b9313c6e1a Merge bitcoin-core/secp256k1#1708: release cleanup: bump version after 0.7.0 a660a4976e Merge bitcoin-core/secp256k1#1707: release: Prepare for 0.7.0 7ab8b0cc01 release cleanup: bump version after 0.7.0 a3e742d947 release: Prepare for 0.7.0 f67b0ac1a0 ci: Don't hardcode ABI version 020ee60495 Merge bitcoin-core/secp256k1#1706: musig/tests: initialize keypair cde4130898 musig/tests: initialize keypair 6037833c9e Merge bitcoin-core/secp256k1#1702: changelog: update 40b4a06520 changelog: update 5e74086dc8 Merge bitcoin-core/secp256k1#1705: musig/test: Remove dead code 7c3380423c Merge bitcoin-core/secp256k1#1696: build: Refactor visibility logic and add override 8d967a602b musig/test: Remove dead code 983711cd6d musig/tests: Refactor vectors_signverify 73a695958a Merge bitcoin-core/secp256k1#1704: cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1` bf082221ff cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1` c82d84bb86 build: add CMake option for disabling symbol visibility attributes ce7923874f build: Add SECP256K1_NO_API_VISIBILITY_ATTRIBUTES e5297f6d79 build: Refactor visibility logic cbbbf3bd6e Merge bitcoin-core/secp256k1#1699: ci: enable musig module for native macOS arm64 job 943479a7a3 Merge bitcoin-core/secp256k1#1694: Revert "cmake: configure libsecp256k1.pc during install" 3352f9d667 ci: enable musig module for native macOS arm64 job ad60ef7ea7 Merge bitcoin-core/secp256k1#1689: ci: Convert `arm64` Cirrus tasks to GHA jobs c498779096 Merge bitcoin-core/secp256k1#1687: cmake: support the use of launchers in ctest -S scripts 44b205e9ee Revert "cmake: configure libsecp256k1.pc during install" 0dfe387dbe cmake: support the use of launchers in ctest -S scripts 89096c234d Merge bitcoin-core/secp256k1#1692: cmake: configure libsecp256k1.pc during install 7106dce6fd cmake: configure libsecp256k1.pc during install 29e73f4ba5 Merge bitcoin-core/secp256k1#1685: cmake: Emulate Libtool's behavior on FreeBSD 746e36b141 Merge bitcoin-core/secp256k1#1678: cmake: add a helper for linking into static libs a28c2ffa5c Merge bitcoin-core/secp256k1#1683: README: add link to musig example 2a9d374735 Merge bitcoin-core/secp256k1#1690: ci: Bump GCC snapshot major version to 16 add146e101 ci: Bump GCC snapshot major version to 16 004f57fcd8 ci: Move Valgrind build for `arm64` from Cirrus to GHA 5fafdfc30f ci: Move `gcc-snapshot` build for `arm64` from Cirrus to GHA e814b79a8b ci: Switch `arm64_debian` from QEMU to native `arm64` Docker image bcf77346b9 ci: Add `arm64` architecture to `docker_cache` job b77aae9226 ci: Rename Docker image tag to reflect architecture 145ae3e28d cmake: add a helper for linking into static libs 819210974b README: add link to musig example, generalize module enabling hint 95db29b144 Merge bitcoin-core/secp256k1#1679: cmake: Use `PUBLIC_HEADER` target property in installation logic 37dd422b5c cmake: Emulate Libtool's behavior on FreeBSD f24b838bed Merge bitcoin-core/secp256k1#1680: doc: Promote "Building with CMake" to standard procedure 3f31ac43e0 doc: Promote "Building with CMake" to standard procedure 6f67151ee2 cmake: Use `PUBLIC_HEADER` target property c32715b2a0 cmake, move-only: Move module option processing to `src/CMakeLists.txt` 201b2b8f06 Merge bitcoin-core/secp256k1#1675: cmake: Bump minimum required CMake version to 3.22 3af71987a8 cmake: Bump minimum required CMake version to 3.22 92394476e9 Merge bitcoin-core/secp256k1#1673: Assert field magnitude at control-flow join 3a4f448cb4 Assert field magnitude at control-flow join 9fab425256 Merge bitcoin-core/secp256k1#1668: bench_ecmult: add benchmark for ecmult_const_xonly 05445377f4 bench_ecmult: add benchmark for ecmult_const_xonly bb597b3d39 Merge bitcoin-core/secp256k1#1670: tests: update wycheproof files d73ed99479 tests: update wycheproof files git-subtree-dir: src/secp256k1 git-subtree-split: b9313c6e1a6082a66b4c75777e18ca4b176fcf9d
-
Update secp256k1 subtree to latest master 336b8be37b
-
DrahtBot commented at 8:46 am on July 22, 2025: contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33036.
Reviews
See the guideline for information on the review process.
Type Reviewers ACK theStack, stickies-v If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #32966 (Silent Payments: Receiving by Eunovo)
- #28201 (Silent Payments: sending by josibake)
- #28122 (Silent Payments: Implement BIP352 by josibake)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
-
theStack approved
-
theStack commented at 12:29 pm on July 22, 2025: contributorACK 336b8be37b2260d8e902b93f1761265a0aefa496
-
fanquake commented at 2:00 pm on July 22, 2025: member
Guix Build (x86_64 & aarch64):
0483e252d112c73c25ef86b8f9ba2bd2acd27b4209a55dd2b0c819badaa7e5123 guix-build-336b8be37b22/output/aarch64-linux-gnu/SHA256SUMS.part 153c2f3879c967deb4706cdf12bf54798a7ef4d3bf54701b6695abe5cd50c7435 guix-build-336b8be37b22/output/aarch64-linux-gnu/bitcoin-336b8be37b22-aarch64-linux-gnu-debug.tar.gz 2818f15221bd362f772b9b7c4e07842dbf6965678eb1dd0c86b8d15031b725731 guix-build-336b8be37b22/output/aarch64-linux-gnu/bitcoin-336b8be37b22-aarch64-linux-gnu.tar.gz 3310b81d25f1f79c2e4723aec9ae6dc82abb5a9af5dea5285da64b2a4f4a0e5d3 guix-build-336b8be37b22/output/arm-linux-gnueabihf/SHA256SUMS.part 466076b94ff9bc60a16db7cfc8036f7ba0a1835c4b630a2103271169d464c7226 guix-build-336b8be37b22/output/arm-linux-gnueabihf/bitcoin-336b8be37b22-arm-linux-gnueabihf-debug.tar.gz 575465734366d2b57cfaaba21e23830ab08f672a005898d675ac2c0a2f1183f23 guix-build-336b8be37b22/output/arm-linux-gnueabihf/bitcoin-336b8be37b22-arm-linux-gnueabihf.tar.gz 64ba021ba6aee260d2abc40b168ec4451673515839e5edba9fb6192aa934e9356 guix-build-336b8be37b22/output/arm64-apple-darwin/SHA256SUMS.part 73ab53f143f3396b7f7b5ce33023926d0525cd574a1879b03ad7c907bc360d721 guix-build-336b8be37b22/output/arm64-apple-darwin/bitcoin-336b8be37b22-arm64-apple-darwin-codesigning.tar.gz 882e1ad0be13036b84fa68fd10842b3b4bc6ae9d9c9f456019aac5f2f4b902781 guix-build-336b8be37b22/output/arm64-apple-darwin/bitcoin-336b8be37b22-arm64-apple-darwin-unsigned.tar.gz 92426b1d6128121e99fb116fdb5f7261c96c26044701dce55f5d8ea489c2d444a guix-build-336b8be37b22/output/arm64-apple-darwin/bitcoin-336b8be37b22-arm64-apple-darwin-unsigned.zip 10771c36e3465269ff02315fdb774566a0a099d6a4466938a46484dd04eaefe8e4 guix-build-336b8be37b22/output/dist-archive/bitcoin-336b8be37b22.tar.gz 1160b7c3bc7178b97ee5a6662b8179132db5b6b5c7384c8278fa9c5e6b227e8c3e guix-build-336b8be37b22/output/powerpc64-linux-gnu/SHA256SUMS.part 1221555a9b1373dba30290d7547c989e7b955562917d9a0121fd5cc26f43bec296 guix-build-336b8be37b22/output/powerpc64-linux-gnu/bitcoin-336b8be37b22-powerpc64-linux-gnu-debug.tar.gz 13e9eb2cd02437829c6bf97d1756bf9630fd8772387518cb8da04d6940138ad503 guix-build-336b8be37b22/output/powerpc64-linux-gnu/bitcoin-336b8be37b22-powerpc64-linux-gnu.tar.gz 14364e07b374876395b442df20071ac5d4fc4ffab90021d23f5f322b10c5613d32 guix-build-336b8be37b22/output/riscv64-linux-gnu/SHA256SUMS.part 15d3ea95bf7dc4afdde3d549e32a99fef63a87198ca13c5c40af0cc62de255c54e guix-build-336b8be37b22/output/riscv64-linux-gnu/bitcoin-336b8be37b22-riscv64-linux-gnu-debug.tar.gz 168261a7bf8481a6f9af6a74c402a4ac8103fa2f7d64780a3f31d45a6b3aa4875c guix-build-336b8be37b22/output/riscv64-linux-gnu/bitcoin-336b8be37b22-riscv64-linux-gnu.tar.gz 1756b97e74514b68956d10c852ca451beb01450b031de31c0a991ae20f4c0be64d guix-build-336b8be37b22/output/x86_64-apple-darwin/SHA256SUMS.part 18850906a28bd2b6ff8b1cf6e3dbed17083d5d9f39e059ede3b83e7f455f33a517 guix-build-336b8be37b22/output/x86_64-apple-darwin/bitcoin-336b8be37b22-x86_64-apple-darwin-codesigning.tar.gz 192d6d32c88c3f9f471d834d340a8a478265381f7a39970d84cdbb68758f2fc33a guix-build-336b8be37b22/output/x86_64-apple-darwin/bitcoin-336b8be37b22-x86_64-apple-darwin-unsigned.tar.gz 2052fcc3dfd17df278837c01e28f7651cf60b9c4d66d5dfabc9a7476cbd541cb1d guix-build-336b8be37b22/output/x86_64-apple-darwin/bitcoin-336b8be37b22-x86_64-apple-darwin-unsigned.zip 21cd4414c37c068c51fa6e446febb6105c948abfe48c26f78401ea306663252c0e guix-build-336b8be37b22/output/x86_64-linux-gnu/SHA256SUMS.part 22e0e86998a4cd8acd2f2db70a5617e91aec9c077cc28ed6bd08d4a399524a3524 guix-build-336b8be37b22/output/x86_64-linux-gnu/bitcoin-336b8be37b22-x86_64-linux-gnu-debug.tar.gz 2395733532ecc4fe2cdf66b2eea58132bc30537407a5613baf80c57db9e63115f5 guix-build-336b8be37b22/output/x86_64-linux-gnu/bitcoin-336b8be37b22-x86_64-linux-gnu.tar.gz 24c88072809629ae39c3a1cb022e1f62d3208f553b5ca3771bf73e79e36267542b guix-build-336b8be37b22/output/x86_64-w64-mingw32/SHA256SUMS.part 25088e8bea93015f4a712c736887a83ec5e8178c102fde2e7b759fcf6f3badec9c guix-build-336b8be37b22/output/x86_64-w64-mingw32/bitcoin-336b8be37b22-win64-codesigning.tar.gz 26174fa5c2f0aab80ab4456c5c098e8c6eadbf23daf56a44e99b9fc52e19b5756c guix-build-336b8be37b22/output/x86_64-w64-mingw32/bitcoin-336b8be37b22-win64-debug.zip 279f2ffbd5631fdcc9f04d38d140bc5e48f14724d7a4d7a1c9d433480fa8c7874b guix-build-336b8be37b22/output/x86_64-w64-mingw32/bitcoin-336b8be37b22-win64-setup-unsigned.exe 288bfcba6675e4043d447ebe593d4ea31c2667ff4e4567bb56498cc85c7025f0cc guix-build-336b8be37b22/output/x86_64-w64-mingw32/bitcoin-336b8be37b22-win64-unsigned.zip
-
stickies-v commented at 2:24 pm on July 22, 2025: contributor
I think the 0.7.0 release has been updated to fix wrong 0.7.1 references, I’m getting a slight diff when pulling the subtree. Current HEAD for https://github.com/bitcoin-core/secp256k1/releases/tag/v0.7.0 is https://github.com/bitcoin-core/secp256k1/commit/a660a4976efe880bae7982ee410b9e0dc59ac983, whereas this PR is using https://github.com/bitcoin-core/secp256k1/commit/b9313c6e1a6082a66b4c75777e18ca4b176fcf9d with diff:
0diff --git a/src/secp256k1/CHANGELOG.md b/src/secp256k1/CHANGELOG.md 1index 53c787b38f..3e9e720cf7 100644 2--- a/src/secp256k1/CHANGELOG.md 3+++ b/src/secp256k1/CHANGELOG.md 4@@ -5,8 +5,6 @@ All notable changes to this project will be documented in this file. 5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8-## [Unreleased] 9- 10 ## [0.7.0] - 2025-07-21 11 12 #### Added 13@@ -187,7 +185,6 @@ This version was in fact never released. 14 The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6). 15 Therefore, this version number does not uniquely identify a set of source files. 16 17-[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.7.0...HEAD 18 [0.7.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.6.0...v0.7.0 19 [0.6.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.1...v0.6.0 20 [0.5.1]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.0...v0.5.1 21diff --git a/src/secp256k1/CMakeLists.txt b/src/secp256k1/CMakeLists.txt 22index 25919fd5e6..a34f42d2c9 100644 23--- a/src/secp256k1/CMakeLists.txt 24+++ b/src/secp256k1/CMakeLists.txt 25@@ -7,7 +7,7 @@ project(libsecp256k1 26 # The package (a.k.a. release) version is based on semantic versioning 2.0.0 of 27 # the API. All changes in experimental modules are treated as 28 # backwards-compatible and therefore at most increase the minor version. 29- VERSION 0.7.1 30+ VERSION 0.7.0 31 DESCRIPTION "Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1." 32 HOMEPAGE_URL "https://github.com/bitcoin-core/secp256k1" 33 LANGUAGES C 34@@ -22,7 +22,7 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 35 # All changes in experimental modules are treated as if they don't affect the 36 # interface and therefore only increase the revision. 37 set(${PROJECT_NAME}_LIB_VERSION_CURRENT 6) 38-set(${PROJECT_NAME}_LIB_VERSION_REVISION 1) 39+set(${PROJECT_NAME}_LIB_VERSION_REVISION 0) 40 set(${PROJECT_NAME}_LIB_VERSION_AGE 0) 41 42 #============================= 43diff --git a/src/secp256k1/configure.ac b/src/secp256k1/configure.ac 44index ce24248fa3..808aa79ebf 100644 45--- a/src/secp256k1/configure.ac 46+++ b/src/secp256k1/configure.ac 47@@ -5,8 +5,8 @@ AC_PREREQ([2.60]) 48 # backwards-compatible and therefore at most increase the minor version. 49 define(_PKG_VERSION_MAJOR, 0) 50 define(_PKG_VERSION_MINOR, 7) 51-define(_PKG_VERSION_PATCH, 1) 52-define(_PKG_VERSION_IS_RELEASE, false) 53+define(_PKG_VERSION_PATCH, 0) 54+define(_PKG_VERSION_IS_RELEASE, true) 55 56 # The library version is based on libtool versioning of the ABI. The set of 57 # rules for updating the version can be found here: 58@@ -14,7 +14,7 @@ define(_PKG_VERSION_IS_RELEASE, false) 59 # All changes in experimental modules are treated as if they don't affect the 60 # interface and therefore only increase the revision. 61 define(_LIB_VERSION_CURRENT, 6) 62-define(_LIB_VERSION_REVISION, 1) 63+define(_LIB_VERSION_REVISION, 0) 64 define(_LIB_VERSION_AGE, 0) 65 66 AC_INIT([libsecp256k1],m4_join([.], _PKG_VERSION_MAJOR, _PKG_VERSION_MINOR, _PKG_VERSION_PATCH)m4_if(_PKG_VERSION_IS_RELEASE, [true], [], [-dev]),[https://github.com/bitcoin-core/secp256k1/issues],[libsecp256k1],[https://github.com/bitcoin-core/secp256k1])
-
fanquake commented at 2:26 pm on July 22, 2025: member
whereas this PR is using https://github.com/bitcoin-core/secp256k1/commit/b9313c6e1a6082a66b4c75777e18ca4b176fcf9d
Yes that is what I say in the PR description.
-
stickies-v approved
-
stickies-v commented at 2:59 pm on July 22, 2025: contributor
Yes that is what I say in the PR description.
Sorry, the link to the 0.7.0 release notes led me to believe the intention was to upgrade to the latest release instead of master, but I now understand (and as indicated in the PR title) that’s not the usual update process used for secp256k1.
ACK 336b8be37b2260d8e902b93f1761265a0aefa496
Verified that the subtree pull matches https://github.com/bitcoin-core/secp256k1/commit/b9313c6e1a6082a66b4c75777e18ca4b176fcf9d, and briefly skimmed through changes since previous subtree pull (
git range-diff 4187a4664914dc6f6fb6a619c6b85c854fc33033...b9313c6e1a6082a66b4c75777e18ca4b176fcf9d
). I’ve observed most changes relate to build system, CI, and bench/tests improvements.Am not familiar with the secp256k1 code, nor our usage in the codebase, so my review is mostly mechanical, relying on the secp256k1 review process for underlying code quality.
-
fanquake merged this on Jul 23, 2025
-
fanquake closed this on Jul 23, 2025
-
fanquake deleted the branch on Jul 23, 2025
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-08-02 00:13 UTC
More mirrored repositories can be found on mirror.b10c.me