Skip to content

Commit

Permalink
powerpc: Remove function descriptors and dot symbols on new ABI
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Anton Blanchard committed Apr 23, 2014
1 parent c1fb019 commit 7167af7
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/powerpc/include/asm/ftrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ struct dyn_arch_ftrace {
#endif

#if defined(CONFIG_FTRACE_SYSCALLS) && defined(CONFIG_PPC64) && !defined(__ASSEMBLY__)
#if !defined(_CALL_ELF) || _CALL_ELF != 2
#define ARCH_HAS_SYSCALL_MATCH_SYM_NAME
static inline bool arch_syscall_match_sym_name(const char *sym, const char *name)
{
Expand All @@ -72,6 +73,7 @@ static inline bool arch_syscall_match_sym_name(const char *sym, const char *name
*/
return !strcmp(sym + 4, name + 3);
}
#endif
#endif /* CONFIG_FTRACE_SYSCALLS && CONFIG_PPC64 && !__ASSEMBLY__ */

#endif /* _ASM_POWERPC_FTRACE */
2 changes: 2 additions & 0 deletions arch/powerpc/include/asm/linkage.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
#define _ASM_POWERPC_LINKAGE_H

#ifdef CONFIG_PPC64
#if !defined(_CALL_ELF) || _CALL_ELF != 2
#define cond_syscall(x) \
asm ("\t.weak " #x "\n\t.set " #x ", sys_ni_syscall\n" \
"\t.weak ." #x "\n\t.set ." #x ", .sys_ni_syscall\n")
#define SYSCALL_ALIAS(alias, name) \
asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
"\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
#endif
#endif

#endif /* _ASM_POWERPC_LINKAGE_H */
22 changes: 22 additions & 0 deletions arch/powerpc/include/asm/ppc_asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -225,6 +245,8 @@ GLUE(.,name):

#define DOTSYM(a) GLUE(.,a)

#endif

#else /* 32-bit */

#define _ENTRY(n) \
Expand Down

0 comments on commit 7167af7

Please sign in to comment.