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

[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>

authored by

Andi Kleen and committed by
Linus Torvalds
ea0be473 af9c142d

+12 -5
+1 -1
arch/x86_64/Kconfig
··· 510 510 left. 511 511 512 512 config IA32_AOUT 513 - bool "IA32 a.out support" 513 + tristate "IA32 a.out support" 514 514 depends on IA32_EMULATION 515 515 help 516 516 Support old a.out binaries in the 32bit emulation.
-3
arch/x86_64/ia32/ia32_aout.c
··· 36 36 #undef WARN_OLD 37 37 #undef CORE_DUMP /* probably broken */ 38 38 39 - extern int ia32_setup_arg_pages(struct linux_binprm *bprm, 40 - unsigned long stack_top, int exec_stack); 41 - 42 39 static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs); 43 40 static int load_aout_library(struct file*); 44 41
+3 -1
arch/x86_64/ia32/ia32_binfmt.c
··· 335 335 me->thread.es = __USER_DS; 336 336 } 337 337 338 - int setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top, int executable_stack) 338 + int ia32_setup_arg_pages(struct linux_binprm *bprm, unsigned long stack_top, 339 + int executable_stack) 339 340 { 340 341 unsigned long stack_base; 341 342 struct vm_area_struct *mpnt; ··· 390 389 391 390 return 0; 392 391 } 392 + EXPORT_SYMBOL(ia32_setup_arg_pages); 393 393 394 394 static unsigned long 395 395 elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type)
+3
arch/x86_64/kernel/x8664_ksyms.c
··· 203 203 #endif 204 204 205 205 EXPORT_SYMBOL(cpu_khz); 206 + 207 + EXPORT_SYMBOL(load_gs_index); 208 +
+5
include/asm-x86_64/ia32.h
··· 165 165 int do_get_thread_area(struct thread_struct *t, struct user_desc __user *info); 166 166 int do_set_thread_area(struct thread_struct *t, struct user_desc __user *info); 167 167 int ia32_child_tls(struct task_struct *p, struct pt_regs *childregs); 168 + 169 + struct linux_binprm; 170 + extern int ia32_setup_arg_pages(struct linux_binprm *bprm, 171 + unsigned long stack_top, int exec_stack); 172 + 168 173 #endif 169 174 170 175 #endif /* !CONFIG_IA32_SUPPORT */