build: Require libc++-16 or later #29077

pull maflcko wants to merge 1 commits into bitcoin:master from maflcko:2312-libc++-16- changing 2 files +4 −4
  1. maflcko commented at 9:50 am on December 14, 2023: member

    I am not familiar with macOS, but given that #28622 prescribes a minimum of libc++-16 for macOS, doing the same on Linux could make sense?

    This is needed for stuff:

    I don’t think anyone is using -stdlib=libc++ on Linux, except for the CI and OSS-Fuzz?

    The minimum required clang version remains at clang++-15.

  2. DrahtBot commented at 9:51 am on December 14, 2023: contributor

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

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #29071 (refactor: Remove Span operator==, Use std::ranges::equal by maflcko)
    • #28687 (C++20 std::views::reverse by stickies-v)

    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.

  3. DrahtBot added the label Build system on Dec 14, 2023
  4. maflcko added the label Brainstorming on Dec 14, 2023
  5. maflcko commented at 9:51 am on December 14, 2023: member
    Draft for now to gather conceptual feedback first.
  6. maflcko force-pushed on Dec 14, 2023
  7. in doc/dependencies.md:11 in faaf8b7aae outdated
     7@@ -8,7 +8,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
     8 | --- | --- |
     9 | [Autoconf](https://www.gnu.org/software/autoconf/) | [2.69](https://github.com/bitcoin/bitcoin/pull/17769) |
    10 | [Automake](https://www.gnu.org/software/automake/) | [1.13](https://github.com/bitcoin/bitcoin/pull/18290) |
    11-| [Clang](https://clang.llvm.org) | [13.0](https://github.com/bitcoin/bitcoin/pull/28210) |
    12+| [Clang](https://clang.llvm.org) | [13.0](https://github.com/bitcoin/bitcoin/pull/28210) (with at least libstdc++-10, or at least [libc++ 16.0](https://github.com/bitcoin/bitcoin/pull/29077))|
    


    fanquake commented at 10:27 am on December 14, 2023:
    Given #28687 (comment) and https://godbolt.org/z/n4oTE9sTE the libstdc++-10 requirement isn’t going to work here? Looks like this really needs to be clang-16.

    maflcko commented at 10:31 am on December 14, 2023:
    So as long as you don’t need deferred concepts instantiation, it should be fine.

    theuni commented at 7:40 pm on December 14, 2023:
    More missing in v10: #29081 (comment)

    maflcko commented at 10:34 am on May 6, 2024:
    Thanks, clarified that “libstdc++ (any version) requires at least clang-16”
  8. fanquake commented at 6:42 pm on December 14, 2023: member

    and OSS-Fuzz?

    So won’t this break as soon as we have code that requires libstdc++-16, given that OSS-Fuzz is still pinned to 15?

    Are there no other projects using (some?) C++20 code on OSS-Fuzz?

  9. maflcko renamed this:
    build: Require libc++-16 or later
    [WIP, DO NOT MERGE!!11111!!!!!] build: Require libc++-16 or later
    on Dec 14, 2023
  10. maflcko added this to the milestone 27.0 on Dec 15, 2023
  11. maflcko removed this from the milestone 27.0 on Dec 15, 2023
  12. maflcko added this to the milestone 28.0 on Dec 15, 2023
  13. maflcko force-pushed on Jan 12, 2024
  14. maflcko force-pushed on Mar 18, 2024
  15. maflcko removed this from the milestone 28.0 on Apr 10, 2024
  16. DrahtBot added the label Needs rebase on Apr 29, 2024
  17. maflcko force-pushed on Apr 29, 2024
  18. DrahtBot removed the label Needs rebase on Apr 29, 2024
  19. maflcko renamed this:
    [WIP, DO NOT MERGE!!11111!!!!!] build: Require libc++-16 or later
    build: Require libc++-16 or later
    on May 6, 2024
  20. maflcko force-pushed on May 6, 2024
  21. maflcko removed the label Brainstorming on May 6, 2024
  22. maflcko marked this as ready for review on May 6, 2024
  23. build: Require libc++-16 or later fae9c64896
  24. maflcko force-pushed on May 6, 2024
  25. maflcko marked this as a draft on May 6, 2024
  26. maflcko commented at 8:50 am on May 7, 2024: member

    Not sure if there is much value in being overly accurate here (clang-15 and libc++-16 or clang-16 and libstdc++). If someone can install clang-16 or libc++-16, they can probably also install the other as well?

    So I’d say to close this and bump to 16 wholesale?

  27. fanquake commented at 4:12 am on May 8, 2024: member

    So I’d say to close this and bump to 16 wholesale?

    I think generally, that would be more straightforward, then supporting varying compiler + std lib combinations, and seems possible to do at this point.

  28. maflcko closed this on May 8, 2024

  29. maflcko deleted the branch on May 8, 2024
  30. fanquake referenced this in commit 42d5a1ff25 on May 15, 2024

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: 2024-12-22 06:12 UTC

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