PrincetonUniversity / prga

Open-source FPGA research and prototyping framework.
http://parallel.princeton.edu/prga/
BSD 3-Clause "New" or "Revised" License
192 stars 24 forks source link

When compiling under msys2, I encountered the following error #26

Closed dingzex closed 2 years ago

dingzex commented 2 years ago

When compiling under msys2, I encountered the following error:

[ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdApi.c.obj [ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdAuto.c.obj [ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdFlag.c.obj In file included from D:/prga/vtr/abc/src/base/cmd/cmdAuto.c:33: D:/prga/vtr/abc/lib/pthread.h:308:8: error: redefinition of 'struct timespec' 308 | struct timespec { | ^~~~ In file included from C:/msys64/mingw64/include/time.h:25, from D:/prga/vtr/abc/src/misc/util/abc_global.h:72, from D:/prga/vtr/abc/src/base/cmd/cmdAuto.c:25: C:/msys64/mingw64/include/sys/timeb.h:101:8: note: originally defined here 101 | struct timespec { | ^~~~ [ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdHist.c.obj make[3]: [abc/CMakeFiles/libabc.dir/build.make:1592: abc/CMakeFiles/libabc.dir/src/base/cmd/cmdAuto.c.obj] Error 1 make[3]: Waiting for unfinished jobs.... [ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdLoad.c.obj [ 11%] Building C object abc/CMakeFiles/libabc.dir/src/base/cmd/cmdPlugin.c.obj make[2]: [CMakeFiles/Makefile2:935: abc/CMakeFiles/libabc.dir/all] Error 2 make[1]: [Makefile:146: all] Error 2 make: *** [Makefile:82: all] Error 2

Administrator@WIN-C4T6417PL75 MINGW64 /d/prga

How should this problem be eliminated?

angl-dev commented 2 years ago

Hi @dingzex . I am not very familiar with msys2/mingw64, but running VTR and most open-source tools on windows environments are notoriously painful. Your problem seems to be caused by a definition confliction in a system header file and ABC's included header file. I would recommend you try to use virtualbox to run a full linux OS, rather than running on a windows software which offers much less compatibility than a virtual OS.

dingzex commented 2 years ago

Thank you for your reply .

dingzex commented 2 years ago

According to what you said, I installed it on the virtual machine. It seems that the installation succeeded, but I found the following problems:

ding@ASIP-eFPGA:~/prga$ ./envscr/activate [INFO] Setting $PATH [INFO] 'envscr/activate' executed ... ~/prga ~/prga [INFO] Finding 'pyenv' [INFO] Activating local-installed pyenv [INFO] Local-installed pyenv activated [INFO] Python 3.8.2 selected [INFO] Entering Python virtualenv in a subshell ... Launching subshell in virtual environment... ding@ASIP-eFPGA:~/prga/prga.py$ . /home/ding/prga/prga.py/.venv/bin/activate (prga.py) ding@ASIP-eFPGA:~/prga/prga.py$ cd /home/ding/prga (prga.py) ding@ASIP-eFPGA:~/prga$ make -C examples/fpga/magic/k4_N2_8x8 make: 进入目录“/home/ding/prga/examples/fpga/magic/k4_N2_8x8” python -O build.py ctx.pkl | tee build.log Traceback (most recent call last): File "build.py", line 1, in from prga import File "/home/ding/prga/prga.py/prga/init.py", line 14, in from .netlist import Const, TimingArcType File "/home/ding/prga/prga.py/prga/netlist/init.py", line 5, in from .module import Module, Instance, HierarchicalInstance, ModuleUtils File "/home/ding/prga/prga.py/prga/netlist/module/init.py", line 7, in from .util import ModuleUtils File "/home/ding/prga/prga.py/prga/netlist/module/util.py", line 13, in from networkx import NetworkXError, DiGraph, MultiDiGraph File "/home/ding/prga/prga.py/.venv/lib/python3.8/site-packages/networkx/init.py", line 59, in from networkx import utils File "/home/ding/prga/prga.py/.venv/lib/python3.8/site-packages/networkx/utils/init.py", line 2, in from networkx.utils.decorators import File "/home/ding/prga/prga.py/.venv/lib/python3.8/site-packages/networkx/utils/decorators.py", line 11, in import re, gzip, bz2 File "/home/ding/prga/pyenv/versions/3.8.2/lib/python3.8/bz2.py", line 19, in from _bz2 import BZ2Compressor, BZ2Decompressor ModuleNotFoundError: No module named '_bz2' ../../Makefile.in:33: recipe for target 'ctx.pkl' failed make: *** [ctx.pkl] Error 1 make: 离开目录“/home/ding/prga/examples/fpga/magic/k4_N2_8x8” (prga.py) ding@ASIP-eFPGA:~/prga$ exit exit [INFO] Leaving Python virtualenv ... [INFO] Reverting $PATH ~/prga [INFO] Thanks for using PRGA. We look forward to your next use :)

an you give me a hint?

dingzex commented 2 years ago

I tested three versions of the compiled operating system today: ubuntu v16. 0.4 failure ubuntu v18. 0.4 failure Ubuntu V20 succeeded It can be generated and simulated normally.

Thank you!

angl-dev commented 2 years ago

Hi @dingzex great! Thanks for sharing the experience!