Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+26
+2
arch/powerpc/include/asm/ftrace.h
··· 61 61 #endif 62 62 63 63 #if defined(CONFIG_FTRACE_SYSCALLS) && defined(CONFIG_PPC64) && !defined(__ASSEMBLY__) 64 + #if !defined(_CALL_ELF) || _CALL_ELF != 2 64 65 #define ARCH_HAS_SYSCALL_MATCH_SYM_NAME 65 66 static inline bool arch_syscall_match_sym_name(const char *sym, const char *name) 66 67 { ··· 73 72 */ 74 73 return !strcmp(sym + 4, name + 3); 75 74 } 75 + #endif 76 76 #endif /* CONFIG_FTRACE_SYSCALLS && CONFIG_PPC64 && !__ASSEMBLY__ */ 77 77 78 78 #endif /* _ASM_POWERPC_FTRACE */
+2
arch/powerpc/include/asm/linkage.h
··· 2 2 #define _ASM_POWERPC_LINKAGE_H 3 3 4 4 #ifdef CONFIG_PPC64 5 + #if !defined(_CALL_ELF) || _CALL_ELF != 2 5 6 #define cond_syscall(x) \ 6 7 asm ("\t.weak " #x "\n\t.set " #x ", sys_ni_syscall\n" \ 7 8 "\t.weak ." #x "\n\t.set ." #x ", .sys_ni_syscall\n") 8 9 #define SYSCALL_ALIAS(alias, name) \ 9 10 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ 10 11 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) 12 + #endif 11 13 #endif 12 14 13 15 #endif /* _ASM_POWERPC_LINKAGE_H */
+22
arch/powerpc/include/asm/ppc_asm.h
··· 192 192 #define __STK_PARAM(i) (48 + ((i)-3)*8) 193 193 #define STK_PARAM(i) __STK_PARAM(__REG_##i) 194 194 195 + #if defined(_CALL_ELF) && _CALL_ELF == 2 196 + 197 + #define _GLOBAL(name) \ 198 + .section ".text"; \ 199 + .align 2 ; \ 200 + .type name,@function; \ 201 + .globl name; \ 202 + name: 203 + 204 + #define _KPROBE(name) \ 205 + .section ".kprobes.text","a"; \ 206 + .align 2 ; \ 207 + .type name,@function; \ 208 + .globl name; \ 209 + name: 210 + 211 + #define DOTSYM(a) a 212 + 213 + #else 214 + 195 215 #define XGLUE(a,b) a##b 196 216 #define GLUE(a,b) XGLUE(a,b) 197 217 ··· 244 224 GLUE(.,name): 245 225 246 226 #define DOTSYM(a) GLUE(.,a) 227 + 228 + #endif 247 229 248 230 #else /* 32-bit */ 249 231