On Sat, Aug 6, 2011 at 04:46, Blue Swirl <blauwir...@gmail.com> wrote: > On Fri, Aug 5, 2011 at 8:09 PM, Kenneth Salerno > <kennethsale...@yahoo.com> wrote: >> Hi, >> >> I'm not sure if any defaults (build or runtime) have changed since 0.14.1, >> but I can no longer get the following to work anymore for QEMU versions >> 0.15.0-rc2 or recent development builds: >> >> -device e1000,netdev=mynet0 -netdev type=user,id=mynet0 ... >> >> Works great in 0.14.1 however. >> >> From the QEMU console, "info networking" shows the NIC e1000 and the VLAN >> correctly setup, the guest (RHEL 6.1 x86_64) has its NIC recognized and >> networking setup, just can't seem to communicate with the gateway >> (10.0.2.2). The only difference I see in the console is cosmetic >> (restricted=off rather than restricted=n). >> >> Host OS: Windows XP >> Build env: i686-pc-mingw32-gcc 4.5.2, binutils 2.21.53.20110731 i386pe >> Runtime env: Cygwin 1.7.9 2011-03-29, SDL 1.2.14, mingw32-glib 2.28.1-1, >> mingw32-gettext 0.18.1-2 >> Guest OS: RHEL 6.1 >> >> Is it just me? > > No, this is fallout from glib use: > http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg00134.html > > The fix is to rewrite structures without using GCC bit fields.
-mms-bitfields affects all byte-alignments in a structure. For example, struct s { uint8_t a; uint32_t b; } __attribute__((packed)); sizeof(s) is 5 without -mms-bitfields but sizeof(s) is 8 with -mms-bitfields.