On Fri, Jul 25, 2008 at 12:14:55PM +0300, Adrian Bunk wrote: > On Fri, Jul 25, 2008 at 01:55:37AM -0700, Andrew Morton wrote: >... > > pls test: > > > > diff -puN include/linux/sched.h~a include/linux/sched.h > > --- a/include/linux/sched.h~a > > +++ a/include/linux/sched.h > > @@ -2139,16 +2139,7 @@ static inline void set_task_cpu(struct t > > > > #endif /* CONFIG_SMP */ > > > > -#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT > > extern void arch_pick_mmap_layout(struct mm_struct *mm); > > -#else > > -static inline void arch_pick_mmap_layout(struct mm_struct *mm) > > -{ > > - mm->mmap_base = TASK_UNMAPPED_BASE; > > - mm->get_unmapped_area = arch_get_unmapped_area; > > - mm->unmap_area = arch_unmap_area; > > -} > > -#endif > > > > #ifdef CONFIG_TRACING > > extern void > > diff -puN mm/mmap.c~a mm/mmap.c > > --- a/mm/mmap.c~a > > +++ a/mm/mmap.c > > @@ -2268,3 +2268,12 @@ int install_special_mapping(struct mm_st > > > > return 0; > > } > > + > > +#ifndef HAVE_ARCH_PICK_MMAP_LAYOUT > > +void arch_pick_mmap_layout(struct mm_struct *mm) > > +{ > > + mm->mmap_base = TASK_UNMAPPED_BASE; > > + mm->get_unmapped_area = arch_get_unmapped_area; > > + mm->unmap_area = arch_unmap_area; > > +} > > +#endif > > Nice, this seems to fix the problem. >... Further testing revealed that you should choose a file that also gets compiled on MMU-less architectures: <-- snip --> ... LD vmlinux fs/built-in.o: In function `flush_old_exec': (.text+0x6ae8): undefined reference to `arch_pick_mmap_layout' fs/built-in.o: In function `flush_old_exec': (.text+0x6cf0): undefined reference to `arch_pick_mmap_layout' make[1]: *** [vmlinux] Error 1 <-- snip --> cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html