From cc0e412ad05574d22938586172c56863666eb2a5 Mon Sep 17 00:00:00 2001 From: Nolan Hergert Date: Mon, 5 Apr 2021 11:15:09 +0800 Subject: [PATCH] Ignore STATIC_ASSERT and NULL definition so we can compile in OS Upstream-Status: Backport [from ipmctl patches; https://github.com/intel/ipmctl/blob/development/src/os/patches/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch] Signed-off-by: Nolan Hergert Signed-off-by: Naveen Saini --- MdePkg/Include/Base.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index 8e4271f6ea..c39511a064 100644 --- a/MdePkg/Include/Base.h +++ b/MdePkg/Include/Base.h @@ -318,7 +318,11 @@ struct _LIST_ENTRY { /// /// NULL pointer (VOID *) /// +#ifndef OS_BUILD +#ifndef UNIT_TEST_UEFI_BUILD #define NULL ((VOID *) 0) +#endif +#endif // // Null character @@ -809,7 +813,8 @@ typedef UINTN *BASE_LIST; // Verify that ProcessorBind.h produced UEFI Data Types that are compliant with // Section 2.3.1 of the UEFI 2.3 Specification. // - +#ifndef OS_BUILD +#ifndef UNIT_TEST_UEFI_BUILD STATIC_ASSERT (sizeof (BOOLEAN) == 1, "sizeof (BOOLEAN) does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (INT8) == 1, "sizeof (INT8) does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (UINT8) == 1, "sizeof (UINT8) does not meet UEFI Specification Data Type requirements"); @@ -821,6 +826,8 @@ STATIC_ASSERT (sizeof (INT64) == 8, "sizeof (INT64) does not meet UEFI Specifi STATIC_ASSERT (sizeof (UINT64) == 8, "sizeof (UINT64) does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (CHAR8) == 1, "sizeof (CHAR8) does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (CHAR16) == 2, "sizeof (CHAR16) does not meet UEFI Specification Data Type requirements"); +#endif +#endif // // The following three enum types are used to verify that the compiler @@ -841,9 +848,13 @@ typedef enum { __VerifyUint32EnumValue = 0xffffffff } __VERIFY_UINT32_ENUM_SIZE; +#ifndef OS_BUILD +#ifndef UNIT_TEST_UEFI_BUILD STATIC_ASSERT (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); STATIC_ASSERT (sizeof (__VERIFY_UINT32_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); +#endif +#endif /** Macro that returns a pointer to the data structure that contains a specified field of -- 2.17.1