diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h
index 2da08b0c78..072eefdb94 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
@@ -810,6 +814,8 @@ typedef UINTN *BASE_LIST;
// 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");
@@ -823,6 +829,8 @@ STATIC_ASSERT (sizeof (CHAR8) == 1, "sizeof (CHAR8) does not meet UEFI Specifi
STATIC_ASSERT (sizeof (CHAR16) == 2, "sizeof (CHAR16) does not meet UEFI Specification Data Type requirements");
STATIC_ASSERT (sizeof (L'A') == 2, "sizeof (L'A') does not meet UEFI Specification Data Type requirements");
STATIC_ASSERT (sizeof (L"A") == 4, "sizeof (L\"A\") does not meet UEFI Specification Data Type requirements");
+#endif
+#endif
//
// The following three enum types are used to verify that the compiler
@@ -843,9 +851,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.22.0.windows.1