qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version


From: Roy Tam
Subject: Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
Date: Thu, 18 Aug 2011 11:36:16 +0800

2011/8/18 Blue Swirl <address@hidden>:
> On Tue, Aug 16, 2011 at 6:50 PM, Paolo Bonzini <address@hidden> 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
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]