]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Include/Ia32/EfiBind.h
Fixed issues compiling for Apple gcc on IA-32
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Include / Ia32 / EfiBind.h
index cab1ea1e76a9346fcff483782cd0892920ed52f2..12d7154d0baef7754124cbf5290523d41869fb3d 100644 (file)
@@ -83,7 +83,9 @@ Abstract:
 //\r
 // Make sure we are useing the correct packing rules per EFI specification\r
 //\r
+#ifndef __GNUC__\r
 #pragma pack()\r
+#endif\r
 \r
 #if __INTEL_COMPILER\r
 //\r
@@ -114,6 +116,12 @@ Abstract:
 //\r
 #pragma warning ( disable : 1419 )\r
 \r
+//\r
+// Disable ICC's remark #869: "Parameter" was never referenced warning.\r
+// This is legal ANSI C code so we disable the remark that is turned on with -Wall\r
+//\r
+#pragma warning ( disable : 869 )\r
+\r
 #endif\r
 \r
 \r
@@ -303,12 +311,19 @@ typedef int32_t   intn_t;
 //\r
 // For symbol name in GNU assembly code, an extra "_" is necessary\r
 //\r
-#if __GNUC__\r
-  #if defined(linux)\r
-    #define ASM_PFX(name) name\r
-  #else\r
-    #define ASM_PFX(name) _##name\r
-  #endif \r
+#if defined(__GNUC__)\r
+  ///\r
+  /// Private worker functions for ASM_PFX()\r
+  ///\r
+  #define _CONCATENATE(a, b)  __CONCATENATE(a, b)\r
+  #define __CONCATENATE(a, b) a ## b\r
+\r
+  ///\r
+  /// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix\r
+  /// on symbols in assembly language.\r
+  ///\r
+  #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)\r
+\r
 #endif\r
 \r
 #endif\r