Multithreaded programs don't work (reliably) in x86 user emulation mode. This is a known (longstanding) bug. ARM hosts are also currently known to have problems (as stated in the qemu 1.0 release notes).
-- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/902413 Title: qemu-i386-user on ARM host: wine hangs/spins when trying to run anything Status in QEMU: New Bug description: With qemu built from git from 217bfb445b54db618a30f3a39170bebd9fd9dbf2 and configured with './configure --target-list=i386-linux-user --static --interp-prefix=/home/pgriffais/natty-i386/', trying to run wine 1.3.15 from an Ubuntu 11.04 chroot results in hangs. If I run an i386 emulated wineserver, wineserver hangs in: 0x600c7f8c in read () at ../sysdeps/unix/syscall-template.S:82 82 ../sysdeps/unix/syscall-template.S: No such file or directory. in ../sysdeps/unix/syscall-template.S (gdb) bt #0 0x600c7f8c in read () at ../sysdeps/unix/syscall-template.S:82 #1 0x6004a316 in read (cpu_env=0x622c3ee8, num=3, arg1=6, arg2=1121255519, arg3=1, arg4=134875664, arg5=1, arg6=1121255528, arg7=0, arg8=0) at /usr/include/bits/unistd.h:45 #2 do_syscall (cpu_env=0x622c3ee8, num=3, arg1=6, arg2=1121255519, arg3=1, arg4=134875664, arg5=1, arg6=1121255528, arg7=0, arg8=0) at /home/ubuntu/src/qemu/linux-user/syscall.c:4691 #3 0x600262f0 in cpu_loop (env=0x622c3ee8) at /home/ubuntu/src/qemu/linux-user/main.c:321 #4 0x60026bbc in main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at /home/ubuntu/src/qemu/linux-user/main.c:3817 While wine hangs in: 0x600c84ac in recvmsg () at ../sysdeps/unix/syscall-template.S:82 82 ../sysdeps/unix/syscall-template.S: No such file or directory. in ../sysdeps/unix/syscall-template.S (gdb) bt #0 0x600c84ac in recvmsg () at ../sysdeps/unix/syscall-template.S:82 #1 0x60041c4e in do_sendrecvmsg (fd=4, target_msg=<value optimized out>, flags=1073741824, send=0) at /home/ubuntu/src/qemu/linux-user/syscall.c:1834 #2 0x600497ec in do_socketcall (cpu_env=<value optimized out>, num=102, arg1=17, arg2=1122504544, arg3=2076831732, arg4=1122504568, arg5=2076942688, arg6=1122504888, arg7=0, arg8=0) at /home/ubuntu/src/qemu/linux-user/syscall.c:2235 #3 do_syscall (cpu_env=<value optimized out>, num=102, arg1=17, arg2=1122504544, arg3=2076831732, arg4=1122504568, arg5=2076942688, arg6=1122504888, arg7=0, arg8=0) at /home/ubuntu/src/qemu/linux-user/syscall.c:6085 #4 0x600262f0 in cpu_loop (env=0x622c3f08) at /home/ubuntu/src/qemu/linux-user/main.c:321 #5 0x60026bbc in main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at /home/ubuntu/src/qemu/linux-user/main.c:3817 However if I build wineserver 1.3.15 natively for ARM and run it on the host while wine is emulated, I get the following: root@tiberiusstation:/home/ubuntu# ./natty-i386/usr/bin/wine notepad Unsupported ancillary data: 1/2 Unsupported ancillary data: 1/2 Unsupported ancillary data: 1/2 err:process:__wine_kernel_init boot event wait timed out I assume the last one is due to wineboot.exe hanging. The main wine process hangs in there: cg_temp_new_internal_i32 (temp_local=<value optimized out>) at /home/ubuntu/src/qemu/tcg/tcg.c:483 483 } (gdb) bt #0 tcg_temp_new_internal_i32 (temp_local=<value optimized out>) at /home/ubuntu/src/qemu/tcg/tcg.c:483 #1 0x60052ac6 in tcg_temp_new_i32 (val=6) at /home/ubuntu/src/qemu/tcg/tcg.h:442 #2 tcg_const_i32 (val=6) at /home/ubuntu/src/qemu/tcg/tcg.c:530 #3 0x6005ef0c in tcg_gen_shri_i32 (ot=2, op1=2, op2=7, is_right=1, is_arith=0, s=<value optimized out>) at /home/ubuntu/src/qemu/tcg/tcg-op.h:605 #4 gen_shift_rm_im (ot=2, op1=2, op2=7, is_right=1, is_arith=0, s=<value optimized out>) at /home/ubuntu/src/qemu/target-i386/translate.c:1514 #5 0x6006df90 in gen_shifti (s=0xbefea970, pc_start=<value optimized out>) at /home/ubuntu/src/qemu/target-i386/translate.c:1946 #6 disas_insn (s=0xbefea970, pc_start=<value optimized out>) at /home/ubuntu/src/qemu/target-i386/translate.c:5397 #7 0x60091758 in gen_intermediate_code_internal (env=0x625656f8, tb=0x402cdf48) at /home/ubuntu/src/qemu/target-i386/translate.c:7825 #8 gen_intermediate_code_pc (env=0x625656f8, tb=0x402cdf48) at /home/ubuntu/src/qemu/target-i386/translate.c:7896 #9 0x60054bf2 in cpu_restore_state (tb=0x402cdf48, env=0x62565690, searched_pc=1617393812) at /home/ubuntu/src/qemu/translate-all.c:126 #10 0x60091d9e in handle_cpu_signal (host_signum=<value optimized out>, pinfo=<value optimized out>, puc=0xbefeab70) at /home/ubuntu/src/qemu/user-exec.c:117 #11 cpu_x86_signal_handler (host_signum=<value optimized out>, pinfo=<value optimized out>, puc=0xbefeab70) at /home/ubuntu/src/qemu/user-exec.c:458 #12 0x6003c764 in host_signal_handler (host_signum=11, info=0xbefeaaf0, puc=<value optimized out>) at /home/ubuntu/src/qemu/linux-user/signal.c:492 #13 <signal handler called> #14 0x60677894 in static_code_gen_buffer () #15 0x6000a260 in cpu_x86_exec (env=0x0) at /home/ubuntu/src/qemu/cpu-exec.c:566 #16 0x68953200 in ?? () #17 0x68953200 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack? Running the same version of wine through qemu-user-i386 running on an i386 host works fine with both wineserver and wine being emulated; that's the result I'm trying to achieve. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/902413/+subscriptions