|
From: | Stefan Weil |
Subject: | Re: [Qemu-devel] QEMU 2.4 for Windows - current status |
Date: | Wed, 05 Aug 2015 22:30:15 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 |
Am 05.08.2015 um 20:39 schrieb Liviu Ionescu:
On 05 Aug 2015, at 19:56, Paolo Bonzini <address@hidden> wrote: ... I am not sure why things break for Stefan...I confirm Stefan's conclusion, neither in my configuration adding #include "qemu-common.h" ... in cpu-exec.c makes any difference. however adding: #if defined(_WIN64) #ifdef sigsetjmp #undef sigsetjmp #endif #define sigsetjmp(env, savesigs) _setjmp(env, NULL) #endif ... fixes the problem, my custom QEMU happily blinks the LEDs on Win 8.1 64-bits (see below). perhaps a headers check would be helpful, such mysterious behaviours usually back fire at a certain point. regards, Liviu
http://qemu.weilnetz.de/test/cpu-exec.i shows the result of the C preprocessor: cpu-exec.c gets QEMU's os-win32.h with our definition of setjmp early, but the system header file setjmp.h is included later, and that file re-defines our definitions. Including setjmp.h from os-win32.h would solve the problem, but I think there is a better solution. I am planning to remove the special definitions for _WIN64 from os-win32.h and add them to cpu-exec.c, similar to the code above (which can be shortened a little) but with some comment lines added. As I already said, this modification is needed for all versions of QEMU, and it will stay unfixed in 2.4.0 which is nearly finished. Regards Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |