Re: git: 2fa4bdd7f9e9 - main - edk2: enable static asserts for *INT64 alignment

From: Kevin Bowling <kevin.bowling_at_kev009.com>
Date: Sat, 30 May 2026 22:54:12 UTC
On Sat, May 30, 2026 at 2:50 PM Ahmad Khalifa <vexeduxr@freebsd.org> wrote:
>
> On Sat May 30, 2026 at 8:09 PM +0300, A FreeBSD User wrote:
> > Am Tage des Herren Sat, 30 May 2026 02:45:12 +0000
> > Ahmad Khalifa <vexeduxr@FreeBSD.org> schrieb:
> >
> >> The branch main has been updated by vexeduxr:
> >>
> >> URL: https://cgit.FreeBSD.org/src/commit/?id=2fa4bdd7f9e99698a6652db405c3165fdcd41c1d
> >>
> >> commit 2fa4bdd7f9e99698a6652db405c3165fdcd41c1d
> >> Author:     Ahmad Khalifa <vexeduxr@FreeBSD.org>
> >> AuthorDate: 2026-05-30 02:40:58 +0000
> >> Commit:     Ahmad Khalifa <vexeduxr@FreeBSD.org>
> >> CommitDate: 2026-05-30 02:40:58 +0000
> >>
> >>     edk2: enable static asserts for *INT64 alignment
> >>
> >>     The ia32 loader is now built with -malign-double, so these should pass.
> >>
> >>     Differential Revision:  https://reviews.freebsd.org/D55386
> >> ---
> >>  sys/contrib/edk2/Include/Base.h | 2 --
> >>  1 file changed, 2 deletions(-)
> >>
> >> diff --git a/sys/contrib/edk2/Include/Base.h b/sys/contrib/edk2/Include/Base.h
> >> index 3ae798db8429..d3342c9a6ca2 100644
> >> --- a/sys/contrib/edk2/Include/Base.h
> >> +++ b/sys/contrib/edk2/Include/Base.h
> >> @@ -841,10 +841,8 @@ STATIC_ASSERT (ALIGNOF (INT16)   == sizeof (INT16), "Alignment of INT16
> >> does not STATIC_ASSERT (ALIGNOF (UINT16)  == sizeof (UINT16), "Alignment of UINT16 does not
> >> meet UEFI Specification Data Type requirements"); STATIC_ASSERT (ALIGNOF (INT32)   == sizeof
> >> (INT32), "Alignment of INT32 does not meet UEFI Specification Data Type requirements");
> >> STATIC_ASSERT (ALIGNOF (UINT32)  == sizeof (UINT32), "Alignment of UINT32 does not meet UEFI
> >> Specification Data Type requirements"); -#ifndef _STANDALONE STATIC_ASSERT (ALIGNOF (INT64)
> >>  == sizeof (INT64), "Alignment of INT64 does not meet UEFI Specification Data Type
> >> requirements"); STATIC_ASSERT (ALIGNOF (UINT64)  == sizeof (UINT64), "Alignment of UINT64
> >> does not meet UEFI Specification Data Type requirements"); -#endif STATIC_ASSERT (ALIGNOF
> >> (CHAR8)   == sizeof (CHAR8), "Alignment of CHAR8 does not meet UEFI Specification Data Type
> >> requirements"); STATIC_ASSERT (ALIGNOF (CHAR16)  == sizeof (CHAR16), "Alignment of CHAR16
> >> does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (ALIGNOF (INTN)
> >> == sizeof (INTN), "Alignment of INTN does not meet UEFI Specification Data Type
> >> requirements");
> >>
> >
> > The commit seems to disturb building process and gets rogue with:
> > [...]
> > In file included from /usr/src/sys/contrib/edk2/Include/Uefi/UefiBaseType.h:16:
> > /usr/src/sys/contrib/edk2/Include/Base.h:844:16: error: static assertion failed due to
> > requirement '_Alignof(long long) == sizeof(long long)': Alignment of INT64 does not meet UEFI
> > Specification Data Type requirements 844 | STATIC_ASSERT (ALIGNOF (INT64)   == sizeof (INT64),
> > "Alignment of INT64 does not meet UEFI Specification Data Type requirements"); |
> >  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/sys/contrib/edk2/Include/Base.h:778:24: note:
> > expanded from macro 'ALIGNOF'
>
> I can't reproduce with the defaults, do you have any loader related
> build options changed?

Maybe a transient stale rebuild artifact, I was able to get through it
with -j1 somehow.

> Also, can you tell which target this failed on?
>
> Thanks.
>
> >
> >
> > Regards
> > oh
>