gnuradio-digital build failure, newly appearing
Greg Troxel <[email protected]> Sat, 14 Mar 2026 10:07:46 -0400
| Newsgroups | gmane.comp.gnu.radio.general |
|---|---|
| Message-ID | <[email protected]> |
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?
=3D> Bootstrap dependency digest>=3D20211023: found digest-20220214
=3D=3D=3D> Checking for vulnerabilities in gnuradio-digital-3.10.12.0nb9
=3D=3D=3D> Building for gnuradio-digital-3.10.12.0nb9
[1/2] Building CXX object gr-digital/python/digital/bindings/CMakeFiles/dig=
ital_python.dir/ofdm_serializer_vcc_python.cc.o
FAILED: [code=3D1] gr-digital/python/digital/bindings/CMakeFiles/digital_py=
thon.dir/ofdm_serializer_vcc_python.cc.o=20
/tmp/work/ham/gnuradio-digital/work/.cwrapper/bin/c++ -DBOOST_ATOMIC_DYN_LI=
NK -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB -DBO=
OST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK =
-DBOOST_DATE_TIME_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_PROGRAM_O=
PTIONS_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DBOOST_THREAD_DY=
N_LINK -DBOOST_THREAD_NO_LIB -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DBOOST_U=
NIT_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/gn=
uradio-3.10.12.0/gr-digital/python/digital/bindings/../../../lib -I/tmp/wor=
k/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/digital/bi=
ndings/../../../include -I/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10=
.12.0/gr-digital/lib/../include -isystem /usr/pkg/lib/python3.13/site-packa=
ges/pybind11/include -isystem /usr/pkg/include/python3.13 -isystem /tmp/wor=
k/ham/gnuradio-digital/work/.buildlink/include -isystem /tmp/work/ham/gnura=
dio-digital/work/.buildlink/include/python3.13 -isystem /usr/pkg/lib/python=
3.13/site-packages/numpy/_core/include -O2 -pthread -I/usr/pkg/include -I/u=
sr/include -I/usr/pkg/include/portaudio2 -I/usr/pkg/include/cppunit -DSPDLO=
G_FMT_EXTERNAL -I/usr/pkg/include/python3.13 -I/usr/X11R7/include -I/usr/pk=
g/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/=
include -Dz_off_t=3Dlong -I/usr/pkg/include/freetype2 -I/usr/pkg/include/ha=
rfbuzz -I/usr/X11R7/include/libdrm -pthread -fvisibility=3Dhidden -Wsign-co=
mpare -Wall -Wno-uninitialized -Wignored-qualifiers -Wcast-qual -fcx-limite=
d-range -Wno-unused-command-line-argument -DNDEBUG -std=3Dc++17 -fPIC -fvis=
ibility=3Dhidden -Wno-unused-variable -flto=3Dauto -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/CMakeFile=
s/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/p=
ython/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/includ=
e/pybind11/detail/common.h:225,
from /usr/pkg/lib/python3.13/site-packages/pybind11/includ=
e/pybind11/attr.h:13,
from /usr/pkg/lib/python3.13/site-packages/pybind11/includ=
e/pybind11/detail/class.h:12,
from /usr/pkg/lib/python3.13/site-packages/pybind11/includ=
e/pybind11/pybind11.h:12,
from /usr/pkg/lib/python3.13/site-packages/pybind11/includ=
e/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<_T=
p> std::static_pointer_cast(const std::shared_ptr<_Tp>&) [with _Tp =3D gr::=
digital::ofdm_carrier_allocator_cvc; _Up =3D gr::basic_block]':
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/hold=
er_caster_foreign_helpers.h:40:57: required from 'static decltype ((value=
->shared_from_this(), bool())) pybind11::detail::holder_caster_foreign_help=
ers::set_via_shared_from_this(type*, std::shared_ptr<_Tp>*) [with type =3D =
gr::digital::ofdm_carrier_allocator_cvc; decltype ((value->shared_from_this=
(), bool())) =3D bool]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/detail/hold=
er_caster_foreign_helpers.h:60:37: required from 'static bool pybind11::d=
etail::holder_caster_foreign_helpers::set_foreign_holder(pybind11::handle, =
type*, std::shared_ptr<_Tp>*) [with type =3D gr::digital::ofdm_carrier_allo=
cator_cvc]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/cast.h:1051=
:65: required from 'bool pybind11::detail::copyable_holder_caster<type, s=
td::shared_ptr<_Tp>, typename std::enable_if<pybind11::detail::copyable_hol=
der_caster_shared_ptr_with_smart_holder_support_enabled<type>::value, void>=
::type>::set_foreign_holder(pybind11::handle) [with type =3D gr::digital::o=
fdm_carrier_allocator_cvc; typename std::enable_if<pybind11::detail::copyab=
le_holder_caster_shared_ptr_with_smart_holder_support_enabled<type>::value,=
void>::type =3D 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 =3D pybind11::detai=
l::copyable_holder_caster<gr::digital::ofdm_carrier_allocator_cvc, std::sha=
red_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, st=
d::shared_ptr<_Tp>, typename std::enable_if<pybind11::detail::copyable_hold=
er_caster_shared_ptr_with_smart_holder_support_enabled<type>::value, void>:=
:type>::load(pybind11::handle, bool) [with type =3D gr::digital::ofdm_carri=
er_allocator_cvc; typename std::enable_if<pybind11::detail::copyable_holder=
_caster_shared_ptr_with_smart_holder_support_enabled<type>::value, void>::t=
ype =3D void]'
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/cast.h:2171=
:51: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=
=3D0 to disable ]
/usr/pkg/lib/python3.13/site-packages/pybind11/include/pybind11/pybind11.h:=
454:42: required from 'void pybind11::cpp_function::initialize(Func&&, Re=
turn (*)(Args ...), const Extra& ...) [with Func =3D pybind11::detail::init=
impl::factory<Func, pybind11::detail::void_type (*)(), Return(Args ...)>::e=
xecute<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_pt=
r<gr::digital::ofdm_carrier_allocator_cvc>&, const std::__cxx11::basic_stri=
ng<char>&, int, const std::__cxx11::basic_string<char>&, bool)>; Return =3D=
void; Args =3D {pybind11::detail::value_and_holder&, const std::shared_ptr=
<gr::digital::ofdm_carrier_allocator_cvc>&, const std::__cxx11::basic_strin=
g<char, std::char_traits<char>, std::allocator<char> >&, int, const std::__=
cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, =
bool}; Extra =3D {pybind11::name, pybind11::is_method, pybind11::sibling, p=
ybind11::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 =3D pybind11::detail::initimpl::factory<Func, pybin=
d11::detail::void_type (*)(), Return(Args ...)>::execute<pybind11::class_<g=
r::digital::ofdm_serializer_vcc, gr::tagged_stream_block, std::shared_ptr<g=
r::digital::ofdm_serializer_vcc> >, {pybind11::arg, pybind11::arg_v, pybind=
11::arg_v, pybind11::arg_v, pybind11::arg_v, const char*}>::<lambda(pybind1=
1::detail::value_and_holder&, const std::shared_ptr<gr::digital::ofdm_carri=
er_allocator_cvc>&, const std::__cxx11::basic_string<char>&, int, const std=
::__cxx11::basic_string<char>&, bool)>; Extra =3D {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> =3D 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 =
=3D pybind11::detail::initimpl::factory<Func, pybind11::detail::void_type (=
*)(), Return(Args ...)>::execute<pybind11::class_<gr::digital::ofdm_seriali=
zer_vcc, gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_seriali=
zer_vcc> >, {pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg=
_v, pybind11::arg_v, const char*}>::<lambda(pybind11::detail::value_and_hol=
der&, const std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>&, cons=
t std::__cxx11::basic_string<char>&, int, const std::__cxx11::basic_string<=
char>&, bool)>; Extra =3D {pybind11::detail::is_new_style_constructor, pybi=
nd11::arg, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg=
_v, const char*}; type_ =3D gr::digital::ofdm_serializer_vcc; options =3D {=
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 =3D pybind11::class_<gr::digital::ofdm_serializ=
er_vcc, gr::tagged_stream_block, std::shared_ptr<gr::digital::ofdm_serializ=
er_vcc> >; Extra =3D {pybind11::arg, pybind11::arg_v, pybind11::arg_v, pybi=
nd11::arg_v, pybind11::arg_v, const char*}; Func =3D std::shared_ptr<gr::di=
gital::ofdm_serializer_vcc> (*)(const std::shared_ptr<gr::digital::ofdm_car=
rier_allocator_cvc>&, const std::__cxx11::basic_string<char>&, int, const s=
td::__cxx11::basic_string<char>&, bool); Return =3D std::shared_ptr<gr::dig=
ital::ofdm_serializer_vcc>; Args =3D {const std::shared_ptr<gr::digital::of=
dm_carrier_allocator_cvc>&, const std::__cxx11::basic_string<char, std::cha=
r_traits<char>, std::allocator<char> >&, int, const std::__cxx11::basic_str=
ing<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 ...>&&, con=
st Extra& ...) [with Args =3D {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::allocat=
or<char> >&, int, const std::__cxx11::basic_string<char, std::char_traits<c=
har>, std::allocator<char> >&, bool), pybind11::detail::void_type (*)(), st=
d::shared_ptr<gr::digital::ofdm_serializer_vcc>(const std::shared_ptr<gr::d=
igital::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 =3D {pybind11::arg, pybind11::arg_v,=
pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, const char*}; type_ =3D=
gr::digital::ofdm_serializer_vcc; options =3D {gr::tagged_stream_block, st=
d::shared_ptr<gr::digital::ofdm_serializer_vcc>}]'
/tmp/work/ham/gnuradio-digital/work/gnuradio-3.10.12.0/gr-digital/python/di=
gital/bindings/ofdm_serializer_vcc_python.cc:69:45: required from here
/usr/include/g++/bits/shared_ptr.h:584:23: error: cannot convert from point=
er 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-a=
rgument' 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
=20