2011/8/18 Blue Swirl <blauwir...@gmail.com>: > On Tue, Aug 16, 2011 at 6:50 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: >> On 08/16/2011 05:45 AM, Stefan Hajnoczi wrote: >>> >>> Roy, >>> This stack trace does not reveal much. >>> >>> Is there any MinGW gcc user that has successfully built and run >>> qemu.git? >> >> I would be surprised if Stefan Weil hasn't. > > Builds and runs (under i386 chroot + Wine) here. It worked also in > Windows the last time I tried (2010). >
You may try running it in Windows. >>> Which version/architecture of Windows and which MinGW >>> version? > > Debian: > $ i586-mingw32msvc-gcc -v > Using built-in specs. > Target: i586-mingw32msvc > Configured with: > /build/buildd-gcc-mingw32_4.4.4-0.1+b1-amd64-aFhFbL/gcc-mingw32-4.4.4/build-tree/gcc-4.4.4/configure > --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' > --mandir='/usr/share/man' --infodir='/usr/share/info' > --sysconfdir=/etc --localstatedir=/var > --libexecdir='/usr/lib/gcc-mingw32' --disable-multilib > --enable-threads --enable-sjlj-exceptions > --enable-version-specific-runtime-libs --disable-shared > --target=i586-mingw32msvc --enable-languages=c,c++,fortran : > (reconfigured) > /build/buildd-gcc-mingw32_4.4.4-0.1+b1-amd64-aFhFbL/gcc-mingw32-4.4.4/build-tree/gcc-4.4.4/configure > --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' > --mandir='/usr/share/man' --infodir='/usr/share/info' > --sysconfdir=/etc --localstatedir=/var > --libexecdir='/usr/lib/gcc-mingw32' --disable-multilib > --enable-threads --enable-sjlj-exceptions > --enable-version-specific-runtime-libs --disable-shared > --target=i586-mingw32msvc --enable-languages=c,c++,fortran > Thread model: win32 > gcc version 4.4.4 (GCC) > > Compiled myself: > $ i686-mingw32msvc-gcc -v > Using built-in specs. > COLLECT_GCC=i686-mingw32msvc-gcc > COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-mingw32msvc/4.6.0/lto-wrapper > Target: i686-mingw32msvc > Configured with: ../configure --target=i686-mingw32msvc > --enable-targets=i686-mingw32msvc --disable-nls --disable-threads > --enable-languages=c --disable-shared --disable-libssp > --disable-multilib > Thread model: single > gcc version 4.6.0 20100925 (experimental) (GCC) > This is mine: Host OS: Windows XP SP3 configure line: ./configure --target-list="i386-softmmu x86_64-softmmu mips64el-softmmu" --audio-drv-list=sdl --audio-card-list=ac97,sb16,adlib --disable-linux-aio --enable-io-thread --enable-vnc-thread --disable-vnc-jpeg --disable-vnc-png --disable-kvm Install prefix c:/Program Files/Qemu BIOS directory c:/Program Files/Qemu binary directory c:/Program Files/Qemu library directory c:/Program Files/Qemu/lib include directory c:/Program Files/Qemu/include config directory c:/Program Files/Qemu Source path /usr/home/User/qemu C compiler gcc Host C compiler gcc CFLAGS -O2 -g QEMU_CFLAGS -m32 -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m32 -g make make install install python python host CPU i386 host big endian no target list i386-softmmu x86_64-softmmu mips64el-softmmu tcg debug enabled no Mon debug enabled no gprof enabled no sparse enabled no strip binaries yes profiler no static build no -Werror enabled no SDL support yes curses support no curl support no check support no mingw32 support yes Audio drivers sdl Extra audio cards ac97 sb16 adlib Block whitelist Mixer emulation no VNC support yes VNC TLS support no VNC SASL support no VNC JPEG support no VNC PNG support no VNC thread yes xen support no brlapi support no bluez support no Documentation yes NPTL support no GUEST_BASE yes PIE user targets no vde support no IO thread yes Linux AIO support no ATTR/XATTR support no Install blobs yes KVM support no fdt support no preadv support no fdatasync no madvise no posix_madvise no uuid support no vhost-net support no Trace backend nop Trace output file trace-<pid> spice support no rbd support no xfsctl support no nss used no usb net redir no OpenGL support no build guest agent no qemu$ gcc -v Using built-in specs. COLLECT_GCC=c:\MinGW\bin\gcc.exe COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/i686-pc-mingw32/4.6.1/lto-wrapper.exe Target: i686-pc-mingw32 Configured with: ../src/configure --prefix=/mingw_new --build=i686-pc-mingw32 --target=i686-pc-mingw32 --with-sysroot=/mingw_new --with-build-sysroot=/mingw_new --with-mpfr=/mingw_new/build_libs --with-gmp=/mingw_new/build_libs --with-ppl=/mingw_new/build_libs --enable-cloog-backend=isl --with-cloog=/mingw_new/build_libs --with-mpc=/mingw_new/build_libs --with-host-libstdcxx='-lstdc++ -lsupc++ -lm' --with-pkgversion='XvidVideo.RU - GCC 4.6.1 i686-pc-mingw32' --with-system-zlib --enable-static --enable-threads=win32 --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-targets=all --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libgomp --disable-debug --disable-rpath --disable-shared --disable-nls --disable-win32-registry --disable-werror --disable-bootstrap Thread model: win32 gcc version 4.6.1 (XvidVideo.RU - GCC 4.6.1 i686-pc-mingw32) qemu/i386-softmmu$ gdb --args qemu.exe -L ..\\pc-bios GNU gdb (GDB) 7.0 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mingw32". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from C:\msys\home\User\qemu\i386-softmmu/qemu.exe...done. (gdb) run Starting program: C:\msys\home\User\qemu\i386-softmmu/qemu.exe -L ..\\pc-bios [New Thread 4596.0x10f4] [New Thread 4596.0x278] [New Thread 4596.0x93c] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 4596.0x93c] 0x77c0554a in msvcrt!_abnormal_termination () from C:\WINDOWS\system32\msvcrt.dll (gdb) backtrace #0 0x77c0554a in msvcrt!_abnormal_termination () from C:\WINDOWS\system32\msvcrt.dll #1 0x77c09bc6 in strerror () from C:\WINDOWS\system32\msvcrt.dll Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) thread 1 [Switching to thread 1 (Thread 4596.0x10f4)]#0 0x7c92e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll (gdb) backtrace #0 0x7c92e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll #1 0x7c92df5a in ntdll!ZwWaitForSingleObject () from C:\WINDOWS\system32\ntdll.dll #2 0x7c939b23 in ntdll!RtlpWaitForCriticalSection () from C:\WINDOWS\system32\ntdll.dll #3 0x7c921046 in ntdll!RtlEnumerateGenericTableLikeADirectory () from C:\WINDOWS\system32\ntdll.dll (gdb) thread 2 [Switching to thread 2 (Thread 4596.0x278)]#0 0x7c92e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll (gdb) backtrace #0 0x7c92e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll #1 0x7c92df4a in ntdll!ZwWaitForMultipleObjects () from C:\WINDOWS\system32\ntdll.dll #2 0x76b2aee9 in timeGetTime () from C:\WINDOWS\system32\winmm.dll #3 0x7c80b729 in KERNEL32!GetModuleFileNameA () from C:\WINDOWS\system32\kernel32.dll #4 0x00000000 in ?? () (gdb) >> I'm trying to get rid of emutls, it is slow anyway and we'll likely want to >> rely on TLS very liberally in the future. If it fixes the bug, we can >> backport it to stable too. > > I don't know about Win32 TLS support, but at least OpenBSD/sparc64 > gcc/ld/ld.so/libc do not support __thread. According to manual, TLS is > not available everywhere: > http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Thread_002dLocal.html#Thread_002dLocal >