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 ...
