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