[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Native MinGW build crashes when partitioning hard disk
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] Native MinGW build crashes when partitioning hard disk in guest |
Date: |
Sat, 01 Feb 2014 12:51:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Am 01.02.2014 11:47, schrieb Legorol:
> (I am reposting this as my first post seems to have fallen through the
> cracks.)
>
> I am building the official Qemu 1.7.0 release from source natively under
> MinGW for myself. I execute the i386 target. Qemu starts fine, but it
> crashes when I try to partition a 2G hard disk under an MS-DOS 6.22
> guest. Details of the build and reproducing the crash are below.
>
> The problem also occurs for me with the 1.6.2 release. The problem does
> not occur with these binaries from other people:
> Eric Lassauge's Qemu-1.6.0-windows.zip
> Prashant Satish's qemu-1.6.0-win32-sdl.tar.lzma
> Stefan Weil's qemu-w32-setup-20131128, qemu-w32-setup-20140118.exe
>
> The problem does not occur when I add the --enable-debug flag to
> configure! Whatever optimisation is removed as a result seems to avoid
> the crash.
>
> How can I troubleshoot what the problem is? What should I change about
> my build to solve the problem?
>
Hi,
I assume that this is caused by a known problem with coroutines (which
are used by QEMU's block operations) for Windows. Any file operation can
cause that crash. See this discussion for details:
http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg04197.html
The problem is caused by buggy code produced by the MinGW compilers when
optimisation is enabled. There exist several workarounds which fix the
problem:
* disable optimisation for coroutine-win32.c (that's what --enable-debug
does)
* disable the coroutine pool
* modify the code of function qemu_coroutine_switch in coroutine-win32.c
(that's what I use for my binaries)
Try this patch:
http://repo.or.cz/w/qemu/ar7.git/commitdiff/c777d5d62a729fd8b19847aaa0aad3d7a1f73f47
Regards
Stefan