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?

Also, can you tell which target this failed on?

Thanks.

>
>
> Regards
> oh

Reply via email to