upstream: capnp V2 doesn’t support compilation with GCC (yet?) #32669

issue fanquake openend this issue on June 3, 2025
  1. fanquake commented at 8:58 am on June 3, 2025: member

    See https://github.com/capnproto/capnproto/pull/2304, and the discussion from the maintainer. Seems like the interest in supporting GCC is pretty secondary:

    Is there any way we can get a CI build that tests GCC support? Otherwise I’m sure it’ll just bitrot again.

    OK, seems fine to merge now but we can’t really claim that GCC is “supported” until we have CI tests since it’ll probably bitrot.

    When that PR lands, it looks like they will be supporting GCC 14.2 and later (relevant fix from 15.1 was backported).

    Assuming we are going to support / use capnp V2 at some point, it would be good if it did support GCC, if it doesn’t, we’ll have to bootstrap & use both Clang and GCC, for Linux builds in Guix, or patch capnp until it works with (our version of) GCC, or something else.

    https://capnproto.org/roadmap.html seems pretty outdated, as it still lists pre-1.x items, so it’s not really clear when V2 is planned to happen.

  2. fanquake added the label Upstream on Jun 3, 2025
  3. ryanofsky commented at 2:19 pm on June 3, 2025: contributor

    Thanks for finding this! I think best source of information about the v2 branch is probably https://capnproto.org/news/#whats-planned-for-20

    My impression about the branch is that it’s not intending to implement many significant changes, but more to be an API break and allow cleaning up some things like promise cancellations and EOF handling that they haven’t been able to fix due to wanting to preserve backwards compatibility. They are also requiring C++20 and dropping support for -fno-exceptions and -fno-rtti.

    It does sound like they aren’t actively testing GCC (v2 announcement says “as of this writing, GCC seems to ICE on KJ’s coroutine implementation”), but I doubt they would make an actual release without GCC support. It looks like the objections to https://github.com/capnproto/capnproto/pull/2304 are that it adds final annotations too many places, and that it doesn’t add GCC CI tests, and latter issue should be resolved when there is an ubuntu release with a new enough GCC.

    The last capnproto releases were 1.1.0 in December 2024 and 1.0.2 in January 2024. The v2 branch was announced in July 2023 and I expect issues with GCC will be resolved before there is a 2.0 release, but if this is not the case, I think should be ok sticking with 1.x until they are resolved, and I don’t think we would be the only downstream project doing this in that situation.

    In the meantime it probably would be a good idea to test the v2 branch to see if other changes in v2 break anything. I opened an issue to track that: https://github.com/bitcoin-core/libmultiprocess/issues/180


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: 2025-06-15 06:13 UTC

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