Conversation
cmake/modules/BuildRocksDB.cmake
Outdated
| SOURCE_DIR "${rocksdb_SOURCE_DIR}" | ||
| CMAKE_ARGS ${rocksdb_CMAKE_ARGS} | ||
| BINARY_DIR "${rocksdb_BINARY_DIR}" | ||
| PATCH_COMMAND ${PATCH_EXECUTABLE} -p1 -i ${_build_rocksdb_list_dir}/rocksdb-gcc-13.patch |
There was a problem hiding this comment.
Do we need to patch rocksdb on our own? How about merging those changes with the rockdb's upsteam and moving forward the ceph/rocksdb fork?
There was a problem hiding this comment.
agreed, we shouldn't need to patch our own submodule; we could start by merging this change to the ceph/rocksdb fork and carry it there until it merges upstream
There was a problem hiding this comment.
Right, good point. The patch was because I actually started working on fixing gcc 13 issues in SUSE's downstream pacific version, and I wasn't sure I wanted to touch the rocksdb submodule in that context.
|
OK, that's a bit cleaner now - thanks everyone! Still need to sort out rocksdb separately and see how the GCC folks go with that ICE. |
|
is it maybe worth splitting the rocksdb submodule part into a separate PR, so we can merge the rest of it? |
good idea - I've just removed the rocksdb patch bits |
idryomov
left a comment
There was a problem hiding this comment.
-
"osd: use std::format_to(...) to fix FTBFS on gcc 13" commit title needs updating since it's switching to
fmt::format_to(), notstd::format_to() -
fold "test/librados: fix FTBFS on gcc 13" commit into "common, librbd, msg, test: fix FTBFS on gcc 13" -- no need to have two commits for the same
cstdintinclude issue
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>
|
jenkins test make check |
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>
|
@idryomov do you think this needs full qa? all of the builds except arm64 succeeded in https://shaman.ceph.com/builds/ceph/pr-50438/ |
Probably not. If the builds succeed, it should be fine to merge. |
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
The changes within are now included in the upstream, and are no longer needed Upstream-ref: ceph/ceph#50438
|
Is ceph going to be updated to a newer rocksdb version? The 7.9 ish patched old copy it's using doesn't make it easy for downstream users that care about untangling the build (packaging it separately). |
There's a few things in here:
format_tocallsThese fix a bunch of gcc 13 build failures. Unfortunately there remains at least one outstanding issue:
This was already reported to the GCC folks a few weeks ago:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
Hopefully we're good once that ICE is fixed, but in case we're not, I'll leave this PR in draft status for the time being.
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows