From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54186) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwaX1-00030i-3k for qemu-devel@nongnu.org; Thu, 25 Aug 2011 10:03:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QwaWz-0005jl-6x for qemu-devel@nongnu.org; Thu, 25 Aug 2011 10:03:43 -0400 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:39423) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwaWy-0005j0-V0 for qemu-devel@nongnu.org; Thu, 25 Aug 2011 10:03:41 -0400 Message-ID: <4E565637.8030909@mail.berlios.de> Date: Thu, 25 Aug 2011 16:03:35 +0200 From: Stefan Weil MIME-Version: 1.0 References: <4E48BF2F.7080901@web.de> <4E501243.2090806@mail.berlios.de> <4E54C045.9020007@web.de> <4E562C38.3010908@web.de> <4E564254.2080204@web.de> <4E5648C4.3000604@us.ibm.com> <4E564A72.6080108@web.de> <4E564E18.7090802@codemonkey.ws> <4E564F06.7040304@web.de> In-Reply-To: <4E564F06.7040304@web.de> Content-Type: multipart/mixed; boundary="------------060104050202060406010907" Subject: Re: [Qemu-devel] [PULL] slirp: Fix issues with -mms-bitfields List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Blue Swirl , TeLeMan , Anthony Liguori , qemu-devel This is a multi-part message in MIME format. --------------060104050202060406010907 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit As I wrote in my last mail, I compared all structs without and with -mms-bitfields using pahole and codiff. The result is in the appended codiff.log. About 17 structs changed because of -mms-bitfield. This attribute modifies not only structs with bitfield but also packed structs or structs with other attributes like TCGPool. Jan's patch fixed slirp bitfields. For the remaining cases, I also thought about removing -mms-bitfield or setting a pragma in qemu-common.h, but now I prefer a different solution: replace all __attribute__(packed), __attribute(__packed__) by QEMU_PACKED. QEMU_PACKED will be a macro defined in compiler.h which sets the attributes needed (also for w32 with -mms-bitfields). Maybe I can send patches with the changes needed next weekend if everybody agrees to this solution. Cheers, Stefan --------------060104050202060406010907 Content-Type: text/x-log; name="codiff.log" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="codiff.log" /home/stefan/src/qemu/savannah/qemu/hw/virtio-balloon.c: struct VirtIOBalloonStat | +6 1 struct changed virtio_balloon_receive_stats | -1 1 function changed, 1 bytes removed /home/stefan/src/qemu/savannah/qemu/block/vmdk.c: vmdk_open_vmdk4 | +9 vmdk_create_extent | +6 2 functions changed, 15 bytes added /home/stefan/src/qemu/savannah/qemu/block/vvfat.c: struct bootsector_t | +5 1 struct changed /home/stefan/src/qemu/savannah/qemu/hw/bt-hci.c: bt_hci_connection_accept | -2 bt_hci_lmp_connection_complete | -2 bt_hci_event_read_remote_ext_features | +2 bt_hci_event_complete_lmp_handle | +7 4 functions changed, 9 bytes added, 4 bytes removed, diff: +5 /home/stefan/src/qemu/savannah/qemu/slirp/cksum.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/if.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/ip_icmp.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/ip_input.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/ip_output.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/slirp.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/mbuf.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/misc.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/sbuf.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/socket.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/tcp_input.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/tcp_output.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/tcp_subr.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/tcp_timer.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/udp.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/bootp.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/tftp.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed /home/stefan/src/qemu/savannah/qemu/slirp/arp_table.c: struct Slirp | +64 struct arphdr | +4 struct ArpTable | +64 3 structs changed arp_table_add | -49 arp_table_search | -24 2 functions changed, 73 bytes removed /home/stefan/src/qemu/savannah/qemu/exec.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/translate-all.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/cpu-exec.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/target-i386/translate.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/tcg/tcg.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/tcg/optimize.c: struct TCGPool | +0 1 struct changed /home/stefan/src/qemu/savannah/qemu/target-i386/op_helper.c: helper_vmexit | +2 1 function changed, 2 bytes added /home/stefan/src/qemu/savannah/qemu/hw/acpi.c: struct acpi_table_header | +2 1 struct changed /home/stefan/src/qemu/savannah/qemu/hw/hpet.c: struct hpet_fw_entry | +4 struct hpet_fw_config | +32 2 structs changed hpet_post_load | +4 hpet_reset | +8 2 functions changed, 12 bytes added /home/stefan/src/qemu/savannah/qemu/hw/usb-ccid.c: struct CCID_Header | +3 struct CCID_BULK_IN | +3 struct CCID_SlotStatus | +3 struct CCID_Parameter | +3 struct CCID_DataBlock | +3 struct CCID_XferBlock | +4 struct CCID_IccPowerOn | +4 struct CCID_SetParameters | +4 8 structs changed /home/stefan/src/qemu/savannah/qemu/hw/pc.c: struct hpet_fw_entry | +4 struct hpet_fw_config | +32 2 structs changed /tmp/qemu.exe: 12 functions changed, 38 bytes added, 78 bytes removed, diff: -40 --------------060104050202060406010907--