qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need help understanding assertion fail.


From: Wayne Li
Subject: Need help understanding assertion fail.
Date: Mon, 3 Feb 2020 10:37:57 -0600

Dear QEMU list members,

So we developed a virtual machine using the QEMU code.  This virtual machine emulates a certain custom-made computer that runs on a certain military platform.  All I can tell you about this virtual machine is that emulates a computer that has a PowerPC 7457 processor.  Anyway, we developed this virtual machine using QEMU on little endian machines (i.e. like your typical desktop running Windows).  What I'm working on right now is getting this virtual machine to work on a T4240-RDB which has a PowerPC e6500 processor.  The biggest roadblock I face when trying to get this to work relates to the fact that the T4240-RDB is a big-endian machine and transferring our code from a little-endian machine to a big-endian machine created a lot of problems due to a lot of bad practices the team made when they developed the virtual machine.

Anyway that's the background.  The specific problem I'm having right now is I get the following assertion error during some of the setup stuff our OS does post boot-up (the OS is also custom-made):

qemu_programs/qemu/tcg/ppc/tcg-target.inc.c:224: reloc_pc14_val: Assertion `disp == (int16_t) disp' failed.

Looking at the QEMU code, "disp" is the difference between two pointers named "target" and "pc".  I'm not sure exactly what either of those names mean.  And it looks like since the assertion is checking if casting "disp" as a short changes the value, it's checking if the "disp" value is too big?  I'm just not very sure what this assertion means.

Anyway, the thing is this problem has to be somehow related to the transfer of the code from a little-endian platform to a big-endian platform as our project works without any problem on little-endian platforms.  But I think it would be really helpful if I knew more about this assertion.  What exactly is trying to check for here and why?  Do you see how it could relate to endianism issues in any way?

-Thanks!, Wayne Li 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]