qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
@ 2011-08-08  0:30 Roy Tam
  2011-08-08  6:21 ` Stefan Hajnoczi
  0 siblings, 1 reply; 13+ messages in thread
From: Roy Tam @ 2011-08-08  0:30 UTC (permalink / raw)
  To: qemu-devel

Hi all,

I checked out latest git and tried to compile QEMU but I got this message:
qemu$ make V=1
gcc -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 -O3 -msse3 -msse2 -msse -mmmx
-fomit-frame-pointer -mpreferred-stack-boundary=2 -ffast-math -pipe
-funroll-loops -fforce-addr -mfpmath=sse  -Wendif-labels
-Wnested-externs -Wformat-security -Wformat-y2k -Winit-self
-Wold-style-definition  -mms-bitfields -Ic:/MinGW/include/glib-2.0
-Ic:/MinGW/lib/glib-2.0/include   -I/usr/home/User/qemu/slirp -I.
-I/usr/home/User/qemu -I/usr/home/User/qemu/fpu -MMD -MP -MT
coroutine-win32.o -MF ./coroutine-win32.d -O2 -g  -c -o
coroutine-win32.o coroutine-win32.c
coroutine-win32.c:36: error: thread-local storage not supported for this target
coroutine-win32.c:37: error: thread-local storage not supported for this target
make: *** [coroutine-win32.o] Error 1

Please advice.

Best regards,
Roy

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-08  0:30 [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3) Roy Tam
@ 2011-08-08  6:21 ` Stefan Hajnoczi
  2011-08-08  6:36   ` Roy Tam
  0 siblings, 1 reply; 13+ messages in thread
From: Stefan Hajnoczi @ 2011-08-08  6:21 UTC (permalink / raw)
  To: Roy Tam; +Cc: qemu-devel

On Mon, Aug 8, 2011 at 1:30 AM, Roy Tam <roytam@gmail.com> wrote:
> Hi all,
>
> I checked out latest git and tried to compile QEMU but I got this message:
> qemu$ make V=1
> gcc -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 -O3 -msse3 -msse2 -msse -mmmx
> -fomit-frame-pointer -mpreferred-stack-boundary=2 -ffast-math -pipe
> -funroll-loops -fforce-addr -mfpmath=sse  -Wendif-labels
> -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self
> -Wold-style-definition  -mms-bitfields -Ic:/MinGW/include/glib-2.0
> -Ic:/MinGW/lib/glib-2.0/include   -I/usr/home/User/qemu/slirp -I.
> -I/usr/home/User/qemu -I/usr/home/User/qemu/fpu -MMD -MP -MT
> coroutine-win32.o -MF ./coroutine-win32.d -O2 -g  -c -o
> coroutine-win32.o coroutine-win32.c
> coroutine-win32.c:36: error: thread-local storage not supported for this target
> coroutine-win32.c:37: error: thread-local storage not supported for this target
> make: *** [coroutine-win32.o] Error 1

Hi Roy,
Others have successfully built for win32.  Are you able to upgrade to
a newer toolchain, gcc-3.4 is 6 years old and doesn't support __thread
variables?

Stefan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-08  6:21 ` Stefan Hajnoczi
@ 2011-08-08  6:36   ` Roy Tam
  2011-08-16  7:38     ` Roy Tam
  0 siblings, 1 reply; 13+ messages in thread
From: Roy Tam @ 2011-08-08  6:36 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: qemu-devel

2011/8/8 Stefan Hajnoczi <stefanha@gmail.com>:
> On Mon, Aug 8, 2011 at 1:30 AM, Roy Tam <roytam@gmail.com> wrote:
>> Hi all,
>>
>> I checked out latest git and tried to compile QEMU but I got this message:
>> qemu$ make V=1
>> gcc -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 -O3 -msse3 -msse2 -msse -mmmx
>> -fomit-frame-pointer -mpreferred-stack-boundary=2 -ffast-math -pipe
>> -funroll-loops -fforce-addr -mfpmath=sse  -Wendif-labels
>> -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self
>> -Wold-style-definition  -mms-bitfields -Ic:/MinGW/include/glib-2.0
>> -Ic:/MinGW/lib/glib-2.0/include   -I/usr/home/User/qemu/slirp -I.
>> -I/usr/home/User/qemu -I/usr/home/User/qemu/fpu -MMD -MP -MT
>> coroutine-win32.o -MF ./coroutine-win32.d -O2 -g  -c -o
>> coroutine-win32.o coroutine-win32.c
>> coroutine-win32.c:36: error: thread-local storage not supported for this target
>> coroutine-win32.c:37: error: thread-local storage not supported for this target
>> make: *** [coroutine-win32.o] Error 1
>
> Hi Roy,
> Others have successfully built for win32.  Are you able to upgrade to
> a newer toolchain, gcc-3.4 is 6 years old and doesn't support __thread
> variables?

