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? Or did you mean to add "__attribute__((packed))" there? The linker error is due to multiply-defined __packed symbols:

ld: fatal: symbol '__packed' is multiply-defined:
        (file loader/i386/bsd_module-bsd.o type=OBJT; file 
loader/i386/bsd_module-bsd32.o type=OBJT);
ld: fatal: symbol '__packed' is multiply-defined:
        (file loader/i386/bsd_module-bsd.o type=OBJT; file 
loader/i386/bsd_module-bsd64.o type=OBJT);
ld: fatal: file processing errors. No output written to bsd.module

 --S


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to