Hi all,
I tried to compile qemu cvs head on my x86_64 linux with gcc 4.1.2 using
--disable-gcc-check, I found compile fails as stated in configure before i
disabled gcc check..
Error message, points to a problem of dyngen not correctly detecting
function ends on i386 when last instruction is a jump. I applied following
change and successfully compiled/run qemu i386.  This extra test check for
a relative backward jump  to function exit ret,
gcc 4 apparently generates a few of these.

My small change to cvs head is :

--- dyngen.c       2008-02-13 18:54:36.000000000 +0100
+++ dyngen.c    2008-02-13 19:10:14.000000000 +0100
@@ -1474,7 +1474,7 @@
         len = p_end - p_start;
         if (len == 0)
             error("empty code for %s", name);
-        if (p_end[-1] == 0xc3) {
+        if (p_end[-1] == 0xc3 || p_end[-2] == 0xeb) {
             len--;
         } else {
             error("ret or jmp expected at the end of %s", name);

Bye
Chris.

Reply via email to