I help with packaging gnuradio in pkgsrc.   We have 3.10.12.0 which
seems to be the latest, even though it's from February 2025.

Sometime after December 2025, the gnuradio-digital package started
having build errors - except perhaps on aarch64.

The problem is a compiler objection to casting pointers:
  cannot convert from pointer to base class 'gr::basic_block' to pointer to 
derived class 'gr::digital::ofdm_carrier_allocator_cvc' via virtual base 
'gr::tagged_stream_block'

I have pybind11 3.0.2 installed.  After downgrading to 3.0.1, it builds
ok.  (I am not running it; this is just building.)

I wonder:
  - is 3.10.12.0 really the latest release?
  - might this be fixed already?
  - is anyone else running into this?



=> Bootstrap dependency digest>=20211023: found digest-20220214
===> Checking for vulnerabilities in gnuradio-digital-3.10.12.0nb9
===> Building for gnuradio-digital-3.10.12.0nb9
[1/2] Building CXX object 
gr-digital/python/digital/bindings/CMakeFiles/digital_python.dir/ofdm_serializer_vcc_python.cc.o
FAILED: [code=1] 
gr-digital/python/digital/bindings/CMakeFiles/digital_python.dir/ofdm_serializer_vcc_python.cc.o
 
/tmp/work/ham/gnuradio-digital/work/.cwrapper/bin/c++ -DBOOST_ATOMIC_DYN_LINK 
-DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB 
-DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK 
-DBOOST_DATE_TIME_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK 
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB 
-DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB 
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB 
-DHAVE_BUILTIN_PARITYL -Ddigital_python_EXPORTS 
-I/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/cmake-pkgsrc-build/gr-digital/python/digital/bindings
 
-I/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bindings/../../../lib
 
-I/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bindings/../../../include
 
-I/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/lib/../include
 -isystem /usr/pkg/lib/python3.13/site-packages/pybind11/include -isystem 
/usr/pkg/include/python3.13 -isystem 
/tmp/work/ham/gnuradio-digital/work/.buildlink/include -isystem 
/tmp/work/ham/gnuradio-digital/work/.buildlink/include/python3.13 -isystem 
/usr/pkg/lib/python3.13/site-packages/numpy/_core/include -O2 -pthread 
-I/usr/pkg/include -I/usr/include -I/usr/pkg/include/portaudio2 
-I/usr/pkg/include/cppunit -DSPDLOG_FMT_EXTERNAL -I/usr/pkg/include/python3.13 
-I/usr/X11R7/include -I/usr/pkg/include/glib-2.0 
-I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -Dz_off_t=long 
-I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz 
-I/usr/X11R7/include/libdrm -pthread -fvisibility=hidden -Wsign-compare -Wall 
-Wno-uninitialized -Wignored-qualifiers -Wcast-qual -fcx-limited-range 
-Wno-unused-command-line-argument -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden 
-Wno-unused-variable -flto=auto -fno-fat-lto-objects -MD -MT 
gr-digital/python/digital/bindings/CMakeFiles/digital_python.dir/ofdm_serializer_vcc_python.cc.o
 -MF 
gr-digital/python/digital/bindings/CMakeFiles/digital_python.dir/ofdm_serializer_vcc_python.cc.o.d
 -o 
gr-digital/python/digital/bindings/CMakeFiles/digital_python.dir/ofdm_serializer_vcc_python.cc.o
 -c 
/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bindings/ofdm_serializer_vcc_python.cc
In file included from /usr/include/g++/memory:84,
                 from 
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/common.h:225,
                 from 
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/attr.h:13,
                 from 
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/class.h:12,
                 from 
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:12,
                 from 
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/complex.h:12,
                 from 
/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bindings/ofdm_serializer_vcc_python.cc:20:
/usr/include/g++/bits/shared_ptr.h: In instantiation of 'std::shared_ptr<_Tp> 
std::static_pointer_cast(const std::shared_ptr<_Tp>&) [with _Tp = 
gr::digital::ofdm_carrier_allocator_cvc; _Up = gr::basic_block]':
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/holder_caster_foreign_helpers.h:40:57:
   required from 'static decltype ((value->shared_from_this(), bool())) 
pybind11::detail::holder_caster_foreign_helpers::set_via_shared_from_this(type*,
 std::shared_ptr<_Tp>*) [with type = gr::digital::ofdm_carrier_allocator_cvc; 
decltype ((value->shared_from_this(), bool())) = bool]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/holder_caster_foreign_helpers.h:60:37:
   required from 'static bool 
pybind11::detail::holder_caster_foreign_helpers::set_foreign_holder(pybind11::handle,
 type*, std::shared_ptr<_Tp>*) [with type = 
gr::digital::ofdm_carrier_allocator_cvc]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/cast.h:1051:65: 
  required from 'bool pybind11::detail::copyable_holder_caster<type, 
std::shared_ptr<_Tp>, typename 
std::enable_if<pybind11::detail::copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled<type>::value,
 void>::type>::set_foreign_holder(pybind11::handle) [with type = 
gr::digital::ofdm_carrier_allocator_cvc; typename 
std::enable_if<pybind11::detail::copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled<type>::value,
 void>::type = void]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/type_caster_base.h:1207:82:
   required from 'bool 
pybind11::detail::type_caster_generic::load_impl(pybind11::handle, bool) [with 
ThisT = 
pybind11::detail::copyable_holder_caster<gr::digital::ofdm_carrier_allocator_cvc,
 std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>, void>]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/cast.h:980:90:  
 required from 'bool pybind11::detail::copyable_holder_caster<type, 
