summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Arm
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-12-15 00:58:34 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-12-15 00:58:34 +0000
commite7cb469e3aa3d5b05953a25f1ef40aea89d058c3 (patch)
treee0c5566224f5d00fc50873dbf2add9dc2856c7fa /MdePkg/Include/Arm
parent5792e320d321b7330d9c59859b183e310a34b7a3 (diff)
downloadedk2-platforms-e7cb469e3aa3d5b05953a25f1ef40aea89d058c3.tar.xz
Fix issue with CodeSourcery gcc requiring assembly functions to have a .type define inorder to support interworking (calling from thumb(C code) to ARM code (hadn written assembly). We had to add a macro as the .type directive is not supported, or needed, by Xcode. All ARM .S files need to be updated.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11167 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Include/Arm')
-rw-r--r--MdePkg/Include/Arm/ProcessorBind.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/MdePkg/Include/Arm/ProcessorBind.h b/MdePkg/Include/Arm/ProcessorBind.h
index 810bf03be0..a68b30b811 100644
--- a/MdePkg/Include/Arm/ProcessorBind.h
+++ b/MdePkg/Include/Arm/ProcessorBind.h
@@ -110,6 +110,20 @@ typedef INT32 INTN;
/// Define this macro to unify the usage.
///
#define ASM_GLOBAL .globl
+
+ #if !defined(__APPLE__)
+ ///
+ /// ARM EABI defines that the linker should not manipulate call relocations
+ /// (do bl/blx conversion) unless the target symbol has function type.
+ /// CodeSourcery 2010.09 started requiring the .type to function properly
+ ///
+ #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function
+ #else
+ //
+ // .type not supported by Apple Xcode tools
+ //
+ #define INTERWORK_FUNC(func__)
+ #endif
#endif
/**