Revised version of last year’s https://edk2.groups.io/g/devel/message/79670
Initially caught by last year‘s https://edk2.groups.io/g/devel/message/79318
But now caught *yet again*, independently, via bugs during development.
Cc stewards so this issue finally gets some attention. Might need
; Andrew Fish
Subject: Re: [edk2-devel] [PATCH 1/1] BaseTools: Fix IA32 UINT64 alignment for
CLANG toolchains
Revised version of last year’s https://edk2.groups.io/g/devel/message/79670
Initially caught by last year‘s https://edk2.groups.io/g/devel/message/79318
But now caught *yet again
ine
> Subject: [edk2-devel] [PATCH 1/1] BaseTools: Fix IA32 UINT64 alignment for
> CLANG toolchains
>
> Currently, UINT64 is not 8-byte aligned for CLANG* toolchains on IA32,
> which causes ABI differences between IA32 and X64 in such simple examples as:
>
> struct S {UINT
PS: it's worth noting that at this moment in time, due to this, the CLANG
toolchains are very broken as they break the UEFI spec and are silently
incompatible with modules compiled in both GCC and MSVC.
Fixing this should be top priority.
Pedro
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You
Currently, UINT64 is not 8-byte aligned for CLANG* toolchains on IA32,
which causes ABI differences between IA32 and X64 in such simple examples as:
struct S {UINT32 A; UINT64 B;};
Pass -malign-double to align it to 8 bytes, as is done for GCC already.
Signed-off-by: Pedro Falcato
Cc: Marvin