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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions