You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm building gr-limesdr gr-3.10 branch in a recently updated Arch Linux and I'm getting compile errors in all the GR_LOG_INFO calls that use boost::format. Probably the codebase should be updated to use the new GNU Radio 3.10 logging, which is based on fmt. Example.
$ make -j$(nproc)
[ 7%] Building CXX object lib/CMakeFiles/gnuradio-limesdr.dir/device_handler.cc.o
[ 15%] Generating documentation with doxygen
[ 30%] Building CXX object lib/CMakeFiles/gnuradio-limesdr.dir/logging.cc.o
[ 30%] Building CXX object lib/CMakeFiles/gnuradio-limesdr.dir/source_impl.cc.o
[ 46%] Building CXX object lib/CMakeFiles/gnuradio-limesdr.dir/sink_impl.cc.o
[ 46%] Generating __init__.pyc
warning: Invalid value for 'FILTER_PATTERNS' tag at line 784, file /home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile: Values in list '*.py="/home/daniel/gr-limesdr"/doc/doxygen/other/doxypy.py' are not properly space or comma separated
warning: Tag 'COLS_IN_ALPHA_INDEX' at line 877 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'HTML_TIMESTAMP' at line 983 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'FORMULA_TRANSPARENT' at line 1205 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'LATEX_SOURCE_CODE' at line 1403 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'CLASS_DIAGRAMS' at line 1684 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'DOT_FONTNAME' at line 1714 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'DOT_FONTSIZE' at line 1719 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'DOT_TRANSPARENT' at line 1868 of file '/home/daniel/gr-limesdr/build/docs/doxygen/Doxyfile' has become obsolete.
To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
error: Illegal format for option FILTER_PATTERNS, no equal sign ('=') specified for item '/doc/doxygen/other/doxypy.py'
[ 46%] Built target pygen_python_a0895e707469bc82fb9da6c3afd53fb8
/home/daniel/gr-limesdr/include/limesdr/rfe.h:37: warning: Found non-existing group 'limesdr' for the command '@ingroup', ignoring command
/home/daniel/gr-limesdr/include/limesdr/source.h:35: warning: Found non-existing group 'limesdr' for the command '@ingroup', ignoring command
[ 46%] Built target doxygen_target
In file included from /usr/include/fmt/format.h:41,
from /usr/include/fmt/core.h:5,
from /usr/include/spdlog/fmt/fmt.h:28,
from /usr/include/spdlog/common.h:50,
from /usr/include/gnuradio/logger.h:37,
from /home/daniel/gr-limesdr/lib/device_handler.h:26,
from /home/daniel/gr-limesdr/lib/device_handler.cc:21:
/usr/include/fmt/base.h: In instantiation of ‘static void fmt::v11::detail::value<Context>::format_custom_arg(void*, typename Context::parse_context_type&, Context&) [with T = boost::basic_format<char>; Formatter = fmt::v11::formatter<boost::basic_format<char> >; Context = fmt::v11::context; typename Context::parse_context_type = fmt::v11::basic_format_parse_context<char>]’:
/usr/include/fmt/base.h:1383:19: required from ‘fmt::v11::detail::value<Context>::value(T&) [with T = const boost::basic_format<char>; Context = fmt::v11::context]’
1383 | custom.format = format_custom_arg<
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
1384 | value_type, typename Context::template formatter_type<value_type>>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/fmt/base.h:1647:41: required from ‘constexpr fmt::v11::detail::value<Context> fmt::v11::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v11::context; T = const boost::basic_format<char>; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’
1647 | return {arg_mapper<Context>().map(val)};
| ^
/usr/include/fmt/base.h:2018:74: required from ‘constexpr fmt::v11::detail::format_arg_store<Context, NUM_ARGS, 0, DESC> fmt::v11::make_format_args(T& ...) [with Context = context; T = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >}; long unsigned int NUM_ARGS = 1; long unsigned int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15; typename std::enable_if<(NUM_NAMED_ARGS == 0), int>::type <anonymous> = 0]’
2018 | return {{detail::make_arg<NUM_ARGS <= detail::max_packed_args, Context>(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
2019 | args)...}};
| ~~~~~
/usr/include/spdlog/logger.h:328:75: required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; spdlog::string_view_t = fmt::v11::basic_string_view<char>]’
328 | fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/spdlog/logger.h:80:13: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v11::format_string<T ...>, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; fmt::v11::format_string<T ...> = fmt::v11::basic_format_string<char, const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&>]’
80 | log_(loc, lvl, details::to_string_view(fmt), std::forward<Args>(args)...);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:98:12: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>; typename std::enable_if<(! spdlog::is_convertible_to_any_format_string<const T&>::value), int>::type <anonymous> = 0]’
98 | log(loc, lvl, "{}", msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:90:12: required from ‘void spdlog::logger::log(spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>]’
90 | log(source_loc{}, lvl, msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:243:12: required from ‘void spdlog::logger::info(const T&) [with T = boost::basic_format<char>]’
243 | log(level::info, msg);
| ~~~^~~~~~~~~~~~~~~~~~
/home/daniel/gr-limesdr/lib/device_handler.cc:62:9: required from here
62 | GR_LOG_INFO(d_logger, boost::format("LimeSuite version: %s") % LMS_GetLibraryVersion());
| ^
/usr/include/fmt/base.h:1402:29: error: passing ‘const fmt::v11::formatter<boost::basic_format<char> >’ as ‘this’ argument discards qualifiers [-fpermissive]
1402 | ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gnuradio/logger.h:323:10: note: in call to ‘decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) fmt::v11::formatter<boost::basic_format<char> >::format(const boost::format&, FormatContext&) [with FormatContext = fmt::v11::context; decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) = fmt::v11::basic_appender<char>; boost::format = boost::basic_format<char>]’
323 | auto format(const boost::format& bfmt, FormatContext& ctx)
| ^~~~~~
make[2]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/build.make:76: lib/CMakeFiles/gnuradio-limesdr.dir/device_handler.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/fmt/format.h:41,
from /usr/include/fmt/core.h:5,
from /usr/include/spdlog/fmt/fmt.h:28,
from /usr/include/spdlog/common.h:50,
from /usr/include/gnuradio/logger.h:37,
from /home/daniel/gr-limesdr/lib/logging.h:26,
from /home/daniel/gr-limesdr/lib/source_impl.cc:25:
/usr/include/fmt/base.h: In instantiation of ‘static void fmt::v11::detail::value<Context>::format_custom_arg(void*, typename Context::parse_context_type&, Context&) [with T = boost::basic_format<char>; Formatter = fmt::v11::formatter<boost::basic_format<char> >; Context = fmt::v11::context; typename Context::parse_context_type = fmt::v11::basic_format_parse_context<char>]’:
/usr/include/fmt/base.h:1383:19: required from ‘fmt::v11::detail::value<Context>::value(T&) [with T = const boost::basic_format<char>; Context = fmt::v11::context]’
1383 | custom.format = format_custom_arg<
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
1384 | value_type, typename Context::template formatter_type<value_type>>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/fmt/base.h:1647:41: required from ‘constexpr fmt::v11::detail::value<Context> fmt::v11::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v11::context; T = const boost::basic_format<char>; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’
1647 | return {arg_mapper<Context>().map(val)};
| ^
/usr/include/fmt/base.h:2018:74: required from ‘constexpr fmt::v11::detail::format_arg_store<Context, NUM_ARGS, 0, DESC> fmt::v11::make_format_args(T& ...) [with Context = context; T = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >}; long unsigned int NUM_ARGS = 1; long unsigned int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15; typename std::enable_if<(NUM_NAMED_ARGS == 0), int>::type <anonymous> = 0]’
2018 | return {{detail::make_arg<NUM_ARGS <= detail::max_packed_args, Context>(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
2019 | args)...}};
| ~~~~~
/usr/include/spdlog/logger.h:328:75: required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; spdlog::string_view_t = fmt::v11::basic_string_view<char>]’
328 | fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/spdlog/logger.h:80:13: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v11::format_string<T ...>, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; fmt::v11::format_string<T ...> = fmt::v11::basic_format_string<char, const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&>]’
80 | log_(loc, lvl, details::to_string_view(fmt), std::forward<Args>(args)...);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:98:12: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>; typename std::enable_if<(! spdlog::is_convertible_to_any_format_string<const T&>::value), int>::type <anonymous> = 0]’
98 | log(loc, lvl, "{}", msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:90:12: required from ‘void spdlog::logger::log(spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>]’
90 | log(source_loc{}, lvl, msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:243:12: required from ‘void spdlog::logger::info(const T&) [with T = boost::basic_format<char>]’
243 | log(level::info, msg);
| ~~~^~~~~~~~~~~~~~~~~~
/home/daniel/gr-limesdr/lib/source_impl.cc:246:5: required from here
246 | GR_LOG_INFO(
| ^
/usr/include/fmt/base.h:1402:29: error: passing ‘const fmt::v11::formatter<boost::basic_format<char> >’ as ‘this’ argument discards qualifiers [-fpermissive]
1402 | ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gnuradio/logger.h:323:10: note: in call to ‘decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) fmt::v11::formatter<boost::basic_format<char> >::format(const boost::format&, FormatContext&) [with FormatContext = fmt::v11::context; decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) = fmt::v11::basic_appender<char>; boost::format = boost::basic_format<char>]’
323 | auto format(const boost::format& bfmt, FormatContext& ctx)
| ^~~~~~
In file included from /usr/include/fmt/format.h:41,
from /usr/include/fmt/core.h:5,
from /usr/include/spdlog/fmt/fmt.h:28,
from /usr/include/spdlog/common.h:50,
from /usr/include/gnuradio/logger.h:37,
from /home/daniel/gr-limesdr/lib/logging.h:26,
from /home/daniel/gr-limesdr/lib/sink_impl.cc:25:
/usr/include/fmt/base.h: In instantiation of ‘static void fmt::v11::detail::value<Context>::format_custom_arg(void*, typename Context::parse_context_type&, Context&) [with T = boost::basic_format<char>; Formatter = fmt::v11::formatter<boost::basic_format<char> >; Context = fmt::v11::context; typename Context::parse_context_type = fmt::v11::basic_format_parse_context<char>]’:
/usr/include/fmt/base.h:1383:19: required from ‘fmt::v11::detail::value<Context>::value(T&) [with T = const boost::basic_format<char>; Context = fmt::v11::context]’
1383 | custom.format = format_custom_arg<
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
1384 | value_type, typename Context::template formatter_type<value_type>>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/fmt/base.h:1647:41: required from ‘constexpr fmt::v11::detail::value<Context> fmt::v11::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v11::context; T = const boost::basic_format<char>; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’
1647 | return {arg_mapper<Context>().map(val)};
| ^
/usr/include/fmt/base.h:2018:74: required from ‘constexpr fmt::v11::detail::format_arg_store<Context, NUM_ARGS, 0, DESC> fmt::v11::make_format_args(T& ...) [with Context = context; T = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >}; long unsigned int NUM_ARGS = 1; long unsigned int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15; typename std::enable_if<(NUM_NAMED_ARGS == 0), int>::type <anonymous> = 0]’
2018 | return {{detail::make_arg<NUM_ARGS <= detail::max_packed_args, Context>(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
2019 | args)...}};
| ~~~~~
/usr/include/spdlog/logger.h:328:75: required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; spdlog::string_view_t = fmt::v11::basic_string_view<char>]’
328 | fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/spdlog/logger.h:80:13: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v11::format_string<T ...>, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; fmt::v11::format_string<T ...> = fmt::v11::basic_format_string<char, const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&>]’
80 | log_(loc, lvl, details::to_string_view(fmt), std::forward<Args>(args)...);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:98:12: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>; typename std::enable_if<(! spdlog::is_convertible_to_any_format_string<const T&>::value), int>::type <anonymous> = 0]’
98 | log(loc, lvl, "{}", msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:90:12: required from ‘void spdlog::logger::log(spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>]’
90 | log(source_loc{}, lvl, msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:243:12: required from ‘void spdlog::logger::info(const T&) [with T = boost::basic_format<char>]’
243 | log(level::info, msg);
| ~~~^~~~~~~~~~~~~~~~~~
/home/daniel/gr-limesdr/lib/sink_impl.cc:262:9: required from here
262 | GR_LOG_INFO(
| ^
/usr/include/fmt/base.h:1402:29: error: passing ‘const fmt::v11::formatter<boost::basic_format<char> >’ as ‘this’ argument discards qualifiers [-fpermissive]
1402 | ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gnuradio/logger.h:323:10: note: in call to ‘decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) fmt::v11::formatter<boost::basic_format<char> >::format(const boost::format&, FormatContext&) [with FormatContext = fmt::v11::context; decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format<FormatContext>(bfmt.boost::basic_format<char>::str(), ctx)) = fmt::v11::basic_appender<char>; boost::format = boost::basic_format<char>]’
323 | auto format(const boost::format& bfmt, FormatContext& ctx)
| ^~~~~~
make[2]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/build.make:104: lib/CMakeFiles/gnuradio-limesdr.dir/source_impl.cc.o] Error 1
make[2]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/build.make:118: lib/CMakeFiles/gnuradio-limesdr.dir/sink_impl.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:251: lib/CMakeFiles/gnuradio-limesdr.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
The text was updated successfully, but these errors were encountered:
I'm building gr-limesdr
gr-3.10
branch in a recently updated Arch Linux and I'm getting compile errors in all theGR_LOG_INFO
calls that useboost::format
. Probably the codebase should be updated to use the new GNU Radio 3.10 logging, which is based on fmt. Example.The text was updated successfully, but these errors were encountered: