changelog: update #1702

pull jonasnick wants to merge 1 commits into bitcoin-core:master from jonasnick:update-changelog changing 1 files +16 −0
  1. jonasnick commented at 9:08 AM on July 16, 2025: contributor

    This update includes all PRs that have a needs-changelog tag:

    • Make static context const #1639
    • include: remove WARN_UNUSED_RESULT for functions always returning 1 #1659
    • cmake: Bump minimum required CMake version to 3.22 #1675 #1675
    • added: cmake: add a helper for linking into static libs #1678
    • doc: Promote "Building with CMake" to standard procedure #1680
    • also added cmake: Emulate Libtool's behavior on FreeBSD #1685

    I had added the needs-changelog tag to #1685 because it seems noteworthy, but otherwise have not found any additional merged PR that would require a changelog entry.

    I'm not sure if the changelog entry for #1678 makes sense (CC theuni)

  2. in CHANGELOG.md:18 in 8af2545cea outdated
      13 | +#### Changed
      14 | + - The pointers `secp256k1_context_static` and `secp256k1_context_no_precomp` to the constant context object are now const.
      15 | + - Removed `SECP256K1_WARN_UNUSED_RESULT` attribute from several functions that always return 1. Compilers will no longer warn if the return value is unused.
      16 | + - The minimum required CMake version was increased to 3.22.
      17 | + - Building with CMake is no longer considered experimental.
      18 | + - Shared libraries built with CMake on FreeBSD now create the full versioned filename and symlink chain, matching the behavior of autotools builds.
    


    real-or-random commented at 5:11 AM on July 17, 2025:
     - CMake: Added `secp256k1_objs` interface library to allow parent projects to embed libsecp256k1 object files into their own static libraries.
    
    #### Changed
     - The pointers `secp256k1_context_static` and `secp256k1_context_no_precomp` to the constant context object are now const.
     - Removed `SECP256K1_WARN_UNUSED_RESULT` attribute (defined as `__attribute__ ((__warn_unused_result__))`) from several API functions that always return 1. Compilers will no longer warn if the return value is unused.
     - CMake: Building with CMake is no longer considered experimental.
     - CMake: The minimum required CMake version was increased to 3.22.
     - CMake: Shared libraries built with CMake on FreeBSD now create the full versioned filename and symlink chain, matching the behavior of autotools builds.
    
  3. real-or-random commented at 5:14 AM on July 17, 2025: contributor
  4. real-or-random added the label user-documentation on Jul 17, 2025
  5. real-or-random added the label release on Jul 17, 2025
  6. real-or-random requested review from Copilot on Jul 17, 2025
  7. Copilot commented at 5:15 AM on July 17, 2025: none

    Pull Request Overview

    This PR updates the Unreleased section of the CHANGELOG to reflect recent merged PRs with the needs-changelog label, primarily around CMake improvements and context pointer constness.

    • Add a new CMake interface library entry
    • Mark static context pointers as const and remove now-unnecessary WARN_UNUSED_RESULT
    • Bump minimum CMake version, promote CMake builds, and align FreeBSD shared library naming

    <details> <summary>Comments suppressed due to low confidence (2)</summary>

    CHANGELOG.md:14

    • [nitpick] The wording around pointer constness is a bit confusing. Consider clarifying that these symbols are now defined as const secp256k1_context* (e.g., "secp256k1_context_static and secp256k1_context_no_precomp are now of type const secp256k1_context*." ).
     - The pointers `secp256k1_context_static` and `secp256k1_context_no_precomp` to the constant context object are now const.
    

    CHANGELOG.md:11

    • [nitpick] It may help readers if each changelog entry references the corresponding PR number (e.g., add (#1678) at the end) for easier cross-referencing.
     - CMake: Added `secp256k1_objs` interface library to allow parent projects to embed secp256k1 object files into their own static libraries.
    

    </details>

  8. jonasnick force-pushed on Jul 17, 2025
  9. jonasnick commented at 9:39 AM on July 17, 2025: contributor

    Added ABI compatibility section.

  10. theuni commented at 9:34 PM on July 17, 2025: contributor

    Entry for 1678 looks good to me.

  11. in CHANGELOG.md:28 in 7fac6c8c71 outdated
      22 |    `secp256k1_ec_privkey_tweak_mul`. Use `secp256k1_ec_seckey_negate`, `secp256k1_ec_seckey_tweak_add` and
      23 |    `secp256k1_ec_seckey_tweak_mul` instead.
      24 |  
      25 | +#### ABI Compatibility
      26 | +The symbols `secp256k1_ec_privkey_negate`, `secp256k1_ec_privkey_tweak_add`, and `secp256k1_ec_privkey_tweak_mul` were removed.
      27 | +The pointers `secp256k1_context_static` and `secp256k1_context_no_precomp` have been made const.
    


    real-or-random commented at 6:49 AM on July 18, 2025:

    if you touch this again, for consistency,

    The pointers `secp256k1_context_static` and `secp256k1_context_no_precomp` were made const.
    
  12. real-or-random approved
  13. real-or-random commented at 6:49 AM on July 18, 2025: contributor

    ACK 7fac6c8c7110fe07294c39d41e0c7e3eeccee03a

  14. hebasto approved
  15. hebasto commented at 11:17 AM on July 18, 2025: member

    I have reviewed buildsystem-specific changes and they look OK.

  16. jonasnick added this to the milestone 0.7.0 on Jul 21, 2025
  17. in CHANGELOG.md:11 in 7fac6c8c71 outdated
       6 | @@ -7,11 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
       7 |  
       8 |  ## [Unreleased]
       9 |  
      10 | +#### Added
      11 | + - CMake: Added `secp256k1_objs` interface library to allow parent projects to embed libsecp256k1 object files into their own static libraries.
    


    real-or-random commented at 1:38 PM on July 21, 2025:
    #### Added
     - CMake: Added `secp256k1_objs` interface library to allow parent projects to embed libsecp256k1 object files into their own static libraries.
     - build: Added `SECP256K1_NO_API_VISIBILITY_ATTRIBUTES` preprocessor flag (CMake option: `SECP256K1_ENABLE_API_VISIBILITY_ATTRIBUTES`) that disables explicit "visibility" attributes for API symbols. Defining this macro enables the user to control the visibility of the API symbols via `-fvisibility=<value>` when building libsecp256k1. (All non-API declarations will always have hidden visibility, even with `SECP256K1_ENABLE_API_VISIBILITY_ATTRIBUTES` defined.) For instance, `-fvisibility=hidden` can be useful even for the API symbols, e.g., when building a static libsecp256k1 which is linked into a shared library, and the latter should not re-export the libsecp256k1 API.
    
  18. changelog: update
    Co-authored-by: Tim Ruffing <dev@real-or-random.org>
    40b4a06520
  19. jonasnick force-pushed on Jul 21, 2025
  20. real-or-random approved
  21. real-or-random commented at 1:44 PM on July 21, 2025: contributor

    ACK 40b4a0652078c797df3ceb66387b8cfe60e6dab8

  22. real-or-random merged this on Jul 21, 2025
  23. real-or-random closed this on Jul 21, 2025


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-18 19:15 UTC

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