Skip to content

Why does libboost_cobalt.so get built for GCC 16 but not GCC 15? #260

Description

@jwakely

I'm packaging Boost 1.90.0 for Fedora and observed that when my new boost-1.90.0 RPM is built using GCC 15 (the current compiler in Fedora Rawhide) there are no libs built for Boost.Cobalt. When I experiment with building it with the GCC 16 package that will arrive in Rawhide some time next month, I get these extra files installed:

   /usr/lib/debug/usr/lib64/libboost_cobalt.so.1.90.0-1.90.0-0.1.fc44.x86_64.debug
   /usr/lib/debug/usr/lib64/libboost_cobalt_io.so.1.90.0-1.90.0-0.1.fc44.x86_64.debug
   /usr/lib64/libboost_cobalt.so
   /usr/lib64/libboost_cobalt.so.1.90.0
   /usr/lib64/libboost_cobalt_io.so
   /usr/lib64/libboost_cobalt_io.so.1.90.0

I assume this is because GCC 16 defaults to -std=gnu++20 so supports C++20 coroutines by default, and GCC 15 only supports them if you use an extra option. But is that really the intended behaviour? Should building Boost automatically add -std=gnu++20 when building Cobalt, so that it actually installs its libraries?

https://www.boost.org/doc/libs/1_90_0/libs/cobalt/doc/html/index.html#requirements says it's been tested with GCC 10, but says nothing about it not being supported out of the box and requiring additional steps to get the library binaries. Am I doing something wrong when building Boost? I'm just using the ./bootstrap.sh and b2 commands as recommended.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions