gnuradio / gr-verilog

GNU General Public License v3.0
15 stars 9 forks source link

Maint 3.10 #12

Open noonien-d opened 1 year ago

noonien-d commented 1 year ago

Once again started over with a clean 3.10 template and fixed functionality afterwards.

I did not manage to get the binding generator running automatically without issues. Might be an issue due to my system (Ubuntu 22.04).

Besides that, the example apps work fine for me.

dkozel commented 1 year ago

Hi @noonien-d, Thanks for working on updating the module!

What issues are you seeing with the bindings generator? It'd be great to have this all working with the latest GNU Radio release.

noonien-d commented 1 year ago

What issues are you seeing with the bindings generator?

I get the following error when not suppressing it by setting catch_exceptions=True in bind_oot_file.py

INFO Parsing source file "/home/user/gr-3.10/gr-verilog/include/gnuradio/verilog/verilog_axi_ii.h" ... 
In file included from <built-in>:428:
<command line>:3:9: error: macro name must be an identifier
#define -U__PIE__ 1
        ^
1 error generated.
Traceback (most recent call last):
  File "/home/user/gr-3.10/gr-verilog/python/verilog/bindings/bind_oot_file.py", line 58, in <module>
    bg.gen_file_binding(args.filename)
  File "/usr/lib/python3/dist-packages/gnuradio/bindtool/core/generator.py", line 197, in gen_file_binding
    raise(e)
  File "/usr/lib/python3/dist-packages/gnuradio/bindtool/core/generator.py", line 184, in gen_file_binding
    header_info = parser.get_header_info(self.namespace)
  File "/usr/lib/python3/dist-packages/gnuradio/blocktool/core/parseheader_generic.py", line 330, in get_header_info
    decls = parser.parse(
  File "/usr/lib/python3/dist-packages/pygccxml/parser/__init__.py", line 51, in parse
    declarations = parser.read_files(files, compilation_mode)
  File "/usr/lib/python3/dist-packages/pygccxml/parser/project_reader.py", line 264, in read_files
    return self.__parse_file_by_file(files)
  File "/usr/lib/python3/dist-packages/pygccxml/parser/project_reader.py", line 292, in __parse_file_by_file
    decls = reader.read_file(header)
  File "/usr/lib/python3/dist-packages/pygccxml/parser/source_reader.py", line 303, in read_file
    return self.read_cpp_source_file(source_file)
  File "/usr/lib/python3/dist-packages/pygccxml/parser/source_reader.py", line 322, in read_cpp_source_file
    xml_file = self.create_xml_file(ffname)
  File "/usr/lib/python3/dist-packages/pygccxml/parser/source_reader.py", line 263, in create_xml_file
    raise RuntimeError(
RuntimeError: Error occurred while running CASTXML xml file does not exist
make[2]: *** [python/verilog/bindings/CMakeFiles/verilog_axi_ii_python.cc_regen_bindings.dir/build.make:73: ../python/verilog/bindings}/verilog_axi_ii_python.cc] Error 1
make[1]: *** [CMakeFiles/Makefile2:407: python/verilog/bindings/CMakeFiles/verilog_axi_ii_python.cc_regen_bindings.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
freddagg commented 1 year ago

On Ubuntu 20.04.6 LTS / Python 3.8.10

Based on the changes from noonien-d/maint-3.10 branch, with catch_exceptions=True in bind_oot_file.py

I also see the #define -UPIE 1 issue. This might be related to Position Independent Executable (PIE) setting in CMAKE I have been unable to get to the bottom of.

gr-verilog-build-issue.txt