I tried to file a bug at the gitea, but it seems not to allow
registration.
In pkgsrc, we have a ham/gr-osmosdr package which is pretty
straightforward.  Recently we got a report that while it builds,
importing the python module fails, unless one uses gcc12 (instead of
10).   The README doesn't document a C++ language variant, but CMakeFile
is clear that it's c++11, which gcc10 supports just fine.
The symptom is:
  > python3.12
  Python 3.12.10 (main, May  9 2025, 12:01:51) [GCC 10.5.0] on netbsd10
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import osmosdr
  Traceback (most recent call last):
    File "/usr/pkg/lib/python3.12/site-packages/osmosdr/__init__.py", line 17, in <module>
      from .osmosdr_python import *
  ImportError: generic_type: type "sink" referenced unknown base type "gr::hier_block2"
  During handling of the above exception, another exception occurred:
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/pkg/lib/python3.12/site-packages/osmosdr/__init__.py", line 21, in <module>
      from .osmosdr_python import *
  ImportError: generic_type: type "sink" referenced unknown base type "gr::hier_block2"
So, my questions are:
  is C++11 really the required standard?
  is there some new code assuming a newer --std, and this only works
  with gcc12 because it defaults to newer?
  gnuradio itself seems to require c++20.  Is this "gnuradio header
  files need to be processed in c++20 mode, but they don't error if
  processed in c++11 mode"?
  gnuradio itself seems to require c++20.  Is this "C++ ABI is a mess
  and using headers that are valid c++11 with a c++11 compiler, won't
  interwork with code built in c++20 mode"?
  something else?
No comments:
Post a Comment