Project

General

Profile

Actions

Bug #57540

open

FMT Cmake code does not work on Ubuntu Kinetic with system libfmt

Added by Chris MacNaughton over 1 year ago. Updated over 1 year ago.

Status:
Fix Under Review
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

libfmt 9 has been accepted into Ubuntu Kinetic and Ceph's usage of fmt is incompatible

Actions #1

Updated by Chris MacNaughton over 1 year ago

When trying to build with libfmt 9, the build fails with this error:

/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 = std::__exception_ptr::exception_ptr&]’:                
/usr/include/fmt/core.h:1753:29:   required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [wi
th bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail
::type::custom_type; T = std::__exception_ptr::exception_ptr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1877:77:   required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...
) [with T = {std::__exception_ptr::exception_ptr&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {
std::__exception_ptr::exception_ptr}]’                                                                                        
/usr/include/fmt/core.h:1894:38:   required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typenam
e std::remove_reference<Args>::type>::type ...> fmt::v9::make_format_args(Args&& ...) [with Context = basic_format_context<app
ender, char>; Args = {std::__exception_ptr::exception_ptr&}]’                                                                 
/usr/include/fmt/core.h:3192:52:   required from ‘OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with O
utputIt = seastar::internal::log_buf::inserter_iterator; T = {std::__exception_ptr::exception_ptr}; typename std::enable_if<de
tail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, 
std::__exception_ptr::exception_ptr>]’                                                                                        
/home/ubuntu/packaging/ceph/src/seastar/include/seastar/util/log.hh:225:42:   required from ‘void seastar::logger::log(seastar
::log_level, format_info, Args&& ...) [with Args = {std::__exception_ptr::exception_ptr}]’                                    
/home/ubuntu/packaging/ceph/src/seastar/include/seastar/util/log.hh:338:12:   required from ‘void seastar::logger::warn(format
_info, Args&& ...) [with Args = {std::__exception_ptr::exception_ptr}]’                                                       
/home/ubuntu/packaging/ceph/src/seastar/src/core/reactor_backend.cc:238:36:   required from here                              
/usr/include/fmt/core.h:1733: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                                                            
 1733 |       formattable,                                                                                                    
      |       ^~~~~~~~~~~                                                                                                     
/usr/include/fmt/core.h:1733:7: note: ‘formattable’ evaluates to false                                                        
make[3]: *** [src/seastar/CMakeFiles/seastar.dir/build.make:133: src/seastar/CMakeFiles/seastar.dir/src/core/reactor_backend.c
c.o] Error 1                                                                                                                  
make[3]: *** Waiting for unfinished jobs....
Actions #2

Updated by Casey Bodley over 1 year ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 48233
Actions

Also available in: Atom PDF