New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reef: Fix FTBFS on gcc 13 #52119
reef: Fix FTBFS on gcc 13 #52119
Conversation
This is based on 0024-gcc-13.patch from https://tracker.ceph.com/issues/58477 but with an extra #include <cstdint> to avoid dropping std:: prefixes on integer types. Fixes: https://tracker.ceph.com/issues/58477 Signed-off-by: Tim Serong <tserong@suse.com> (cherry picked from commit 796ce63)
Without this the build will fail on gcc 13 with errors like: src/osd/scrubber/scrub_backend.cc:1309:14: error: call of overloaded 'format_to(std::back_insert_iterator<fmt::v9::basic_memory_buffer<char> >, const char [35], const char*, const uint64_t&, const uint64_t&, pg_shard_t&)' is ambiguous 1309 | format_to(std::back_inserter(out), | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ 1310 | "{}size {} != size {} from shard {}", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1311 | sep(error), | ~~~~~~~~~~~ 1312 | candidate.size, | ~~~~~~~~~~~~~~~ 1313 | auth.size, | ~~~~~~~~~~ 1314 | auth_shard); | ~~~~~~~~~~~ /usr/include/fmt/core.h:3233:17: note: candidate: 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer<char> >; T = {const char*, const long unsigned int&, const long unsigned int&, pg_shard_t&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, const char*, const long unsigned int&, const long unsigned int&, pg_shard_t&>]' 3233 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args) | ^~~~~~~~~ /usr/include/c++/13/format:3761:5: note: candidate: '_Out std::format_to(_Out, format_string<_Args ...>, _Args&& ...) [with _Out = back_insert_iterator<fmt::v9::basic_memory_buffer<char> >; _Args = {const char*, const long unsigned int&, const long unsigned int&, pg_shard_t&}; format_string<_Args ...> = basic_format_string<char, const char*, const long unsigned int&, const long unsigned int&, pg_shard_t&>]' 3761 | format_to(_Out __out, format_string<_Args...> __fmt, _Args&&... __args) | ^~~~~~~~~ Fixes: https://tracker.ceph.com/issues/58477 Signed-off-by: Tim Serong <tserong@suse.com> (cherry picked from commit 1ae8eb6)
Signed-off-by: Casey Bodley <cbodley@redhat.com> (cherry picked from commit 87cd542)
@rzarzynski note that this includes the rocksdb submodule update from #51737 in addition to the commits from #50438 https://tracker.ceph.com/issues/58477 is also tagged for quincy backport, but i'm not planning to touch rocksdb there |
@cbodley I see that it was me who tagged it for quincy backport and I think I did that based on
in the description of the tracker. Does that not concern rocksdb in case of quincy? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM but if we are including #51737 here I'm missing a reason for not including it in the quincy PR too. From a quick look, both rockdb fixups would apply on ceph-quincy-v6.15.5-1 cleanly (it seems like the submodule hasn't been rolled forward in quincy to include ceph/rocksdb#43 either BTW).
Need @rzarzynski to weigh in here.
Note we fixed the rocksdb paths for ceph: s|([ab]/)|$1src/rocksdb/|g Upstream-ref: ceph/ceph#52119 Upstream-ref: ceph/rocksdb#44
Note we fixed the rocksdb paths for ceph: s|([ab]/)|$1src/rocksdb/|g Upstream-ref: ceph/ceph#52119 Upstream-ref: ceph/rocksdb#44
backport tracker: https://tracker.ceph.com/issues/61380
backport of #50438
parent tracker: https://tracker.ceph.com/issues/58477
this backport was staged using ceph-backport.sh version 16.0.0.6848
find the latest version at https://github.com/ceph/ceph/blob/main/src/script/ceph-backport.sh