On Mon, Aug 29, 2011 at 13:01, Stefan Weil <w...@mail.berlios.de> wrote:
> Am 28.08.2011 23:43, schrieb Blue Swirl:
>>
>> On Sun, Aug 28, 2011 at 8:43 PM, Stefan Weil <w...@mail.berlios.de> wrote:
>>>
>>> These patches fix the packing of structures which were affected by
>>> the new compiler attribute -mms-bitfields (which is needed for glib-2.0).
>>>
>>> I compiled qemu.exe with and without -mms-bitfields and compared
>>> the resulting struct alignment using pahole and codiff.
>>
>> If a structure is only used internally by QEMU (not used in network,
>> disk or guest interfaces), changes in padding don't matter. In fact,
>> in those cases it may be better to remove the packing, because then
>> the fields may be naturally aligned and that gives better performance
>> on most architectures. Could you please check if this is the case for
>> any of the structs?
>
> I did this already, but also forward your question to the maintainers.
> Here is my result:
>
> [PATCH 2/7] block/vvfat: Fix packing for w32: needs packing (disk)
> [PATCH 3/7] acpi: Fix packing for w32: needs packing (bios interface)
> [PATCH 4/7] hpet: Fix packing for w32: needs packing (bios interface)
> [PATCH 5/7] usb: Fix packing for w32: needs packing (usb interface)
> [PATCH 6/7] virtio: Fix packing for w32: needs packing? (guest interface?)
> [PATCH 7/7] slirp: Fix packing for w32: needs packing (network interface)
>
> All those struct statements need the pack attribute (otherwise the code
> would have to be rewritten which is of course always possible).
gesn_cdb in atapi.c, VMDK4Header in vmdk.c and many structures in
bt.h need be fixed too.