]> git.proxmox.com Git - mirror_edk2.git/commitdiff
redefine the ASM_PFX to let it can work on Apple/NetBSD and other Unix* platform.
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Aug 2009 09:39:55 +0000 (09:39 +0000)
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Aug 2009 09:39:55 +0000 (09:39 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9073 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Ia32/ProcessorBind.h
MdePkg/Include/X64/ProcessorBind.h

index 4f24c67077d9254923834ee1457e572e0e0301bc..a3567267d8db62fc23d841414e7b2f49f8f1207b 100644 (file)
@@ -336,11 +336,18 @@ typedef INT32   INTN;
 // For symbol name in GNU assembly code, an extra "_" is necessary\r
 //\r
 #if defined(__GNUC__)\r
-  #if defined(linux)\r
-    #define ASM_PFX(name) name\r
-  #else\r
-    #define ASM_PFX(name) _##name\r
-  #endif \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
   ///\r
   /// For GNU assembly code, .global or .globl can declare global symbols.\r
   /// Define this macro to unify the usage.\r
index 363a2dca350da4da803d33ded7a832c268395278..027d8d0f59fc56efb0e47646ce9d668ceb41a58e 100644 (file)
@@ -400,11 +400,18 @@ typedef INT64   INTN;
 // For symbol name in GNU assembly code, an extra "_" is necessary\r
 //\r
 #if defined(__GNUC__)\r
-  #if defined(linux)\r
-    #define ASM_PFX(name) name\r
-  #else\r
-    #define ASM_PFX(name) _##name\r
-  #endif\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
   ///\r
   /// For GNU assembly code, .global or .globl can declare global symbols.\r
   /// Define this macro to unify the usage.\r