[PATCH] x86_64: Allow modular build of ia32 aout loader
Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
af9c142de9
commit
ea0be473a1
5 changed files with 12 additions and 5 deletions
|
@ -510,7 +510,7 @@ config IA32_EMULATION
|
||||||
left.
|
left.
|
||||||
|
|
||||||
config IA32_AOUT
|
config IA32_AOUT
|
||||||
bool "IA32 a.out support"
|
tristate "IA32 a.out support"
|
||||||
depends on IA32_EMULATION
|
depends on IA32_EMULATION
|
||||||
help
|
help
|
||||||
Support old a.out binaries in the 32bit emulation.
|
Support old a.out binaries in the 32bit emulation.
|
||||||
|
|
|
@ -36,9 +36,6 @@
|
||||||
#undef WARN_OLD
|
#undef WARN_OLD
|
||||||
#undef CORE_DUMP /* probably broken */
|
#undef CORE_DUMP /* probably broken */
|
||||||
|
|
||||||
extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
|
|
||||||
unsigned long stack_top, int exec_stack);
|
|
||||||
|
|
||||||
static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs);
|
static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs);
|
||||||
static int load_aout_library(struct file*);
|
static int load_aout_library(struct file*);
|
||||||
|
|
||||||
|
|
|
@ -335,7 +335,8 @@ static void elf32_init(struct pt_regs *regs)
|
||||||
me->thread.es = __USER_DS;
|
me->thread.es = __USER_DS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top, int executable_stack)
|
int ia32_setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top,
|
||||||
|
int executable_stack)
|
||||||
{
|
{
|
||||||
unsigned long stack_base;
|
unsigned long stack_base;
|
||||||
struct vm_area_struct *mpnt;
|
struct vm_area_struct *mpnt;
|
||||||
|
@ -389,6 +390,7 @@ int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top, int exec
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(ia32_setup_arg_pages);
|
||||||
|
|
||||||
static unsigned long
|
static unsigned long
|
||||||
elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type)
|
elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type)
|
||||||
|
|
|
@ -203,3 +203,6 @@ EXPORT_SYMBOL(flush_tlb_page);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
EXPORT_SYMBOL(cpu_khz);
|
EXPORT_SYMBOL(cpu_khz);
|
||||||
|
|
||||||
|
EXPORT_SYMBOL(load_gs_index);
|
||||||
|
|
||||||
|
|
|
@ -165,6 +165,11 @@ struct siginfo_t;
|
||||||
int do_get_thread_area(struct thread_struct *t, struct user_desc __user *info);
|
int do_get_thread_area(struct thread_struct *t, struct user_desc __user *info);
|
||||||
int do_set_thread_area(struct thread_struct *t, struct user_desc __user *info);
|
int do_set_thread_area(struct thread_struct *t, struct user_desc __user *info);
|
||||||
int ia32_child_tls(struct task_struct *p, struct pt_regs *childregs);
|
int ia32_child_tls(struct task_struct *p, struct pt_regs *childregs);
|
||||||
|
|
||||||
|
struct linux_binprm;
|
||||||
|
extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
|
||||||
|
unsigned long stack_top, int exec_stack);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* !CONFIG_IA32_SUPPORT */
|
#endif /* !CONFIG_IA32_SUPPORT */
|
||||||
|
|
Loading…
Reference in a new issue