openrisc / orpsoc-cores

Core description files for FuseSoC
124 stars 79 forks source link

legacy_simlink.sh error #114

Closed lucasasselli closed 7 years ago

lucasasselli commented 7 years ago

I'm unable to run any system simulation using the latest version of fusesoc.

ERROR: Failed to build simulation model
ERROR: "/home/luca/dev/orpsoc-cores/systems/de0_nano/legacy_symlink.sh" exited with an error code.
ERROR: See stderr for details.

This error can be solved by removing "legacy_simlink.sh" for the system pre_build_scripts.

wallento commented 7 years ago

Does it give some more output when you run it with `--verbose``?

lucasasselli commented 7 years ago

Unfortunately it doesn't, the simulation doesn't even run. The script tries to link $BUILDROOT/src/de0_nano to $BUILDROOT/src/de0_nano_0, however the latter exist while the former doesn't.

olofk commented 7 years ago

This is strange. Looking at the script, it should only create the symlink if the source directory exists, so I don't understand why it fails. Disabling the script is fine as a workaround however, since the script is only used for backwards-compatibility with old versions of FuseSoC

lucasasselli commented 7 years ago

An interesting thing is that if I use an older version of fusesoc (the one provided with operisc/tutorials) everything works fine.

olofk commented 7 years ago

I just made some changes two days ago that could explain why FuseSoC aborts when the script fails. I still can't understand however why the script fails. Are you using FuseSoC 1.6.1 or the latest version from git?

lucasasselli commented 7 years ago

I'm using the latest version from git. If I run the script alone it works fine as expected.

It seems like the exception "subprocess.CalledProcessError" in fusesoc/fusesoc/utils.py is raised even if everything it's working fine.

olofk commented 7 years ago

With the latest git version, utils.py is not used for running scripts anymore. Instead, that is handled by the _run_scripts function in edatool.py. I think that code is correct though. It should only raise an exception when the script exits with a non-zero exit code.

Can you show me the terminal output when the script fails. Still trying to figure out what is going on here. It's especially strange as you say that the script works fine when it's run stand-alone

lucasasselli commented 7 years ago

Here's the terminal output:

WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::fifo:1.0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::vlog_tb_utils:0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::wb_sdram_ctrl:0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::ram_wb:0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::stream_utils:1.0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::elf-loader:0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::wb_altera_ddr_wrapper:0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::wb_intercon:1.0
WARN:  plusargs section is deprecated and will not be parsed by FuseSoC. Please migrate to parameters in ::wb_intercon:0
INFO:  Preparing ::adv_debug_sys:0
INFO:  Preparing ::altera_virtual_jtag:0
INFO:  Preparing ::elf-loader:0
INFO:  Preparing ::gpio:0
INFO:  Preparing ::i2c:1.13
INFO:  Preparing ::jtag_tap:1.13
INFO:  Preparing ::jtag_vpi:0-r2
INFO:  Preparing ::mor1kx:3.1
INFO:  Preparing ::or1k_bootloaders:0.9
INFO:  Preparing ::s25fl064p:1.7
INFO:  Preparing ::simple_spi:1.6
INFO:  Preparing ::uart16550:1.5.4
INFO:  Preparing ::verilog-arbiter:0-r1
INFO:  Preparing ::verilog_utils:0
INFO:  Preparing ::vlog_tb_utils:1.0
INFO:  Preparing ::wb_common:0
INFO:  Preparing ::wiredelay:0
INFO:  Preparing ::mt48lc16m16a2:0
INFO:  Preparing ::wb_bfm:1.0
INFO:  Preparing ::wb_intercon:1.0
INFO:  Preparing ::wb_ram:1.0
INFO:  Preparing ::wb_sdram_ctrl:0-r2
INFO:  Preparing ::de0_nano:0

INFO:  Running /home/luca/dev/orpsoc-cores/cores/elf-loader/check_libelf.sh
INFO:  Running /home/luca/dev/orpsoc-cores/systems/de0_nano/legacy_symlink.sh
/home/luca/dev/or1k-de10_lite-dev-env/de10_lite/build/de0_nano_0/src/de0_nano
/home/luca/dev/or1k-de10_lite-dev-env/de10_lite/build/de0_nano_0/src/de0_nano_0
ERROR: Failed to build simulation model
ERROR: "/home/luca/dev/orpsoc-cores/systems/de0_nano/legacy_symlink.sh" exited with an error code.
ERROR: See stderr for details.

Another interesting thing is that it works fine if I call fusesoc build de0_nano

olofk commented 7 years ago

Hurray! I found it. As usual it was a stupid silly mistake. If the legacy dir can't be found, it will exit with an error. Turns out it worked fine for me, as I had a local change that added exit 0 to the end. Sorry about that. Updating orpsoc-cores should hopefully fix your issue. Thanks again for reporting and testing

lucasasselli commented 7 years ago

Awesome!

olofk commented 7 years ago

Feel free to close the issue if it works now