]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/X64/ProcessorBind.h
PcAtChipsetPkg: Add description for new added PCD in commit e78aab9d2
[mirror_edk2.git] / MdePkg / Include / X64 / ProcessorBind.h
index 81dbe188ca4983cd3fd49f0f3bf4226fade5b190..72cc85151cba066f1c552772a25cd45bb420e33d 100644 (file)
 #pragma pack()\r
 #endif\r
 \r
+#if defined(__GNUC__) && defined(__pic__) && !defined(USING_LTO)\r
+//\r
+// Mark all symbol declarations and references as hidden, meaning they will\r
+// not be subject to symbol preemption. This allows the compiler to refer to\r
+// symbols directly using relative references rather than via the GOT, which\r
+// contains absolute symbol addresses that are subject to runtime relocation.\r
+//\r
+// The LTO linker will not emit GOT based relocations when all symbol\r
+// references can be resolved locally, and so there is no need to set the\r
+// pragma in that case (and doing so will cause other issues).\r
+//\r
+#pragma GCC visibility push (hidden)\r
+#endif\r
 \r
 #if defined(__INTEL_COMPILER)\r
 //\r
@@ -80,7 +93,7 @@
 #pragma warning ( disable : 4057 )\r
 \r
 //\r
-// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning\r
+// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning\r
 //\r
 #pragma warning ( disable : 4127 )\r
 \r
 //\r
 #pragma warning ( disable : 4206 )\r
 \r
-#if _MSC_VER == 1800\r
+#if _MSC_VER == 1800 || _MSC_VER == 1900\r
 \r
 //\r
 // Disable these warnings for VS2013.\r
 \r
 //\r
 // This warning is for potentially uninitialized local variable, and it may cause false \r
-// positive issues in VS2013 build\r
+// positive issues in VS2013 and VS2015 build\r
 //\r
 #pragma warning ( disable : 4701 )\r
   \r
 //\r
 // This warning is for potentially uninitialized local pointer variable, and it may cause \r
-// false positive issues in VS2013 build\r
+// false positive issues in VS2013 and VS2015 build\r
 //\r
 #pragma warning ( disable : 4703 )\r
   \r
 \r
 #if defined(_MSC_EXTENSIONS)\r
   //\r
-  // use Microsoft C complier dependent integer width types \r
+  // use Microsoft C compiler dependent integer width types\r
   //\r
 \r
   ///\r
@@ -258,6 +271,12 @@ typedef INT64   INTN;
 ///\r
 #define CPU_STACK_ALIGNMENT   16\r
 \r
+///\r
+/// Page allocation granularity for x64\r
+///\r
+#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)\r
+#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x1000)\r
+\r
 //\r
 // Modifier to ensure that all protocol member functions and EFI intrinsics\r
 // use the correct C calling convention. All protocol member functions and\r