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)