Open luismgsilva opened 2 years ago
Hi @luiss-synopsys,
I also faced this issue when I configured toolchain without the option--with-cpu=archs
.
This is no QEMU issue. So far, QEMU does not implement hs38 instructions, which is the default cpu on hs toolchain.
If there is something to be done from QEMU on this front is to better verify elf headers to properly bail out.
@luiss-synopsys I already mentioned that the problem here is the ARC_MULTILIB_OPTIONS='cpu=archs'
which is not properly setting multilib to compile with archs cpu. If I am not mistaken, it should be ARC_MULTILIB_OPTIONS='-mcpu=archs'
.
The alternative is to change the default when building the toolchain to archs
, like @pavelvkozlov suggests. However, IMO it makes more sense to use the default untouched and properly set the cpu in DejaGNU environment. This will allow you to switch the cpu target in the testing environment without recompiling the toolchain.
The error due to unsupported instructions. ARC QEMU is qualified to work for next CPU configurations:
archs
or lower spechs5x
hs6x
Now, when you work with a full system simulation you need to make sure that:
Most probably, one of the above doesn't match.
Im having a issue when testing the hs gcc linux on full system. This problem doesn't happen every time. Yesterday with the same configuration i managed to execute the tests, but later on i was not able to. The issue is the following:
qemu-system-arc: ../../sources/qemu/target/arc/translate.c:378: arc_map_opcode: Assertion `"This should not happen" == 0' failed.
To build the toolchain i used the following command.
/scratch/luiss/builder/sources/hs-gnu-toolchain/configure --prefix=/scratch/luiss/builder/install/arc_gcc_linux/20221024 --target=arc --enable-linux ; make -j32
I module loaded the the toolchain build. I executed qemu with a linux image with the following command.
qemu-system-arc -M virt -cpu archs -nographic -no-reboot -netdev user,id=net0,hostfwd=tcp:127.0.0.1:7005-:21,hostfwd=tcp:127.0.0.1:7006-:23 -device virtio-net-device,netdev=net0 -kernel /scratch/luiss/testing/test/.bsf/.config/images/vmlinux
To execute the test I used the following command to make the connection and run the test itself
The JSON Format bellow represents all the versions used in the current execution.