Hi, Paul, does this patch work for you?
Michael, if it does please repost with your SOB and Tested-by: lines. Daniel On Wed, Mar 21, 2018 at 05:44:47PM +0800, Michael Chang wrote: > Here just came up with a patch that fixed the GCC 8 error for me. :) Would you > test it work for you as well ? > > Thanks, > Michael > > -- > > When building with GCC 8, there are several errors regarding > packed-not-aligned. > > ./include/grub/gpt_partition.h:79:1: error: alignment 1 of ???struct > grub_gpt_partentry??? is less than 8 [-Werror=packed-not-aligned] > > This patch tries to fix the build error by cleaning up the ambiguity of > placing > aligned structure in a packed one. In "struct grub_btrfs_time" and "struct > grub_gpt_part_type", the aligned attribute seems to be superfluous, and also > has to be packed, to ensure the structure is bit-to-bit mapped to the format > laid on disk. I think we could blame to copy and paste error here for the > mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as > the name suggests. :) > > --- > grub-core/fs/btrfs.c | 2 +- > include/grub/efiemu/runtime.h | 2 +- > include/grub/gpt_partition.h | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c > index 4849c1ceb..be195448d 100644 > --- a/grub-core/fs/btrfs.c > +++ b/grub-core/fs/btrfs.c > @@ -175,7 +175,7 @@ struct grub_btrfs_time > { > grub_int64_t sec; > grub_uint32_t nanosec; > -} __attribute__ ((aligned (4))); > +} GRUB_PACKED; > > struct grub_btrfs_inode > { > diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h > index 9b6b729f4..36d2dedf4 100644 > --- a/include/grub/efiemu/runtime.h > +++ b/include/grub/efiemu/runtime.h > @@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel > > struct efi_variable > { > - grub_efi_guid_t guid; > + grub_efi_packed_guid_t guid; > grub_uint32_t namelen; > grub_uint32_t size; > grub_efi_uint32_t attributes; > diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h > index 1b32f6725..9668a68c3 100644 > --- a/include/grub/gpt_partition.h > +++ b/include/grub/gpt_partition.h > @@ -28,7 +28,7 @@ struct grub_gpt_part_type > grub_uint16_t data2; > grub_uint16_t data3; > grub_uint8_t data4[8]; > -} __attribute__ ((aligned(8))); > +} GRUB_PACKED; > typedef struct grub_gpt_part_type grub_gpt_part_type_t; > > #define GRUB_GPT_PARTITION_TYPE_EMPTY \ > -- > 2.13.6 > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel