diff options
| -rw-r--r-- | arch/powerpc/include/asm/elf.h | 2 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/thread_info.h | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h index cc0655a702a7..6d0e2369fe81 100644 --- a/arch/powerpc/include/asm/elf.h +++ b/arch/powerpc/include/asm/elf.h | |||
| @@ -86,6 +86,8 @@ typedef elf_vrregset_t elf_fpxregset_t; | |||
| 86 | #ifdef __powerpc64__ | 86 | #ifdef __powerpc64__ |
| 87 | # define SET_PERSONALITY(ex) \ | 87 | # define SET_PERSONALITY(ex) \ |
| 88 | do { \ | 88 | do { \ |
| 89 | if (((ex).e_flags & 0x3) == 2) \ | ||
| 90 | set_thread_flag(TIF_ELF2ABI); \ | ||
| 89 | if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ | 91 | if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ |
| 90 | set_thread_flag(TIF_32BIT); \ | 92 | set_thread_flag(TIF_32BIT); \ |
| 91 | else \ | 93 | else \ |
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index ba7b1973866e..05a3030b4582 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h | |||
| @@ -107,6 +107,9 @@ static inline struct thread_info *current_thread_info(void) | |||
| 107 | #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation | 107 | #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation |
| 108 | for stack store? */ | 108 | for stack store? */ |
| 109 | #define TIF_MEMDIE 17 /* is terminating due to OOM killer */ | 109 | #define TIF_MEMDIE 17 /* is terminating due to OOM killer */ |
| 110 | #if defined(CONFIG_PPC64) | ||
| 111 | #define TIF_ELF2ABI 18 /* function descriptors must die! */ | ||
| 112 | #endif | ||
| 110 | 113 | ||
| 111 | /* as above, but as bit values */ | 114 | /* as above, but as bit values */ |
| 112 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 115 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
| @@ -185,6 +188,12 @@ static inline bool test_thread_local_flags(unsigned int flags) | |||
| 185 | #define is_32bit_task() (1) | 188 | #define is_32bit_task() (1) |
| 186 | #endif | 189 | #endif |
| 187 | 190 | ||
| 191 | #if defined(CONFIG_PPC64) | ||
| 192 | #define is_elf2_task() (test_thread_flag(TIF_ELF2ABI)) | ||
| 193 | #else | ||
| 194 | #define is_elf2_task() (0) | ||
| 195 | #endif | ||
| 196 | |||
| 188 | #endif /* !__ASSEMBLY__ */ | 197 | #endif /* !__ASSEMBLY__ */ |
| 189 | 198 | ||
| 190 | #endif /* __KERNEL__ */ | 199 | #endif /* __KERNEL__ */ |
