Well, I somehow felt like it was a bit brutal and probably fixing the symptoms which is apparently the case. Looking more carefully, compile fails in : sh4-linux-user for function op_cmp_str_T0_T1 gcc optimization leads to a ret followed by a last assignement with a jump back. I guess dyngen hopes to find function epilogue as the last bytes. It's apparently the only function where it happens.
I found that adding gcc option "-fno-tree-dominator-opts" for sh4 target avoids this (I suppose) unwanted optimization. It may be a bit brutal again ( disabling too many optims or wrong ones). May be the op_cmp_str_T0_T1 function can be rewritten to something that avoids this optimization. Am I on a better track ? Bye Chris. On Feb 16, 2008 9:01 PM, Paul Brook <[EMAIL PROTECTED]> wrote: > On Saturday 16 February 2008, Christian Roue wrote: > > 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. > > You patch is wrong. The dyngen error is correct. > > Paul >