For some reason with GCC7 compiling on PPC, the "pack" pragmas still add alignment padding at the end of the struct. This is not true of gcc-apple-4.2 and earlier, nor is it true of __attribute__((packed)). See: https://trac.macports.org/ticket/63490 --- src/search/dzl-fuzzy-mutable-index.c.orig +++ src/search/dzl-fuzzy-mutable-index.c @@ -59,13 +59,11 @@ guint case_sensitive : 1; }; -#pragma pack(push, 1) -typedef struct +typedef struct __attribute__((packed)) { guint64 id : 32; guint64 pos : 16; } DzlFuzzyMutableIndexItem; -#pragma pack(pop) G_STATIC_ASSERT (sizeof(DzlFuzzyMutableIndexItem) == 6);