I tried many MinGW GCC 4.x(from 4.5.0 to 4.7.0) but resulting an
internal compiler error when compiling op_helper.c

>
> Stefan
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-08  6:36   ` Roy Tam
@ 2011-08-16  7:38     ` Roy Tam
  2011-08-16 12:45       ` Stefan Hajnoczi
  0 siblings, 1 reply; 13+ messages in thread
From: Roy Tam @ 2011-08-16  7:38 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: qemu-devel

2011/8/8 Roy Tam <roytam@gmail.com>:
> 2011/8/8 Stefan Hajnoczi <stefanha@gmail.com>:
>> On Mon, Aug 8, 2011 at 1:30 AM, Roy Tam <roytam@gmail.com> wrote:
>>> Hi all,
>>>
>>> I checked out latest git and tried to compile QEMU but I got this message:
>>> qemu$ make V=1
>>> gcc -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 -O3 -msse3 -msse2 -msse -mmmx
>>> -fomit-frame-pointer -mpreferred-stack-boundary=2 -ffast-math -pipe
>>> -funroll-loops -fforce-addr -mfpmath=sse  -Wendif-labels
>>> -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self
>>> -Wold-style-definition  -mms-bitfields -Ic:/MinGW/include/glib-2.0
>>> -Ic:/MinGW/lib/glib-2.0/include   -I/usr/home/User/qemu/slirp -I.
>>> -I/usr/home/User/qemu -I/usr/home/User/qemu/fpu -MMD -MP -MT
>>> coroutine-win32.o -MF ./coroutine-win32.d -O2 -g  -c -o
>>> coroutine-win32.o coroutine-win32.c
>>> coroutine-win32.c:36: error: thread-local storage not supported for this target
>>> coroutine-win32.c:37: error: thread-local storage not supported for this target
>>> make: *** [coroutine-win32.o] Error 1
>>
>> Hi Roy,
>> Others have successfully built for win32.  Are you able to upgrade to
>> a newer toolchain, gcc-3.4 is 6 years old and doesn't support __thread
>> variables?
>
> I tried many MinGW GCC 4.x(from 4.5.0 to 4.7.0) but resulting an
> internal compiler error when compiling op_helper.c
>

I removed "-mpreferred-stack-boundary=2" switch and it now builds.
But created binaries are unusable, even I remove all cflags.

C:\msys\home\User\qemu\i386-softmmu>gdb --args qemu -L ..\pc-bios
GNU gdb (GDB) 7.3
Copyright (C) 2011 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...(no debugging symbols
found)...done.
(gdb) run
Starting program: C:\msys\home\User\qemu\i386-softmmu/qemu.exe -L ..\\pc-bios
[New Thread 5880.0x13c4]
[New Thread 5880.0x16ac]
[New Thread 5880.0x110c]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 5880.0x110c]
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)

>>
>> Stefan
>>
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-16  7:38     ` Roy Tam
@ 2011-08-16 12:45       ` Stefan Hajnoczi
  2011-08-16 18:50         ` Paolo Bonzini
  0 siblings, 1 reply; 13+ messages in thread
From: Stefan Hajnoczi @ 2011-08-16 12:45 UTC (permalink / raw)
  To: Roy Tam; +Cc: qemu-devel

