Update secp256k1 subtree to latest master #34623

pull fanquake wants to merge 2 commits into bitcoin:master from fanquake:secp256k1_subtree_update changing 41 files +1052 −512
  1. fanquake commented at 2:28 PM on February 19, 2026: member

    https://github.com/bitcoin-core/secp256k1/pull/1760 was merged upstream, which improves test parallelism, and reduces overall runtime. Our longest running tests are secp256k1 tests (secp256k1_tests), so we might want to pull this down, to speedup all of our ctest invocations.

    The new upstream code increases output verbosity, i.e the test list is now ~330, and we have output like:

    Label Time Summary:
    secp256k1_exhaustive        =  19.52 sec*proc (1 test)
    secp256k1_noverify_tests    =  45.65 sec*proc (91 tests)
    secp256k1_tests             =  90.55 sec*proc (91 tests)
    

    maybe we can/should mute that somewhat?

  2. DrahtBot commented at 2:28 PM on February 19, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK hebasto
    Concept ACK real-or-random

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  3. hebasto commented at 2:51 PM on February 19, 2026: member

    Concept ACK.

    The new upstream code increases output verbosity, i.e the test list is now ~330...

    Right. However, (1) we have had a similar verbosity in functional tests for some time without concerns from developers, as far as I know, and (2) failures remain easy to spot, even with the increased output.

  4. in src/secp256k1/src/CMakeLists.txt:156 in 65c7451794 outdated
     155 | +    include(DiscoverTests)
     156 | +    discover_tests(${exe_name}
     157 | +      DISCOVERY_ARGS        "--list_tests"
     158 | +      DISCOVERY_MATCH       "^\\t\\\\[ *[0-9]+\\\\] ([^ ].*)$"
     159 | +      TEST_NAME_REPLACEMENT "secp256k1.${exe_name}.\\\\1"
     160 | +      TEST_ARGS_REPLACEMENT "--target=\\\\1 --log=1"
    


    furszy commented at 3:02 PM on February 19, 2026:

    have you tried --log=0 to reduce the noise?


    hebasto commented at 3:55 PM on February 19, 2026:

    --log=1 provides verbose output for failed tests when used with --output-on-failure. It does not modify the output described in the PR description.

  5. fanquake force-pushed on Feb 24, 2026
  6. fanquake force-pushed on Feb 25, 2026
  7. fanquake marked this as ready for review on Feb 25, 2026
  8. fanquake force-pushed on Mar 3, 2026
  9. fanquake force-pushed on Mar 4, 2026
  10. fanquake commented at 1:42 PM on March 4, 2026: member

    Another question here is if we want to make any changes to take advantage of https://github.com/bitcoin-core/secp256k1/pull/1777. cc @real-or-random @furszy.

  11. furszy commented at 2:53 PM on March 4, 2026: member

    Another question here is if we want to make any changes to take advantage of bitcoin-core/secp256k1#1777. cc @real-or-random @furszy.

    Yes :). We did it targeting Core. Will create a PR for it soon. Thanks for the pull, will rebase on top of this PR.

  12. fanquake force-pushed on Mar 10, 2026
  13. real-or-random commented at 11:40 AM on March 10, 2026: contributor

    Concept ACK on updating the subtree -- we're not aware of any specific issues with the current master

  14. maflcko commented at 12:37 PM on March 10, 2026: member

    No objection, but wasn't the prior practise to prefer tagged releases? C.f. #28404#issue-1880630706, which says:

    We had previously pulled in a non-released commit along with #27479. The necessary changes have now been released in version 0.4.0, so update to that.

    Again, I am just wondering, and this is no objection, especially if there are reasons to derive from the preference.

  15. fanquake commented at 1:00 PM on March 10, 2026: member

    We sometimes have to update the subtree, to fix issues or unblock other changes (#29803, #30845) or, we could on occasions like this, update to get a faster running CI, for free. I don't think any of those should be blocked on / require that secp256k1 perform a release. The secp256k1 code is generally very stable, and it's versioning doesn't make any difference to our usage.

  16. fanquake force-pushed on Mar 17, 2026
  17. fanquake force-pushed on Mar 21, 2026
  18. fanquake force-pushed on Mar 23, 2026
  19. fanquake force-pushed on Mar 27, 2026
  20. Squashed 'src/secp256k1/' changes from 57315a6985..7262adb4b4
    7262adb4b4 Merge bitcoin-core/secp256k1#1841: gha: Bump deprecated GHA workflow dependencies
    c5cd9d6d9a gha: Bump deprecated GHA workflow dependencies
    95b702de34 Merge bitcoin-core/secp256k1#1839: ecdsa: VERIFY_CHECK result of _fe_set_b32_limit
    634215f3fc Merge bitcoin-core/secp256k1#1837: tests: Fix function pointer initialization C89 error in ellswift tests
    43fca0ff55 ecdsa: VERIFY_CHECK result of _fe_set_b32_limit
    b84635ed3b tests: Fix C89 function pointer initialization in ellswift tests
    ffc25a2731 Merge bitcoin-core/secp256k1#1834: ecmult: Document and test ng=NULL in ecmult
    3a403639dc eckey: Call ecmult with NULL instead of zero scalar
    7e68c0c88b ecmult: Document and test ng=NULL in ecmult
    1aafe15139 Merge bitcoin-core/secp256k1#1777: Make SHA256 compression runtime pluggable
    b9cb1cbfd7 Merge bitcoin-core/secp256k1#1824: util: introduce and use `ARRAY_SIZE` macro
    4d92a083bc sha256: speed up writes using multi-block compression
    0753f8b909 Add API to override SHA256 compression at runtime
    fdb6a91a5e Introduce hash context to support pluggable SHA256 compression
    c0a2aba088 Merge bitcoin-core/secp256k1#1811: bench: Update help functions in bench and bench_internal
    10f546a2c0 Merge bitcoin-core/secp256k1#1832: testrand: Remove testrand_finish
    8d0eda07e9 testrand: Remove testrand_finish
    95e6815843 Merge bitcoin-core/secp256k1#1825: hash: remove redundant `secp256k1_sha256_initialize` in tagged hash midstate functions
    f48b1bfa5d hash: add midstate initializer and use it for tagged hashes
    3019186a6d Merge bitcoin-core/secp256k1#1829: ci: Fix leftover use of old ECMULTGENPRECISION
    79e9f25237 ci: Fix leftover use of old ECMULTGENPRECISION
    dfe042feb2 Merge bitcoin-core/secp256k1#1828: Revert "ci, docker: Fix LLVM repository signature failure"
    76e92cfeea Revert "ci, docker: Fix LLVM repository signature failure"
    ac561601b8 Merge bitcoin-core/secp256k1#1760: cmake: Add dynamic test discovery to improve parallelism
    c7a7f732bd Merge bitcoin-core/secp256k1#1821: ellswift: fix overflow flag handling in secp256k1_ellswift_xdh
    921b9711ea util: introduce and use `ARRAY_SIZE` macro
    b99a94c382 Add tests for bad scalar inputs in ellswift XDH
    307b49f1b9 ellswift: fix overflow flag handling in secp256k1_ellswift_xdh
    322d0a4358 Merge bitcoin-core/secp256k1#1823: ci: Load Docker image by ID from builder step
    ed02466d3f ci: Load Docker image by ID from builder step
    c49c9be504 bench: Update help functions in bench and bench_internal
    1d146ac3ed Merge bitcoin-core/secp256k1#1819: tests: Improve secp256k1_scalar_check_overflow tests (Issue #1812)
    f47bbc07f0 test: add unit tests for secp256k1_scalar_check_overflow
    d071aa56d5 Merge bitcoin-core/secp256k1#1815: refactor: remove unnecessary `malloc` result casts
    99ab4a105e Merge bitcoin-core/secp256k1#1817: ci: Disable Docker build summary generation
    c5da3bde9c Merge bitcoin-core/secp256k1#1818: ci: Enforce base-10 evaluation
    97de5120cf Merge bitcoin-core/secp256k1#1804: test: show both CMake and Autotools usage for ctime_tests
    4fb7ccf5d4 ci: Enforce base-10 evaluation
    3ae72e7867 ci: Disable Docker build summary generation
    97b3c47849 refactor: remove unnecessary `malloc` result casts
    1bc74a22f8 test: show both Autotools and CMake usage for ctime_tests
    8354618e02 cmake: Set `LABELS` property for tests
    29f26ec3cf cmake: Integrate DiscoverTests and normalize test names
    f95b263f23 cmake: Add DiscoverTests module
    4ac651144b cmake, refactor: Deduplicate test-related code
    
    git-subtree-dir: src/secp256k1
    git-subtree-split: 7262adb4b40074201fb30847035a82b8d742f350
    dfd54c959e
  21. Update secp256k1 subtree to latest master b7f9178976
  22. fanquake force-pushed on Apr 9, 2026
  23. hebasto approved
  24. hebasto commented at 11:27 AM on April 9, 2026: member

    ACK b7f9178976b33a60dfc62ccb9ce8568975933904.

    Due to enhanced parallelism, the execution time of the ctest command has been reduced by approximately one-third on my machine.

  25. DrahtBot requested review from real-or-random on Apr 9, 2026
  26. fanquake commented at 11:41 PM on April 11, 2026: member

    Guix Build (x86_64):

    0af86f2ebe79892fcbc3d91f132250fb6049ec4f990e838afd402d8d513201ce  guix-build-b7f9178976b3/output/aarch64-linux-gnu/SHA256SUMS.part
    bbb94553e40919bf7267165bab1df480d20d5ee0f023658aab96772c0620f447  guix-build-b7f9178976b3/output/aarch64-linux-gnu/bitcoin-b7f9178976b3-aarch64-linux-gnu-debug.tar.gz
    de45c22fbab4402447536c9c1ecc50e3e036653c330e44d4dec7cab528301495  guix-build-b7f9178976b3/output/aarch64-linux-gnu/bitcoin-b7f9178976b3-aarch64-linux-gnu.tar.gz
    a59cf8f702b7edb52143f003e709a2fbd0a6abd1aae4e7257cf308fb6b2cc917  guix-build-b7f9178976b3/output/arm-linux-gnueabihf/SHA256SUMS.part
    5fb0232c8b60c1a62e9493a51c2369c48314515246ed6a843cb3b9216851e44d  guix-build-b7f9178976b3/output/arm-linux-gnueabihf/bitcoin-b7f9178976b3-arm-linux-gnueabihf-debug.tar.gz
    a34cb32fbd09970c003c8221d9cd51b787a78c3d81b245a0ab2365a796eaa25a  guix-build-b7f9178976b3/output/arm-linux-gnueabihf/bitcoin-b7f9178976b3-arm-linux-gnueabihf.tar.gz
    1e29d68d03695c52d610d3d5fcdd45d12709762949109cc0a1294296e40968e0  guix-build-b7f9178976b3/output/dist-archive/bitcoin-b7f9178976b3.tar.gz
    f0ee6b41fe31b3d85f530e7b8fc17c1ba022782340ae38e15cb573ccd4861f02  guix-build-b7f9178976b3/output/powerpc64-linux-gnu/SHA256SUMS.part
    71e162b725e7455edec6c7f2271d724af401276fe86cef2cabbd12cc6efe781d  guix-build-b7f9178976b3/output/powerpc64-linux-gnu/bitcoin-b7f9178976b3-powerpc64-linux-gnu-debug.tar.gz
    1496eb8fa8ec464e0ad404c2c70848baaaa8fe20d3a6450a3d7e3ce5fa000e48  guix-build-b7f9178976b3/output/powerpc64-linux-gnu/bitcoin-b7f9178976b3-powerpc64-linux-gnu.tar.gz
    891b7a557d037f4eac77bc7c4461011cae61a5a46c8471be97579c8aca61b164  guix-build-b7f9178976b3/output/riscv64-linux-gnu/SHA256SUMS.part
    c3b1104f6dc6aaf0181527aa769c03b9d7e80cd0fabc02933904c6beb11ccd2e  guix-build-b7f9178976b3/output/riscv64-linux-gnu/bitcoin-b7f9178976b3-riscv64-linux-gnu-debug.tar.gz
    f9a73474a0d172ffaec2406b84357c30e6cefc75f57d74f94d38d792355f1b54  guix-build-b7f9178976b3/output/riscv64-linux-gnu/bitcoin-b7f9178976b3-riscv64-linux-gnu.tar.gz
    eed0341b552c9238ab2e00dfc5f18c78a00140a6e8af71f5565570e750d87a96  guix-build-b7f9178976b3/output/x86_64-linux-gnu/SHA256SUMS.part
    bcc8acb3562669189e978c5a6df5b4153366a60c434d79aaf3dea05fab288bf4  guix-build-b7f9178976b3/output/x86_64-linux-gnu/bitcoin-b7f9178976b3-x86_64-linux-gnu-debug.tar.gz
    c318f4d260312afea1f26c8f3d55e5e2c970f50caaaa161454d44513df7c7f3d  guix-build-b7f9178976b3/output/x86_64-linux-gnu/bitcoin-b7f9178976b3-x86_64-linux-gnu.tar.gz
    d0d46397c89824c61fb587384a056954807df04d4a870085336aec3beffdab0b  guix-build-b7f9178976b3/output/x86_64-w64-mingw32/SHA256SUMS.part
    f82c860c199e514240678c28e5d53ff1c589d4b91257c6ec949dc63d06937cd2  guix-build-b7f9178976b3/output/x86_64-w64-mingw32/bitcoin-b7f9178976b3-win64-codesigning.tar.gz
    33039960bf83768be2d49ef9d0bc6b7d0e93dbaec93e7557e845e0b8cb0a36e2  guix-build-b7f9178976b3/output/x86_64-w64-mingw32/bitcoin-b7f9178976b3-win64-debug.zip
    e189cd7ad0bb567bebacef06056d43a752469f46a39c75725d6b53a8823fc649  guix-build-b7f9178976b3/output/x86_64-w64-mingw32/bitcoin-b7f9178976b3-win64-setup-unsigned.exe
    83913162e4a7c06cbf6da01dd59b2f3294ec15e838164c958cd5db2e14b23c1e  guix-build-b7f9178976b3/output/x86_64-w64-mingw32/bitcoin-b7f9178976b3-win64-unsigned.zip
    
  27. fanquake merged this on Apr 13, 2026
  28. fanquake closed this on Apr 13, 2026

  29. fanquake deleted the branch on Apr 13, 2026

github-metadata-mirror

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: 2026-04-26 06:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me