Hi Pedro,
On 10.08.23 19:31, Frank Scheiner wrote:
Hi Pedro, all,
On 10.08.23 14:04, Pedro Miguel Justo wrote:
Here it is:
06edd40db76bb78457ac26156ed5f7b62381bbe8 is the first bad commit
commit 06edd40db76bb78457ac26156ed5f7b62381bbe8
Author: Oliver Steffen <ostef...@redhat.com>
Date: Fri May 26 13:35:43 2023 +0200
guid: Unify GUID types
There are 3 implementations of a GUID in GRUB. Replace them with
a common one, placed in types.h.
It uses the "packed" flavor of the GUID structs, the alignment
attribute
is dropped, since it is not required.
Signed-off-by: Oliver Steffen <ostef...@redhat.com>
Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com>
I had a quick look into this and the ia64 "related" part ([1]) switches
from an `__attribute__ ((aligned(8)))` struct "grub_efi_guid_t" to an
`__attribute__ ((packed))` struct "grub_guid_t" (see [2], [3] and
below), which might not work as expected on ia64.
Damn it, I should have read the commit message instead of the code
changes. It tells the - maybe - important thing already.
Unfortunately there's no info in [4] (where this was introduced) about
why exactly the aligment was intended in the first place.
[4]:
https://git.savannah.gnu.org/cgit/grub.git/commit/?id=837091258d7e9f4af3cc333ec775271f1b767d11
Linux actually uses a minimum alignment of 32 bits, see for example [5].
[5]:
https://github.com/torvalds/linux/blob/master/include/linux/efi.h#L60-L78
@Pedro:
Does it work again with `__attribute__ ((aligned(8)))` instead of
`__attribute__ ((packed))` for "grub_guid"?
Cheers,
Frank