]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/X64/ProcessorBind.h
SecurityPkg: Tcg2ConfigDxe/Tcg2Smm: Fix TPM2 HID issue
[mirror_edk2.git] / MdePkg / Include / X64 / ProcessorBind.h
index 666cc8e8bd165c3eb35ad82783fd6a41932ac36d..23e6e55abff67cd02df8f9e92db456ea04c16006 100644 (file)
 #pragma pack()\r
 #endif\r
 \r
-#if defined(__GNUC__) && defined(__pic__)\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
@@ -89,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
 #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