On Sun May 31, 2026 at 1:01 PM +0300, A FreeBSD User wrote:
> Am Tage des Herren Sat, 30 May 2026 17:11:38 -0700
> Ahmad Khalifa <[email protected]> schrieb:
>
>> On Sun May 31, 2026 at 1:54 AM +0300, Kevin Bowling wrote:
>> > On Sat, May 30, 2026 at 2:50 PM Ahmad Khalifa <[email protected]> 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 <[email protected]> schrieb:
>> >> >
>> >> >> The branch main has been updated by vexeduxr:
>> >> >>
>> >> >> URL: 
>> >> >> https://cgit.FreeBSD.org/src/commit/?id=2fa4bdd7f9e99698a6652db405c3165fdcd41c1d
>> >> >>
>> >> >> commit 2fa4bdd7f9e99698a6652db405c3165fdcd41c1d
>> >> >> Author:     Ahmad Khalifa <[email protected]>
>> >> >> AuthorDate: 2026-05-30 02:40:58 +0000
>> >> >> Commit:     Ahmad Khalifa <[email protected]>
>> >> >> 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.
>>
>> Hmm, after building this a few times I do run into a race condition
>> where the interpreter isn't done building before loader_ia32.efi. Is
>> that what you ran into?
>>
>> Looks like the SUBDIR entries need to be re-ordered, that's a different
>> issue from the one above though.
>>
>> >
>> >> Also, can you tell which target this failed on?
>> >>
>> >> Thanks.
>> >>
>> >> >
>> >> >
>> >> > Regards
>> >> > oh
>> >>
>>
>
> Architecture is amd64.
> Most prominent changes/options in /etc/src.conf amongst non-debug flags are 
> in my case:
>
> WITH_BEARSSL=                   YES
> WITHOUT_LOADER_PXEBOOT= YES
> LOADERSIZE?=                    555000
> WITH_BHYVE_SNAPSHOT=    YES

Ah, looks like WITH_BEARSSL triggered it.
Seems like we're building the EFI bits of libsecureboot, even for the
BIOS loader... I'll revert for now until I can do a deeper dive.

Thanks for the report.

>
> I had to mess with the loadersize in the past since loader didn't build 
> anymore due to some
> bytes of space missing ...

Reply via email to