Package: libboost1.74-dev
Version: 1.74.0-13
Severity: important

Hi there!

When building Ceph (current version in Experimental), since a few days/weeks,
I get this:

In file included from /root/ceph/ceph/src/seastar/src/core/file.cc:28:
/usr/include/boost/container/detail/copy_move_algo.hpp: In function ‘typename 
boost::move_detail::enable_if_c<(boost::container::dtl::is_memtransfer_copy_assignable<F,
 G>::value && true), void>::type boost::container::deep_swap_alloc_n(A
llocator&, F, typename 
boost::container::allocator_traits<Allocator>::size_type, G, typename 
boost::container::allocator_traits<Allocator>::size_type)’:
/usr/include/boost/container/detail/copy_move_algo.hpp:1083:10: error: 
‘__fallthrough__’ was not declared in this scope; did you mean ‘fallthrough’?
 1083 |          BOOST_FALLTHROUGH;
      |          ^~~~~~~~~~~~~~~~~

To me, it looks like a bug in Boost itself, as this is where the
BOOST_FALLTHROUGH macro is defined.

Note that in Ceph, I had the same issue, until I redefined the
macro like this directly:
#define FMT_FALLTHROUGH [[gnu::fallthrough]]

removing the conditional:
#if __cplusplus == 201103L || __cplusplus == 201402L

which doesn't seem to get some matching, and then the error in
the subject of this bug report went away, at least for the Ceph
part (well, fmt which Ceph embedds...).

Is this still a problem in Ceph, or am I right that it probably
is an issue in Boost?

I can't get my head around this issue which has been blocking me
for weeks. What's annoying is that it used to build fine, and
I don't know what changed in unstable to make it fail to way.
If the issue is in Ceph's code, then I would happily recieve
advices.

Your thoughts?

Cheers,

Thomas Goirand (zigo)

Reply via email to