aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386/elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-i386/elf.h')
-rw-r--r--include/asm-i386/elf.h30
1 files changed, 10 insertions, 20 deletions
diff --git a/include/asm-i386/elf.h b/include/asm-i386/elf.h
index 952b3ee3c9bb..b32df3a332da 100644
--- a/include/asm-i386/elf.h
+++ b/include/asm-i386/elf.h
@@ -9,8 +9,6 @@
9#include <asm/user.h> 9#include <asm/user.h>
10#include <asm/auxvec.h> 10#include <asm/auxvec.h>
11 11
12#include <linux/utsname.h>
13
14#define R_386_NONE 0 12#define R_386_NONE 0
15#define R_386_32 1 13#define R_386_32 1
16#define R_386_PC32 2 14#define R_386_PC32 2
@@ -133,39 +131,31 @@ extern int dump_task_extended_fpu (struct task_struct *, struct user_fxsr_struct
133#define ELF_CORE_COPY_XFPREGS(tsk, elf_xfpregs) dump_task_extended_fpu(tsk, elf_xfpregs) 131#define ELF_CORE_COPY_XFPREGS(tsk, elf_xfpregs) dump_task_extended_fpu(tsk, elf_xfpregs)
134 132
135#define VDSO_HIGH_BASE (__fix_to_virt(FIX_VDSO)) 133#define VDSO_HIGH_BASE (__fix_to_virt(FIX_VDSO))
136#define VDSO_BASE ((unsigned long)current->mm->context.vdso) 134#define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso)
137 135#define VDSO_PRELINK 0
138#ifdef CONFIG_COMPAT_VDSO
139# define VDSO_COMPAT_BASE VDSO_HIGH_BASE
140# define VDSO_PRELINK VDSO_HIGH_BASE
141#else
142# define VDSO_COMPAT_BASE VDSO_BASE
143# define VDSO_PRELINK 0
144#endif
145 136
146#define VDSO_SYM(x) \ 137#define VDSO_SYM(x) \
147 (VDSO_COMPAT_BASE + (unsigned long)(x) - VDSO_PRELINK) 138 (VDSO_CURRENT_BASE + (unsigned long)(x) - VDSO_PRELINK)
148 139
149#define VDSO_HIGH_EHDR ((const struct elfhdr *) VDSO_HIGH_BASE) 140#define VDSO_HIGH_EHDR ((const struct elfhdr *) VDSO_HIGH_BASE)
150#define VDSO_EHDR ((const struct elfhdr *) VDSO_COMPAT_BASE) 141#define VDSO_EHDR ((const struct elfhdr *) VDSO_CURRENT_BASE)
151 142
152extern void __kernel_vsyscall; 143extern void __kernel_vsyscall;
153 144
154#define VDSO_ENTRY VDSO_SYM(&__kernel_vsyscall) 145#define VDSO_ENTRY VDSO_SYM(&__kernel_vsyscall)
155 146
156#ifndef CONFIG_COMPAT_VDSO
157#define ARCH_HAS_SETUP_ADDITIONAL_PAGES
158struct linux_binprm; 147struct linux_binprm;
148
149#define ARCH_HAS_SETUP_ADDITIONAL_PAGES
159extern int arch_setup_additional_pages(struct linux_binprm *bprm, 150extern int arch_setup_additional_pages(struct linux_binprm *bprm,
160 int executable_stack); 151 int executable_stack);
161#endif
162 152
163extern unsigned int vdso_enabled; 153extern unsigned int vdso_enabled;
164 154
165#define ARCH_DLINFO \ 155#define ARCH_DLINFO \
166do if (vdso_enabled) { \ 156do if (vdso_enabled) { \
167 NEW_AUX_ENT(AT_SYSINFO, VDSO_ENTRY); \ 157 NEW_AUX_ENT(AT_SYSINFO, VDSO_ENTRY); \
168 NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_COMPAT_BASE); \ 158 NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_CURRENT_BASE); \
169} while (0) 159} while (0)
170 160
171#endif 161#endif