Edk2 enables Os option and ms_va_list in GCC tool chain.
This change makes VA_LIST is not pointer, and cause GCC failure.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming....@intel.com>
---
 .../EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c   | 2 +-
 .../EdkIIGlueLib/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c   | 2 +-
 .../Library/SmmRuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c      | 2 +-
 EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/ReportStatusCode.c  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
index a1c232d..d872194 100644
--- 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
+++ 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
@@ -296,7 +296,7 @@ GlueReportStatusCodeExtractDebugInfo (
 
   *ErrorLevel = DebugInfo->ErrorLevel;
 
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__GNUC__)
   // This is non portable C code you can't assume VA_LIST is pointer
   return FALSE;
 #else
diff --git 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
index 29207e0..248b781 100644
--- 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
+++ 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
@@ -248,7 +248,7 @@ GlueReportStatusCodeExtractDebugInfo (
   // The first 12 * UINTN bytes of the string are really an 
   // argument stack to support varargs on the Format string.
   //
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__GNUC__)
   // This is non portable C code you can't assume VA_LIST is pointer
   return FALSE;
 #else
diff --git 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
index ef16d40..1b3d5cd 100644
--- 
a/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
+++ 
b/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/SmmRuntimeDxeReportStatusCodeLib/ReportStatusCodeLib.c
@@ -280,7 +280,7 @@ GlueReportStatusCodeExtractDebugInfo (
   // The first 12 * UINTN bytes of the string are really an
   // argument stack to support varargs on the Format string.
   //
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__GNUC__)
   // This is non portable C code you can't assume VA_LIST is pointer
   return FALSE;
 #else
diff --git 
a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/ReportStatusCode.c 
b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/ReportStatusCode.c
index 58d97ac..47b65a8 100644
--- a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/ReportStatusCode.c
+++ b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/ReportStatusCode.c
@@ -332,7 +332,7 @@ Returns:
   // The first 12 * UINTN bytes of the string are really an 
   // arguement stack to support varargs on the Format string.
   //
-#if (defined (EFIARM) || defined (EFIAARCH64) || defined (__APPLE__))
+#if (defined (EFIARM) || defined (EFIAARCH64) || defined (__APPLE__) || 
defined (__GNUC__))
   // It is not legal C code to cast VA_LIST to a pointer. VA_LIST can 
   // be a structure. 
   return FALSE;
-- 
2.8.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to