On 11/09/2011 01:14 AM, Seth Goldberg wrote:
Hi,The following structure definition is causing linker failures (not with GNU ld) when building GRUB2: struct grub_netbsd_btinfo_bootwedge { grub_uint32_t biosdev; grub_disk_addr_t startblk; grub_uint64_t nblks; grub_disk_addr_t matchblk; grub_uint64_t matchnblks; grub_uint8_t matchhash[16]; /* MD5 hash */ } __packed; The question is: Is this a valid way to declare a structure with a packed data structure on NetBSD?
Yes. IIRC, this struct declaration was inspired from: http://nxr.netbsd.org/xref/src/sys/arch/x86/include/bootinfo.h#70 > Or did you mean to add "__attribute__((packed))"
there?
Indeed, you're right. NetBSD defines __packed depending on the compiler: http://nxr.netbsd.org/source/xref/src/sys/sys/cdefs.h#314 For GCC, it's "__attribute__((__packed__))" as you said. Sorry about that. I wonder why it didn't cause problems until now, though. Grégoire _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
