On Sun, Aug 28, 2011 at 8:43 PM, Stefan Weil <w...@mail.berlios.de> wrote: > A packed struct needs different gcc attributes for compilations > with MinGW compilers because glib-2.0 adds compiler flag > -mms-bitfields which modifies the packing algorithm. > > Attribute gcc_struct reverses the negative effects of -mms-bitfields. > QEMU_PACKED sets this attribute and must be used for any packed > struct which is affected by -mms-bitfields. > > Signed-off-by: Stefan Weil <w...@mail.berlios.de> > --- > compiler.h | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/compiler.h b/compiler.h > index 9af5dc6..a2d5959 100644 > --- a/compiler.h > +++ b/compiler.h > @@ -12,6 +12,12 @@ > #define QEMU_WARN_UNUSED_RESULT > #endif > > +#if defined(_WIN32) > +# define QEMU_PACKED __attribute__((gcc_struct, packed))
Maybe we could also use gcc_struct also for non-win32? > +#else > +# define QEMU_PACKED __attribute__((packed)) > +#endif > + > #define QEMU_BUILD_BUG_ON(x) \ > typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1]; > > -- > 1.7.0.4 > > >