SLIRP still not working for win32 SLIRP has not worked since 0.14.1 (broken since the move to gthread/gio from the glib library which inherited -mms-bitfields on MinGW32 breaking bit padding on TCP/UDP packets). Patches attempting to reverse effects of GCC's -mms-bitfields do not seem to fix SLIRP. Here is an example slirp debug log: arp_table_add... ip = 0x502000a hw addr = 52:54:00:12:34:56 arp_table_add... ip = 0x502000a hw addr = 52:54:00:12:34:56 m_get... m = 5bd4f0b8 ip_input... m = 5bd4f0b8 m_len = 84 icmp_input... m = 5bd4f0b8 m_len = 84 icmp_type = 8 ip_output... so = 0 m0 = 5bd4f0b8 if_output... so = 0 ifm = 5bd4f0b8 if_start... arp_table_search... ip = 0x502000a found hw addr = 52:54:00:12:34:56 m_free... m = 5bd4f0b8 m_get... m = 5bd4f0b8 ip_input... m = 5bd4f0b8 m_len = 84 icmp_input... m = 5bd4f0b8 m_len = 84 icmp_type = 8 ip_output... so = 0 m0 = 5bd4f0b8 if_output... so = 0 ifm = 5bd4f0b8 if_start... arp_table_search... ip = 0x502000a found hw addr = 52:54:00:12:34:56 m_free... m = 5bd4f0b8 arp_table_add... ip = 0x502000a hw addr = 52:54:00:12:34:56 m_get... m = 5bd4f0b8 ip_input... m = 5bd4f0b8 m_len = 55 udp_input... m = 5bd4f0b8 iphlen = 20 sosendto... so = 5bd104a0 m = 5bd4f0b8 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 0 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... m_get... m = 5bd4f728 ip_input... m = 5bd4f728 m_len = 55 udp_input... m = 5bd4f728 iphlen = 20 sosendto... so = 5bd104a0 m = 5bd4f728 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 5bd4f0b8 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... m_get... m = 5bd4f0b8 ip_input... m = 5bd4f0b8 m_len = 55 udp_input... m = 5bd4f0b8 iphlen = 20 sosendto... so = 5bd104a0 m = 5bd4f0b8 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 5bd4f728 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... [repeated] Here is a slirp debug log from the latest development version as of 2012-02-19 (last git commit logged 2012-02-15): tcp_listen... haddr = 100007f hport = 11555 laddr = 502000a lport = 5632 flags = 1000 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... arp_table_add... ip = 0x502000a hw addr = 52:54:00:12:34:56 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... arp_table_add... ip = 0x502000a hw addr = 52:54:00:12:34:56 m_get... m = 1cac1f0 ip_input... m = 1cac1f0 m_len = 55 udp_input... m = 1cac1f0 iphlen = 20 sosendto... so = 5bd10f28 m = 1cac1f0 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 0 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... m_get... m = 1cac850 ip_input... m = 1cac850 m_len = 55 udp_input... m = 1cac850 iphlen = 20 sosendto... so = 5bd10f28 m = 1cac850 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 1cac1f0 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... m_get... m = 1cac1f0 ip_input... m = 1cac1f0 m_len = 55 udp_input... m = 1cac1f0 iphlen = 20 sosendto... so = 5bd10f28 m = 1cac1f0 sendto()ing, addr.sin_port=53, addr.sin_addr.s_addr=8.8.8.8 m_free... m = 1cac850 ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... ip_slowtimo... tcp_slowtimo... So we're revisiting ms-bitfields issue: http://patchwork.ozlabs.org/patch/109989/ Confirmed this effects all network communication, such as gdb TCP listen socket from guest. Please try latest QEMU from git://git.qemu.org/qemu.git. Some slirp related fixes were added recently. I don't see any negative effects caused by -mms-bitfields in my tests. From the latest QEMU from git: haddr = 100007f hport = 11555 laddr = 502000a lport = 5632 flags = 1000 ip_slowtimo... tcp_slowtimo... if_start... if_start... if_start... if_start... [ if_start... repeats forever ] command-line used: ./testing/qemu/i386-softmmu/qemu-system-i386 \ -L ./testing/qemu/pc-bios \ -m 1024 \ -rtc base=localtime \ -parallel none \ -netdev type=user,id=mynet0,hostfwd=tcp:127.0.0.1:9005-10.0.2.5:22 \ -device e1000,netdev=mynet0 \ -drive file=images/freebsd.img,index=0,media=disk,cache=unsafe \ -gdb tcp::1234 SLIRP is now currently WORKING for win32 in qemu.org git master as of Apr 13 2012 10:20 Eastern. The last time I checked unsuccessfully with things still broken was earlier in the week, probably April 9th, I don't remember exactly, but the fix was definitely committed this week. Thanks!!! Yes, I forgot to update the bug. Thanks for testing! :)