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