Re: Important packages that are broken ia64
Frank Scheiner <[email protected]> Fri, 11 Aug 2023 08:29:55 +0200
| Newsgroups | gmane.linux.debian.ports.ia64 |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> >> 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 <[email protected]> >> Reviewed-by: Daniel Kiper <[email protected]> >> > > 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