From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:50643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qxtyz-0000yh-Jo for qemu-devel@nongnu.org; Mon, 29 Aug 2011 01:02:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qxtyy-00074c-Jb for qemu-devel@nongnu.org; Mon, 29 Aug 2011 01:02:01 -0400 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:58708) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qxtyy-00074K-DC for qemu-devel@nongnu.org; Mon, 29 Aug 2011 01:02:00 -0400 Message-ID: <4E5B1D42.1010605@mail.berlios.de> Date: Mon, 29 Aug 2011 07:01:54 +0200 From: Stefan Weil MIME-Version: 1.0 References: <1314564200-6872-1-git-send-email-weil@mail.berlios.de> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/7] Fix packing for MinGW with -mms-bitfields List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: Kevin Wolf , QEMU Developers , Alexander Graf , Isaku Yamahata , Jan Kiszka , Gerd Hoffmann Am 28.08.2011 23:43, schrieb Blue Swirl: > On Sun, Aug 28, 2011 at 8:43 PM, Stefan Weil 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).