On Tue, Aug 16, 2011 at 8:38 AM, Roy Tam <roytam@gmail.com> wrote:
> 2011/8/8 Roy Tam <roytam@gmail.com>:
>> 2011/8/8 Stefan Hajnoczi <stefanha@gmail.com>:
>>> On Mon, Aug 8, 2011 at 1:30 AM, Roy Tam <roytam@gmail.com> wrote:
>>>> Hi all,
>>>>
>>>> I checked out latest git and tried to compile QEMU but I got this message:
>>>> qemu$ make V=1
>>>> gcc -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 -O3 -msse3 -msse2 -msse -mmmx
>>>> -fomit-frame-pointer -mpreferred-stack-boundary=2 -ffast-math -pipe
>>>> -funroll-loops -fforce-addr -mfpmath=sse  -Wendif-labels
>>>> -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self
>>>> -Wold-style-definition  -mms-bitfields -Ic:/MinGW/include/glib-2.0
>>>> -Ic:/MinGW/lib/glib-2.0/include   -I/usr/home/User/qemu/slirp -I.
>>>> -I/usr/home/User/qemu -I/usr/home/User/qemu/fpu -MMD -MP -MT
>>>> coroutine-win32.o -MF ./coroutine-win32.d -O2 -g  -c -o
>>>> coroutine-win32.o coroutine-win32.c
>>>> coroutine-win32.c:36: error: thread-local storage not supported for this target
>>>> coroutine-win32.c:37: error: thread-local storage not supported for this target
>>>> make: *** [coroutine-win32.o] Error 1
>>>
>>> Hi Roy,
>>> Others have successfully built for win32.  Are you able to upgrade to
>>> a newer toolchain, gcc-3.4 is 6 years old and doesn't support __thread
>>> variables?
>>
>> I tried many MinGW GCC 4.x(from 4.5.0 to 4.7.0) but resulting an
>> internal compiler error when compiling op_helper.c
>>
>
> I removed "-mpreferred-stack-boundary=2" switch and it now builds.
> But created binaries are unusable, even I remove all cflags.
>
> C:\msys\home\User\qemu\i386-softmmu>gdb --args qemu -L ..\pc-bios
> GNU gdb (GDB) 7.3
> Copyright (C) 2011 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...(no debugging symbols
> found)...done.
> (gdb) run
> Starting program: C:\msys\home\User\qemu\i386-softmmu/qemu.exe -L ..\\pc-bios
> [New Thread 5880.0x13c4]
> [New Thread 5880.0x16ac]
> [New Thread 5880.0x110c]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 5880.0x110c]
> 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)

Roy,
This stack trace does not reveal much.

Is there any MinGW gcc user that has successfully built and run
qemu.git?  Which version/architecture of Windows and which MinGW
version?

Stefan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-16 12:45       ` Stefan Hajnoczi
@ 2011-08-16 18:50         ` Paolo Bonzini
  2011-08-17 17:20           ` Blue Swirl
  2011-08-20  8:41           ` Stefan Weil
  0 siblings, 2 replies; 13+ messages in thread
From: Paolo Bonzini @ 2011-08-16 18:50 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: qemu-devel, Roy Tam

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.

> Which version/architecture of Windows and which MinGW
> version?

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.

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-16 18:50         ` Paolo Bonzini
@ 2011-08-17 17:20           ` Blue Swirl
  2011-08-17 17:23             ` Stefan Hajnoczi
  2011-08-18  3:36             ` Roy Tam
  2011-08-20  8:41           ` Stefan Weil
  1 sibling, 2 replies; 13+ messages in thread
From: Blue Swirl @ 2011-08-17 17:20 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Stefan Hajnoczi, qemu-devel, Roy Tam

On Tue, Aug 16, 2011 at 6:50 PM, Paolo Bonzini <pbonzini@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).

>> 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)

> 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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-17 17:20           ` Blue Swirl
@ 2011-08-17 17:23             ` Stefan Hajnoczi
  2011-08-17 17:26               ` Paolo Bonzini
  2011-08-18  3:36             ` Roy Tam
  1 sibling, 1 reply; 13+ messages in thread
From: Stefan Hajnoczi @ 2011-08-17 17:23 UTC (permalink / raw)
  To: Blue Swirl; +Cc: Paolo Bonzini, qemu-devel, Roy Tam

On Wed, Aug 17, 2011 at 6:20 PM, Blue Swirl <blauwirbel@gmail.com> wrote:
> On Tue, Aug 16, 2011 at 6:50 PM, Paolo Bonzini <pbonzini@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).
>
>>> 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)
>
>> 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

Yeah, for OpenBSD we have the portable but slow GThread coroutine
implementation.

Stefan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-17 17:23             ` Stefan Hajnoczi
@ 2011-08-17 17:26               ` Paolo Bonzini
  0 siblings, 0 replies; 13+ messages in thread
From: Paolo Bonzini @ 2011-08-17 17:26 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: Blue Swirl, qemu-devel, Roy Tam

On 08/17/2011 10:23 AM, Stefan Hajnoczi wrote:
>> >  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
> Yeah, for OpenBSD we have the portable but slow GThread coroutine
> implementation.

I think (but I'm not sure) that a newer GCC on OpenBSD is able to 
convert __thread to pthread_key_setspecific.

I'm trying to see if we can do something like Windows TLS at the 
qemu-thread level.

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-17 17:20           ` Blue Swirl
  2011-08-17 17:23             ` Stefan Hajnoczi
@ 2011-08-18  3:36             ` Roy Tam
  1 sibling, 0 replies; 13+ messages in thread
From: Roy Tam @ 2011-08-18  3:36 UTC (permalink / raw)
  To: Blue Swirl; +Cc: Paolo Bonzini, qemu-devel, Stefan Hajnoczi

