summaryrefslogtreecommitdiff
path: root/arch/powerpc/include/asm/ppc_asm.h
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2014-02-04 16:07:20 +1100
committerAnton Blanchard <anton@samba.org>2014-04-23 10:05:20 +1000
commit7167af7cebedc7c2051184fef0e165aeb67d0b9d (patch)
tree27ce4c3220e6e21c8b323a95d1b45a3d8f25159a /arch/powerpc/include/asm/ppc_asm.h
parentc1fb019477c27bfe309be282d178a08e56f05249 (diff)
powerpc: Remove function descriptors and dot symbols on new ABI
ABIv2 doesn't have function descriptors or dot symbols. One new thing it does add is a function global and a local entry point, so add that to our _GLOBAL macro. Signed-off-by: Anton Blanchard <anton@samba.org>
Diffstat (limited to 'arch/powerpc/include/asm/ppc_asm.h')
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index 61992d8f99df..5394d41a7140 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -192,6 +192,26 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
#define __STK_PARAM(i) (48 + ((i)-3)*8)
#define STK_PARAM(i) __STK_PARAM(__REG_##i)
+#if defined(_CALL_ELF) && _CALL_ELF == 2
+
+#define _GLOBAL(name) \
+ .section ".text"; \
+ .align 2 ; \
+ .type name,@function; \
+ .globl name; \
+name:
+
+#define _KPROBE(name) \
+ .section ".kprobes.text","a"; \
+ .align 2 ; \
+ .type name,@function; \
+ .globl name; \
+name:
+
+#define DOTSYM(a) a
+
+#else
+
#define XGLUE(a,b) a##b
#define GLUE(a,b) XGLUE(a,b)
@@ -225,6 +245,8 @@ GLUE(.,name):
#define DOTSYM(a) GLUE(.,a)
+#endif
+
#else /* 32-bit */
#define _ENTRY(n) \