On 11.05.2013 10:41, Stefan Weil wrote: > Am 10.05.2013 22:14, schrieb Igor Mitsyanko: >> On 29.03.2013 21:20, Stefan Weil wrote: >>> The cross i586-mingw32msvc-gcc 4.4.4 from Debian Squeeze does not >>> support >>> __sync_val_compare_and_swap by default. >>> >>> Using -march=i686 fixes that and should also result in better code. >>> >>> Signed-off-by: Stefan Weil >>> --- >>> >>> Maybe this modification is also needed for native gcc-4.4 and older >>> on Linux i386. If yes, we can move the new script code out of the >>> MinGW conditional code. >>> >>> Newer versions of gcc obviously use -march=i686 by default and >>> don't need the patch, but it also won't do any harm for those >>> versions. >>> >>> Stefan >>> >> mingw is built with --build=mingw32 and looks like it defaults to >> -march=i386 (I have gcc version 4.7.2). >> Default build on windows is broken without this patch, it should be >> applied to 1.5 probably. >> >> Tested-by: Igor Mitsyanko >> > With latest QEMU, -march=i486 is used and there should be no problem. > If there still is a problem, we have to look for the reason. > > Could you please post the output from configure? > > Regards, > Stefan > Right, looks like my configuration has __sync_fetch_and_and but doesn't have __sync_val_compare_and_swap. That's why configure check passes but build fails: LINK arm-softmmu/qemu-system-armw.exe ../migration.o: In function `migrate_finish_set_state': g:\qemu_develop_ws\qemu_upstream/migration.c:293: undefined reference to `__sync_val_compare_and_swap_4' g:\qemu_develop_ws\qemu_upstream/migration.c:293: undefined reference to `__sync_val_compare_and_swap_4' g:\qemu_develop_ws\qemu_upstream/migration.c:293: undefined reference to `__sync_val_compare_and_swap_4' collect2.exe: error: ld returned 1 exit status make[1]: *** [qemu-system-armw.exe] Error 1 make: *** [subdir-arm-softmmu] Error 2