Hi folks.

I upgraded my Python from 3.10.5 with a pybind11
version 3.0.1 that has worked fine with GnuRadio
for years.

Then yesterday I upgraded my Python to 3.14.2 with
a fresh 'py -3 -m pip install pybind11' which is
version 3.0.2.

This has causes a lot of troubles in building some
GnuRadio .PYDs. Like when compiling
gr-digital/python/digital/bindings/ofdm_serializer_vcc_python.cc:

In file included from ofdm_serializer_vcc_python.cc:20:
In file included from 
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11/complex.h:12:
In file included from 
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11\pybind11.h:12:
In file included from 
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11\detail/class.h:12:
In file included from 
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11/attr.h:13:
In file included from 
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11\detail/common.h:225:
f:\gv\VC_2026\VC\Tools\MSVC\14.50.35717\include\memory(2028,23): error: cannot cast 'gr::basic_block *' to 'typename shared_ptr<gr::digital::ofdm_carrier_allocator_cvc>::element_type *'
(aka 'gr::digital::ofdm_carrier_allocator_cvc *') via virtual base 
'gr::tagged_stream_block'
 2028 |     const auto _Ptr = static_cast<typename 
shared_ptr<_Ty1>::element_type*>(_Other.get());
      |                       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/gv/Python314/Lib/site-packages/pybind11/include\pybind11\detail/holder_caster_foreign_helpers.h(40,32): note: in instantiation of function template specialization 'std::static_pointer_cast<gr::digital::ofdm_carrier_allocator_cvc, gr::basic_block>' requested here
   40 |             *holder_out = std::static_pointer_cast<type>(existing);
      |                                ^
...

ofdm_serializer_vcc_python.cc(57,10): note: in instantiation of function 
template specialization
      'pybind11::class_<gr::digital::ofdm_serializer_vcc, 
gr::tagged_stream_block,
std::shared_ptr<gr::digital::ofdm_serializer_vcc>>::def<std::shared_ptr<gr::digital::ofdm_serializer_vcc> (*)(const std::shared_ptr<gr::digital::ofdm_carrier_allocator_cvc> &, const std::basic_string<char> &,
   int, const std::basic_string<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::basic_string<char> &,
   int, const std::basic_string<char> &, bool), pybind11::detail::void_type (), 
pybind11::arg,
   pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, const char 
*>'
requested here
   57 |         .def(py::init((std::shared_ptr<ofdm_serializer_vcc>(*)(
      |          ^
1 error generated.

------------------------

So I ended up with:
  pip3 uninstall pybind11
  pip3 install pybind11==3.0.1

Has anybody else seen such issues with pybind11 3.0.2?


--
--gv

Reply via email to