Hi, Thanks for your answer.
On 12/4/21 5:11 PM, Giovanni Mascellani wrote: > Hi, > > On 01/12/21 22:21, Thomas Goirand wrote: >> 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; >> | ^~~~~~~~~~~~~~~~~ > > Uhm, that's strange. For gcc that macro should resolve to > __attribute__((fallthrough)), which should just work[1]. > > [1] > https://sources.debian.org/src/boost1.74/1.74.0-13/libs/config/include/boost/config/compiler/gcc.hpp/#L323 Well, that *USED* to work, a few weeks ago, but not Ceph FTBFS because of this problem. > I don't like the idea of using the new [[...]] syntax, because that > would break all the code that is not compiling at least with C++17. Whatever you feel works better is ok for me. I never wrote that what I gave was what should be implemented, I just wrote that it made it work for me with Ceph. Probably we should find something better. > Could you try running that compilation command with g++ -E, so you can > see what BOOST_FALLTHROUGH is actually begin replaced with? Oh, that's funny, when I add -E just right after /usr/bin/c++, then it looks like it's building fine (no error message, and c++ returns zero). Now I probably need to find a way to hard-wire the -E in Ceph (which I honestly have no clue how at the time of writing this... I for the moment just tried that one file that failed, I'll need to make it a rule everywhere, probably...). Cheers, Thomas Goirand (zigo)