std::shared_ptr<_Tp>, typename 
std::enable_if<pybind11::detail::copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled<type>::value,
 void>::type>::load(pybind11::handle, bool) [with type = 
gr::digital::ofdm_carrier_allocator_cvc; typename 
std::enable_if<pybind11::detail::copyable_holder_caster_shared_ptr_with_smart_holder_support_enabled<type>::value,
 void>::type = void]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/cast.h:2171:51: 
  [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to 
disable ]
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:454:42:
   required from 'void pybind11::cpp_function::initialize(Func&&, Return 
(*)(Args ...), const Extra& ...) [with Func = 
pybind11::detail::initimpl::factory<Func, pybind11::detail::void_type (*)(), 
Return(Args ...)>::execute<pybind11::class_<gr::digital::ofdm_serializer_vcc, 
gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_serializer_vcc> >, 
{pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, 
pybind11::arg_v, const char*}>::<lambda(pybind11::detail::value_and_holder&, 
const std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char>&, int, const 
std::__cxx11::basic_string<char>&, bool)>; Return = void; Args = 
{pybind11::detail::value_and_holder&, const 
std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&, int, const std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >&, bool}; Extra = {pybind11::name, pybind11::is_method, 
pybind11::sibling, pybind11::detail::is_new_style_constructor, pybind11::arg, 
pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, const 
char*}]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:324:19:
   required from 'pybind11::cpp_function::cpp_function(Func&&, const Extra& 
...) [with Func = pybind11::detail::initimpl::factory<Func, 
pybind11::detail::void_type (*)(), Return(Args 
...)>::execute<pybind11::class_<gr::digital::ofdm_serializer_vcc, 
gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_serializer_vcc> >, 
{pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, 
pybind11::arg_v, const char*}>::<lambda(pybind11::detail::value_and_holder&, 
const std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char>&, int, const 
std::__cxx11::basic_string<char>&, bool)>; Extra = {pybind11::name, 
pybind11::is_method, pybind11::sibling, 
pybind11::detail::is_new_style_constructor, pybind11::arg, pybind11::arg_v, 
pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, const char*}; 
<template-parameter-1-3> = void]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:2249:22:
   required from 'pybind11::class_<type_, options>& pybind11::class_<type_, 
options>::def(const char*, Func&&, const Extra& ...) [with Func = 
pybind11::detail::initimpl::factory<Func, pybind11::detail::void_type (*)(), 
Return(Args ...)>::execute<pybind11::class_<gr::digital::ofdm_serializer_vcc, 
gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_serializer_vcc> >, 
{pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, 
pybind11::arg_v, const char*}>::<lambda(pybind11::detail::value_and_holder&, 
const std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char>&, int, const 
std::__cxx11::basic_string<char>&, bool)>; Extra = 
{pybind11::detail::is_new_style_constructor, pybind11::arg, pybind11::arg_v, 
pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, const char*}; type_ = 
gr::digital::ofdm_serializer_vcc; options = {gr::tagged_stream_block, 
std::shared_ptr<gr::digital::ofdm_serializer_vcc>}]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/init.h:388:15:
   required from 'void pybind11::detail::initimpl::factory<Func, 
pybind11::detail::void_type (*)(), Return(Args ...)>::execute(Class&, const 
Extra& ...) && [with Class = pybind11::class_<gr::digital::ofdm_serializer_vcc, 
gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_serializer_vcc> >; 
Extra = {pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, 
pybind11::arg_v, const char*}; Func = 
std::shared_ptr<gr::digital::ofdm_serializer_vcc> (*)(const 
std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char>&, int, const 
std::__cxx11::basic_string<char>&, bool); Return = 
std::shared_ptr<gr::digital::ofdm_serializer_vcc>; Args = {const 
std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&, int, const std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >&, bool}]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:2300:32:
   required from 'pybind11::class_<type_, options>& pybind11::class_<type_, 
options>::def(pybind11::detail::initimpl::factory<Args ...>&&, const Extra& 
...) [with Args = {std::shared_ptr<gr::digital::ofdm_serializer_vcc> (*)(const 
std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&, int, const std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >&, bool), pybind11::detail::void_type (*)(), 
std::shared_ptr<gr::digital::ofdm_serializer_vcc>(const 
std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, const 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>&, int, const std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >&, bool), pybind11::detail::void_type()}; Extra = 
{pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, 
pybind11::arg_v, const char*}; type_ = gr::digital::ofdm_serializer_vcc; 
options = {gr::tagged_stream_block, 
std::shared_ptr<gr::digital::ofdm_serializer_vcc>}]'
/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bindings/ofdm_serializer_vcc_python.cc:69:45:
   required from here
/usr/include/g++/bits/shared_ptr.h:584:23: error: cannot convert from pointer 
to base class 'gr::basic_block' to pointer to derived class 
'gr::digital::ofdm_carrier_allocator_cvc' via virtual base 
'gr::tagged_stream_block'
  584 |       return _Sp(__r, static_cast<typename 
_Sp::element_type*>(__r.get()));
      |                       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option 
'-Wno-unused-command-line-argument' may have been intended to silence earlier 
diagnostics
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make[1]: stopped in /n0/gdt/pkgsrc-current/pkgsrc/ham/gnuradio-digital
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/ham/gnuradio-digital

 

Reply via email to