git: 473786a131b0 - main - edk2: Tweak the tests for UEFI Specification Data Type requirements

From: Warner Losh <imp_at_FreeBSD.org>
Date: Sun, 16 Nov 2025 18:29:05 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=473786a131b0546e60fc8330f79e270e145e1bfd

commit 473786a131b0546e60fc8330f79e270e145e1bfd
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-11-16 17:34:58 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-11-16 18:29:03 +0000

    edk2: Tweak the tests for UEFI Specification Data Type requirements
    
    On x86 these trigger for 32-bit builds. We only ever (will) do that for
    the 32-bit loader that starts a 64 bit kernel for ia32. For the moment,
    take the training wheels off, though most likely some compile flags need
    to be used to change the i386 ABI to force *int64_t alignment to 64
    bits or some other horror as yet ill-concieved. Despite this assertion,
    the ia32 to boot 64-bit kernels loaders seem to work.
    
    Sponsored by:           Netflix
    Differential Revision:  https://reviews.freebsd.org/D53653
---
 sys/contrib/edk2/Include/Base.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/contrib/edk2/Include/Base.h b/sys/contrib/edk2/Include/Base.h
index e3d03a9cc5ab..2b53e118b33f 100644
--- a/sys/contrib/edk2/Include/Base.h
+++ b/sys/contrib/edk2/Include/Base.h
@@ -841,8 +841,10 @@ 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");