2011/8/18 Blue Swirl <blauwirbel@gmail.com>:
> On Tue, Aug 16, 2011 at 6:50 PM, Paolo Bonzini <pbonzini@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
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-16 18:50         ` Paolo Bonzini
  2011-08-17 17:20           ` Blue Swirl
@ 2011-08-20  8:41           ` Stefan Weil
  2011-08-23  7:39             ` Roy Tam
  1 sibling, 1 reply; 13+ messages in thread
From: Stefan Weil @ 2011-08-20  8:41 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Stefan Hajnoczi, qemu-devel, Roy Tam

Am 16.08.2011 20:50, schrieb Paolo Bonzini:
> 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.

How did you know that?

>> Which version/architecture of Windows and which MinGW
>> version?

QEMU currently only supports 32 bit Windows executables
which work on any current Windows version version
(XP and later, 32 and 64 bit).

I use latest MinGW from http://www.mingw.org/ (native compilation
on Windows) and Debian cross compilations. Those are available
from http://qemu.weilnetz.de/w32/.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-20  8:41           ` Stefan Weil
@ 2011-08-23  7:39             ` Roy Tam
  2011-09-07  7:44               ` Roy Tam
  0 siblings, 1 reply; 13+ messages in thread
From: Roy Tam @ 2011-08-23  7:39 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Paolo Bonzini, qemu-devel, Stefan Hajnoczi

2011/8/20 Stefan Weil <weil@mail.berlios.de>:
> Am 16.08.2011 20:50, schrieb Paolo Bonzini:
>>
>> 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.
>
> How did you know that?
>
>>> Which version/architecture of Windows and which MinGW
>>> version?
>
> QEMU currently only supports 32 bit Windows executables
> which work on any current Windows version version
> (XP and later, 32 and 64 bit).
>
> I use latest MinGW from http://www.mingw.org/ (native compilation
> on Windows) and Debian cross compilations. Those are available
> from http://qemu.weilnetz.de/w32/.
>
>

Did you cross compile it to get those binaries? They run fine here,
but not mine.
I tried rebuilding all dependencies(gettext, libiconv, glib, zlib)
under gcc 4.6.1 but I still get same error with latest git revision.
I wonder if there is someone (excluding me) can build and run QEMU
successfully under Windows(MinGW+MSYS) environment.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3)
  2011-08-23  7:39             ` Roy Tam
@ 2011-09-07  7:44               ` Roy Tam
  0 siblings, 0 replies; 13+ messages in thread
From: Roy Tam @ 2011-09-07  7:44 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Paolo Bonzini, qemu-devel, Stefan Hajnoczi

2011/8/23 Roy Tam <roytam@gmail.com>:
> 2011/8/20 Stefan Weil <weil@mail.berlios.de>:
>> Am 16.08.2011 20:50, schrieb Paolo Bonzini:
>>>
>>> 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.
>>
>> How did you know that?
>>
>>>> Which version/architecture of Windows and which MinGW
>>>> version?
>>
>> QEMU currently only supports 32 bit Windows executables
>> which work on any current Windows version version
>> (XP and later, 32 and 64 bit).
>>
>> I use latest MinGW from http://www.mingw.org/ (native compilation
>> on Windows) and Debian cross compilations. Those are available
>> from http://qemu.weilnetz.de/w32/.
>>
>>
>
> Did you cross compile it to get those binaries? They run fine here,
> but not mine.
> I tried rebuilding all dependencies(gettext, libiconv, glib, zlib)
> under gcc 4.6.1 but I still get same error with latest git revision.
> I wonder if there is someone (excluding me) can build and run QEMU
> successfully under Windows(MinGW+MSYS) environment.
>

I finally downgrade MinGW GCC from 4.6.1(xvidvideo.ru) to 4.3.3-tdm
and recompile all dependency and QEMU works well at the end.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-09-07  7:44 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-08  0:30 [Qemu-devel] Compilation error of coroutine-win32.c with gcc version 3.4.5 (mingw-vista special r3) Roy Tam
2011-08-08  6:21 ` Stefan Hajnoczi
2011-08-08  6:36   ` Roy Tam
2011-08-16  7:38     ` Roy Tam
2011-08-16 12:45       ` Stefan Hajnoczi
2011-08-16 18:50         ` Paolo Bonzini
2011-08-17 17:20           ` Blue Swirl
2011-08-17 17:23             ` Stefan Hajnoczi
2011-08-17 17:26               ` Paolo Bonzini
2011-08-18  3:36             ` Roy Tam
2011-08-20  8:41           ` Stefan Weil
2011-08-23  7:39             ` Roy Tam
2011-09-07  7:44               ` Roy Tam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).