Bug #59504
open17.2.6: build fails with fmt 9.1.0
0%
Description
fmt 9.1.0
cmake settings
-- Cache values
ALLOCATOR:STRING=
BABELTRACE_EXECUTABLE:FILEPATH=BABELTRACE_EXECUTABLE-NOTFOUND
CEPH_GRAFANA_DASHBOARDS_DIR:PATH=/etc/grafana/dashboards/ceph-dashboard
CEPH_MAN_DIR:STRING=share/man
CEPH_SYSTEMD_ENV_DIR:PATH=/etc/sysconfig
CEPH_TEST_TIMEOUT:STRING=3600
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
CTAGS_EXECUTABLE:FILEPATH=/usr/bin/ctags
CTAG_EXCLUDES:BOOL=OFF
DASHBOARD_FRONTEND_LANGS:STRING=
DEBUG_GATHER:BOOL=OFF
DIAGNOSTICS_COLOR:STRING=auto
ENABLE_COVERAGE:BOOL=OFF
ENABLE_GIT_VERSION:BOOL=ON
ENABLE_SHARED:BOOL=ON
FUSE_LIBRARIES:FILEPATH=/usr/lib64/libfuse3.so
GMock_GMock_LIBRARY:FILEPATH=/usr/lib64/libgmock.so
GMock_INCLUDE_DIR:PATH=/usr/include
GMock_Main_LIBRARY:FILEPATH=/usr/lib64/libgmock_main.so
GPERF:FILEPATH=/usr/bin/gperf
GTest_DIR:PATH=/usr/lib64/cmake/GTest
ICU_INCLUDE_DIR:PATH=/usr/include
LIBXFS:FILEPATH=/usr/lib64/libhandle.so
LTTNG_GEN_TP:FILEPATH=/usr/bin/lttng-gen-tp
MAKE_EXECUTABLE:FILEPATH=/usr/bin/gmake
PG_DEBUG_REFS:BOOL=OFF
PROMTOOL_EXECUTABLE:FILEPATH=/usr/bin/promtool
RDMACM_INCLUDE_DIR:PATH=/usr/include
RT_LIBRARY:FILEPATH=/usr/lib64/librt.a
SPAWN_TEST_ADDRESS_SANITIZER:BOOL=ON
SPHINX_BUILD:FILEPATH=/usr/bin/sphinx-build
SQLite3_INCLUDE_DIR:PATH=/usr/include
SQLite3_LIBRARY:FILEPATH=/usr/lib64/libsqlite3.so
SYSTEMD_SYSTEM_UNIT_DIR:PATH=/usr/lib/systemd/system
Tcmalloc_INCLUDE_DIR:PATH=/usr/include
USE_SQLITE:BOOL=ON
VERBS_INCLUDE_DIR:PATH=/usr/include
WITH_ASAN:BOOL=OFF
WITH_ASAN_LEAK:BOOL=OFF
WITH_BABELTRACE:BOOL=ON
WITH_BLKIN:BOOL=OFF
WITH_BLUEFS:BOOL=OFF
WITH_BLUESTORE:BOOL=OFF
WITH_BROTLI:BOOL=OFF
WITH_CCACHE:BOOL=OFF
WITH_CEPHFS:BOOL=ON
WITH_CEPHFS_JAVA:BOOL=OFF
WITH_CEPHFS_SHELL:BOOL=ON
WITH_CEPHFS_TOP:BOOL=ON
WITH_DMCLOCK_TESTS:BOOL=OFF
WITH_DOKAN:BOOL=OFF
WITH_DPDK:BOOL=OFF
WITH_EC_ISA_PLUGIN:BOOL=TRUE
WITH_FIO:BOOL=OFF
WITH_FMT_HEADER_ONLY:BOOL=OFF
WITH_FUSE:BOOL=ON
WITH_GRAFANA:BOOL=ON
WITH_GSSAPI:BOOL=OFF
WITH_GTEST_PARALLEL:BOOL=OFF
WITH_JAEGER:BOOL=OFF
WITH_KRBD:BOOL=ON
WITH_KVS:BOOL=OFF
WITH_LIBCEPHFS:BOOL=ON
WITH_LIBCEPHSQLITE:BOOL=ON
WITH_LIBRADOSSTRIPER:BOOL=ON
WITH_LTTNG:BOOL=ON
WITH_LZ4:BOOL=ON
WITH_MANPAGE:BOOL=ON
WITH_MGR:BOOL=ON
WITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
WITH_MGR_ROOK_CLIENT:BOOL=ON
WITH_OCF:BOOL=ON
WITH_OPENLDAP:BOOL=ON
WITH_OSD_INSTRUMENT_FUNCTIONS:BOOL=OFF
WITH_PROFILER:BOOL=OFF
WITH_PYTHON3:STRING=3
WITH_QAT:BOOL=OFF
WITH_QATZIP:BOOL=OFF
WITH_RADOSGW:BOOL=ON
WITH_RADOSGW_AMQP_ENDPOINT:BOOL=ON
WITH_RADOSGW_BEAST_OPENSSL:BOOL=ON
WITH_RADOSGW_DBSTORE:BOOL=ON
WITH_RADOSGW_KAFKA_ENDPOINT:BOOL=ON
WITH_RADOSGW_LUA_PACKAGES:BOOL=ON
WITH_RADOSGW_SELECT_PARQUET:BOOL=ON
WITH_RBD:BOOL=ON
WITH_RBD_MIGRATION_FORMAT_QCOW_V1:BOOL=ON
WITH_RBD_RWL:BOOL=ON
WITH_RBD_SSD_CACHE:BOOL=ON
WITH_RDMA:BOOL=ON
WITH_REENTRANT_STRSIGNAL:BOOL=OFF
WITH_SEASTAR:BOOL=OFF
WITH_SELINUX:BOOL=OFF
WITH_SPDK:BOOL=OFF
WITH_STATIC_LIBSTDCXX:BOOL=OFF
WITH_SYSTEMD:BOOL=ON
WITH_SYSTEM_ARROW:BOOL=OFF
WITH_SYSTEM_BOOST:BOOL=ON
WITH_SYSTEM_GTEST:BOOL=ON
WITH_SYSTEM_NPM:BOOL=OFF
WITH_SYSTEM_PMDK:BOOL=OFF
WITH_SYSTEM_ROCKSDB:BOOL=ON
WITH_SYSTEM_UTF8PROC:BOOL=OFF
WITH_SYSTEM_ZSTD:BOOL=ON
WITH_TESTS:BOOL=ON
WITH_THREAD_SAFE_RES_QUERY:BOOL=OFF
WITH_TSAN:BOOL=OFF
WITH_UBSAN:BOOL=OFF
WITH_XFS:BOOL=ON
WITH_ZFS:BOOL=OFF
dmclock_TEST:BOOL=OFF
gtest_DIR:PATH=gtest_DIR-NOTFOUND
rabbitmq_INCLUDE_DIR:PATH=/usr/include
rabbitmq_LIBRARY:FILEPATH=/usr/lib64/librabbitmq.so
rdkafka_INCLUDE_DIR:PATH=/usr/include
rdkafka_LIBRARY:FILEPATH=/usr/lib64/librdkafka.so
and build fails with
[ 2%] Building CXX object src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o
cd /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/common && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DCEPH_INSTALL_DATADIR=\"/usr/share/ceph\" -DCEPH_INSTALL_FULL_PKGLIBDIR=\"/usr/lib64/ceph\" -DCMAKE_INSTALL_LIBDIR=\"/usr/lib64\" -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/include -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/include -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/xxHash -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/rapidjson/include -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -DNDEBUG -std=c++17 -fPIC -U_FORTIFY_SOURCE -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -fstack-protector-strong -fdiagnostics-color=auto -MD -MT src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o -MF CMakeFiles/common-common-objs.dir/Journald.cc.o.d -o CMakeFiles/common-common-objs.dir/Journald.cc.o -c /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc
In file included from /usr/include/fmt/format.h:48,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:17:
/usr/include/fmt/core.h: In instantiation of ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const entity_name_t&]’:
/usr/include/fmt/core.h:1777:29: required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const entity_name_t&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1901:77: required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, entity_name_t, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
/usr/include/fmt/core.h:1918:31: required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<Args>::type>::type ...> fmt::v9::make_format_args(Args&& ...) [with Context = basic_format_context<appender, char>; Args = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}]’
/usr/include/fmt/core.h:3235:52: required from ‘OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer<char> >; T = {int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]’
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:142:19: required from here
/usr/include/fmt/core.h:1757:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
1757 | formattable,
| ^~~~~~~~~~~
/usr/include/fmt/core.h:1757:7: note: ‘formattable’ evaluates to false
make[2]: *** [src/common/CMakeFiles/common-common-objs.dir/build.make:1284: src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:4279: src/common/CMakeFiles/common-common-objs.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make: *** [Makefile:149: all] Error 2
Updated by Tomasz Kloczko 12 months ago
I found that this issue can be fixed by add -DFMT_DEPRECATED_OSTREAM to CXXFLAGS.
So after run `CXXFLAGS=-DFMT_DEPRECATED_OSTREAM smake <params>` and strat compile I've hit another issue.
[ 16%] Building CXX object src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o
cd /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/kv && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/include -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/include -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/xxHash -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/rapidjson/include -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -DFMT_DEPRECATED_OSTREAM -DNDEBUG -std=c++17 -fPIC -U_FORTIFY_SOURCE -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -fstack-protector-strong -fdiagnostics-color=auto -MD -MT src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o -MF CMakeFiles/kv.dir/KeyValueDB.cc.o.d -o CMakeFiles/kv.dir/KeyValueDB.cc.o -c /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc
In file included from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/librados/ListObjectImpl.h:19,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/osd/osd_types.h:51,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/MemDB.h:22,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:5:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/include/rados/librados.hpp:107:54: warning: ‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator’ is deprecated [-Wdeprecated-declarations]
107 | class CEPH_RADOS_API NObjectIterator : public std::iterator <std::forward_iterator_tag, ListObject> {
| ^~~~~~~~
In file included from /usr/include/c++/13/bits/stl_construct.h:61,
from /usr/include/c++/13/bits/stl_tempbuf.h:61,
from /usr/include/c++/13/memory:66,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/include/buffer.h:41,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.h:6,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:4:
/usr/include/c++/13/bits/stl_iterator_base_types.h:127:34: note: declared here
127 | struct _GLIBCXX17_DEPRECATED iterator
| ^~~~~~~~
In file included from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:17,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:20,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:6:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:40:34: error: ‘rocksdb::Cache::Handle’ has not been declared
40 | rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:40:67: error: ‘rocksdb::Cache::Priority’ has not been declared
40 | rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:41:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
41 | virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
| ^~~~~~
In file included from /usr/include/rocksdb/table.h:25,
from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:18:
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:42:20: error: ‘rocksdb::Cache::Handle’ has not been declared
42 | virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:43:24: error: ‘rocksdb::Cache::Handle’ has not been declared
43 | virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:57:32: error: ‘rocksdb::Cache::Handle’ has not been declared
57 | virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const = 0;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:63:67: error: invalid use of incomplete type ‘class rocksdb::Cache’
63 | class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
| ^~~~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:71:34: error: ‘rocksdb::Cache::Handle’ has not been declared
71 | rocksdb::Cache::Handle** handle, Priority priority) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:71:67: error: ‘Priority’ has not been declared
71 | rocksdb::Cache::Handle** handle, Priority priority) override;
| ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:72:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
72 | virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
| ^~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:73:20: error: ‘rocksdb::Cache::Handle’ has not been declared
73 | virtual bool Ref(rocksdb::Cache::Handle* handle) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:74:24: error: ‘rocksdb::Cache::Handle’ has not been declared
74 | virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:75:23: error: ‘Handle’ has not been declared
75 | virtual void* Value(Handle* handle) override = 0;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:83:27: error: ‘rocksdb::Cache::Handle’ has not been declared
83 | virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:85:28: error: ‘Handle’ has not been declared
85 | virtual size_t GetCharge(Handle* handle) const = 0;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:87:32: error: ‘Handle’ has not been declared
87 | virtual DeleterFn GetDeleter(Handle* handle) const override;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:94:13: error: ‘ApplyToAllEntriesOptions’ does not name a type
94 | const ApplyToAllEntriesOptions& opts) override;
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:103:28: error: ‘Handle’ has not been declared
103 | virtual uint32_t GetHash(Handle* handle) const = 0;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:68:23: error: ‘virtual const char* rocksdb_cache::ShardedCache::Name() const’ marked ‘override’, but does not override
68 | virtual const char* Name() const override = 0;
| ^~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:69:27: error: ‘virtual rocksdb::Status rocksdb_cache::ShardedCache::Insert(const rocksdb::Slice&, void*, size_t, rocksdb_cache::DeleterFn, int**, int)’ marked ‘override’, but does not override
69 | virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:73:16: error: ‘virtual bool rocksdb_cache::ShardedCache::Ref(int*)’ marked ‘override’, but does not override
73 | virtual bool Ref(rocksdb::Cache::Handle* handle) override;
| ^~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:74:16: error: ‘virtual bool rocksdb_cache::ShardedCache::Release(int*, bool)’ marked ‘override’, but does not override
74 | virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:75:17: error: ‘virtual void* rocksdb_cache::ShardedCache::Value(int*)’ marked ‘override’, but does not override
75 | virtual void* Value(Handle* handle) override = 0;
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:76:16: error: ‘virtual void rocksdb_cache::ShardedCache::Erase(const rocksdb::Slice&)’ marked ‘override’, but does not override
76 | virtual void Erase(const rocksdb::Slice& key) override;
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:77:20: error: ‘virtual uint64_t rocksdb_cache::ShardedCache::NewId()’ marked ‘override’, but does not override
77 | virtual uint64_t NewId() override;
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:78:16: error: ‘virtual void rocksdb_cache::ShardedCache::SetCapacity(size_t)’ marked ‘override’, but does not override
78 | virtual void SetCapacity(size_t capacity) override;
| ^~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:79:16: error: ‘virtual void rocksdb_cache::ShardedCache::SetStrictCapacityLimit(bool)’ marked ‘override’, but does not override
79 | virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:80:16: error: ‘virtual bool rocksdb_cache::ShardedCache::HasStrictCapacityLimit() const’ marked ‘override’, but does not override
80 | virtual bool HasStrictCapacityLimit() const override;
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:81:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetCapacity() const’ marked ‘override’, but does not override
81 | virtual size_t GetCapacity() const override;
| ^~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:82:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetUsage() const’ marked ‘override’, but does not override
82 | virtual size_t GetUsage() const override;
| ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:83:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetUsage(int*) const’ marked ‘override’, but does not override
83 | virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
| ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:84:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetPinnedUsage() const’ marked ‘override’, but does not override
84 | virtual size_t GetPinnedUsage() const override;
| ^~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:87:21: error: ‘virtual void (* rocksdb_cache::ShardedCache::GetDeleter(int*) const)(const rocksdb::Slice&, void*)’ marked ‘override’, but does not override
87 | virtual DeleterFn GetDeleter(Handle* handle) const override;
| ^~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:89:16: error: ‘virtual void rocksdb_cache::ShardedCache::DisownData()’ marked ‘override’, but does not override
89 | virtual void DisownData() override = 0;
| ^~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:91:16: error: ‘virtual void rocksdb_cache::ShardedCache::ApplyToAllEntries(const std::function<void(const rocksdb::Slice&, void*, long unsigned int, void (*)(const rocksdb::Slice&, void*))>&, const int&)’ marked ‘override’, but does not override
91 | virtual void ApplyToAllEntries(
| ^~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:99:16: error: ‘virtual void rocksdb_cache::ShardedCache::EraseUnRefEntries()’ marked ‘override’, but does not override
99 | virtual void EraseUnRefEntries() override;
| ^~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:100:23: error: ‘virtual std::string rocksdb_cache::ShardedCache::GetPrintableOptions() const’ marked ‘override’, but does not override
100 | virtual std::string GetPrintableOptions() const override;
| ^~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:103:20: error: ‘rocksdb::Cache::Priority’ has not been declared
103 | void SetPriority(rocksdb::Cache::Priority priority) {
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h: In member function ‘void rocksdb_cache::BinnedLRUHandle::SetPriority(int)’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:104:37: error: ‘rocksdb::Cache::Priority’ has not been declared
104 | if (priority == rocksdb::Cache::Priority::HIGH) {
| ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h: At global scope:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:195:25: error: ‘rocksdb::Cache::Handle’ has not been declared
195 | rocksdb::Cache::Handle** handle,
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:196:25: error: ‘rocksdb::Cache::Priority’ has not been declared
196 | rocksdb::Cache::Priority priority) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:197:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
197 | virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) override;
| ^~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:198:20: error: ‘rocksdb::Cache::Handle’ has not been declared
198 | virtual bool Ref(rocksdb::Cache::Handle* handle) override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:199:24: error: ‘rocksdb::Cache::Handle’ has not been declared
199 | virtual bool Release(rocksdb::Cache::Handle* handle,
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:221:32: error: ‘rocksdb::Cache::Handle’ has not been declared
221 | virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const override;
| ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:326:23: error: ‘Handle’ has not been declared
326 | virtual void* Value(Handle* handle) override;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:327:28: error: ‘Handle’ has not been declared
327 | virtual size_t GetCharge(Handle* handle) const override;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:328:28: error: ‘Handle’ has not been declared
328 | virtual uint32_t GetHash(Handle* handle) const override;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:331:32: error: ‘Handle’ has not been declared
331 | virtual DeleterFn GetDeleter(Handle* handle) const override;
| ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h: In member function ‘virtual int64_t RocksDBStore::get_cache_usage() const’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:487:53: error: invalid use of incomplete type ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
487 | return static_cast<int64_t>(bbt_opts.block_cache->GetUsage());
| ^~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h: In member function ‘virtual int64_t RocksDBStore::get_cache_usage(std::string) const’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:493:57: error: invalid use of incomplete type ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
493 | return static_cast<int64_t>(it->second.block_cache->GetUsage());
| ^~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
24 | class Cache; // defined in advanced_cache.h
| ^~~~~
In file included from /usr/include/c++/13/memory:80:
/usr/include/c++/13/bits/shared_ptr.h: In instantiation of ‘std::shared_ptr<_Tp> std::dynamic_pointer_cast(const shared_ptr<_Tp>&) [with _Tp = PriorityCache::PriCache; _Up = rocksdb::Cache]’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:506:62: required from here
/usr/include/c++/13/bits/shared_ptr.h:721:23: error: cannot ‘dynamic_cast’ ‘(& __r)->std::shared_ptr<rocksdb::Cache>::<anonymous>.std::__shared_ptr<rocksdb::Cache, __gnu_cxx::_S_atomic>::get()’ (of type ‘using std::__shared_ptr<rocksdb::Cache, __gnu_cxx::_S_atomic>::element_type = std::remove_extent<rocksdb::Cache>::type*’ {aka ‘class rocksdb::Cache*’}) to type ‘using std::shared_ptr<PriorityCache::PriCache>::element_type = using std::__shared_ptr<PriorityCache::PriCache, __gnu_cxx::_S_atomic>::element_type = std::remove_extent<PriorityCache::PriCache>::type*’ {aka ‘struct PriorityCache::PriCache*’} (source is a pointer to incomplete type)
721 | if (auto* __p = dynamic_cast<typename _Sp::element_type*>(__r.get()))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/kv/CMakeFiles/kv.dir/build.make:79: src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:6828: src/kv/CMakeFiles/kv.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make: *** [Makefile:149: all] Error 2
I'm usimg rocksdb 8.0.0.
Updated by Adam Kupczyk 12 months ago
- Project changed from bluestore to RADOS
Redirecting to general RADOS.
Updated by Radoslaw Zarzynski 12 months ago
- Status changed from New to Need More Info
I recall there was a bunch of libfmt-related fixes in main. Perhaph we missed bacporting some of them. Could by any chance try to build main
on your env?
Updated by Tomasz Kloczko 12 months ago
Radoslaw Zarzynski wrote:
I recall there was a bunch of libfmt-related fixes in main. Perhaph we missed bacporting some of them. Could by any chance try to build
main
on your env?
Just in case I'm using fmt 9.1.0.
I see in fmt +200 commits since last release. Are you talking about those commits?
Updated by Radoslaw Zarzynski 11 months ago
From the quincy's Journal.cc:142
:
$ git show v17.2.6:src/common/Journald.cc
...
class LogEntryEncoder : public EntryEncoderBase {
public:
void encode(const LogEntry& le)
{
meta_buf.clear();
fmt::format_to(std::back_inserter(meta_buf),
R"(PRIORITY={:d}
TIMESTAMP={}
CEPH_NAME={}
CEPH_RANK={}
CEPH_SEQ={}
CEPH_CHANNEL={}
MESSAGE
)",
clog_type_to_syslog_level(le.prio),
le.stamp.to_nsec(),
le.name.to_str(),
le.rank,
le.seq,
le.channel);
The entity_name_t
there is le.name
but in we call to_str()
on it. Weird.
The error is:
/usr/include/fmt/core.h:1777:29: required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const entity_name_t&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’ /usr/include/fmt/core.h:1901:77: required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, entity_name_t, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’ /usr/include/fmt/core.h:1918:31: required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<Args>::type>::type ...> fmt::v9::make_format_args(Args&& ...) [with Context = basic_format_context<appender, char>; Args = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}]’ /usr/include/fmt/core.h:3235:52: required from ‘OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer<char> >; T = {int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]’ /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:142:19: required from here
Anyway, looks the following commit is missed:
commit 6e223a6802152fc689ecdbf38fb4a410123844c7 Author: Kefu Chai <kchai@redhat.com> Date: Sat Aug 27 10:27:01 2022 +0800 common/Journald: include msg/msg_fmt.h so we can use the formatter defined for `entity_name_t`. in fmtlib v9, it is required to define a specialization for the formatted type even the type has an override of operator<<(). now that we already have a formatter for `entity_name_t`, let's just use it. this change should address the FTBFS when building with fmtlib v9. Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Would you mind to cherry-pick this and give the build a try?