summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2010-12-29 14:23:59 +0100
committerHans de Goede <hdegoede@redhat.com>2011-02-11 14:34:52 +0100
commit41946c45cf072b82c5eb0c8c499f77c568c1a887 (patch)
tree4b257e86d2ce0a1ac6f8a3fd2ed1ddad1257d54c
parentd983e6ae8a38b2eb693bc8091a2d5dd7e4977245 (diff)
mingw32: specify packing alignment to 1 byte, to override -mms-bitfield
Ex: G_STRUCT_OFFSET(SpiceLinkReply, num_channel_caps) is 172 bytes when compiled with -mms-bitfield, and 170 bytes without. GLib/Gtk are compiled with -mms-bitfield, and it is necessary to compile with the same option for compatibility. The pack pragma for MINGW32 corrects the structure alignement. We could use the pack pragma for GNUC unconditionally, that could help to ensure struct binary compatibility between different compiled flavours.
-rw-r--r--spice/end-packed.h4
-rw-r--r--spice/start-packed.h4
2 files changed, 5 insertions, 3 deletions
diff --git a/spice/end-packed.h b/spice/end-packed.h
index e191737..1acea18 100644
--- a/spice/end-packed.h
+++ b/spice/end-packed.h
@@ -33,8 +33,6 @@
#undef SPICE_ATTR_PACKED
-#ifndef __GNUC__
-
+#if defined(__MINGW32__) || !defined(__GNUC__)
#pragma pack(pop)
-
#endif
diff --git a/spice/start-packed.h b/spice/start-packed.h
index 78ec7c7..ab3fa98 100644
--- a/spice/start-packed.h
+++ b/spice/start-packed.h
@@ -49,6 +49,10 @@
#define SPICE_ATTR_PACKED __attribute__ ((__packed__))
+#ifdef __MINGW32__
+#pragma pack(push,1)
+#endif
+
#else
#pragma pack(push)