Skip to content

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

@jwakely

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions