gcc4 and -fno-tree-ch did the trick for me, too.
-fno-tree-ch was mentioned earlyer on this list, to compile with gcc4 on OS X. But since gcc4 is still not in the default toolchain, I did not even try :(.

Seams that we have a problem with gcc3.3 and not gcc4 for once :)
The error behavement is similar on your machine. I also got bus error (Sometimes it did not reach the menu, too. I started to hit the 3 very early, so I could go right thru it... Early crashes always happened for me on MS-DOS 6.22 and DOS 7.

Tested it with DOS 6.22 and DOS 7 (win95). No Problems so far.

In the meanwhile I tracked down the whole thing a little bit. Debugging with GDB returns these messages when qemu (pure GCC3 build) crashes:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000034
0x000621e0 in tb_invalidate_phys_page_range (start=630485, end=630486, 
is_cpu_write_access=1) at /Volumes/Data/build/qemu/exec.c:491
491             tb2 = tb1->jmp_next[n1];

So one could assume that the problem is in exec.c - but some more compiling tests have shown, that GCC4 is required _only_ for cpu- exec.c. All other source files can be build with GCC3 and qemu will still run stable on Mac OS X (such a mixed build is probably faster than a pure GCC4 build). I feel indeed that the problem is somewhere in cpu-exec.c or one of its includes - maybe they init the data that exec.c crashes on. Hopefully I'm a bit luckier to find it tomorrow.

I hope Fabrice stumbles upon this.

Maybe we should make the Patch a little more selective with "ifeq ($ (CONFIG_DARWIN),yes)" and post it.
Don't know whether this affects other Platforms, too...

Yes, my patch was just a simple one for experimental purposes. It must not go into CVS since it breaks compilation with GCC3 or earlier. Despite the fact that GCC4 is required only for cpu-exec.c, I also think that building with GCC4 should be generally provided, since all emulated architectures compile cleanly with it (at least on Mac OS X).

Instead of requiring --disable-gcc-check, the configure script could write the option HAVE_GCC4=yes to config-host.mak, if it detects GCC4. The warning message could be kept. Makefile.target can then decide which CFLAGS should be used.

I could create such a patch if people agree.

Jo.


_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to