Il 15/11/2012 19:01, Stefan Weil ha scritto: > Hi Paolo, > > this patch breaks QEMU on 32 and 64 bit hosts, native and with Wine. > It's easy to reproduce the SIGSEGV crash: just add a -snapshot option. > Obviously the critical code is executed only when this option was used.
I cannot reproduce this, so it must be an assembler or linker bug. Can you try the alternative code that is used for Mac OS X? Paolo > Here is a simple command line using Wine: > > wine i386-softmmu/qemu-system-i386 -L pc-bios -snapshot Makefile > > The disk image does not matter, so I just selected QEMU's Makefile. > > It looks like weak symbols are not really working with MinGW > (Blue Swirl previously pointed out that only ELF and a.out are > officially supported). > > I can see in the debugger that QEMU wants to call monitor_fdset_dup_fd_find > from qemu_close. > > In previous versions, this was just a dummy function returning 0. > Now, it is the function in monitor.c, but the address does not match > exactly, so the code addresses lines near the beginning of > monitor_fdset_dup_fd_find which does not work of course. > > A trivial workaround is calling default_fdset_dup_fd_find which > restores the old behaviour. I expect that all other weak functions > would show the same problem if they were used. > > Regards, > > Stefan > >