Re: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages

From: Parag Warudkar
Date: Sun Jan 28 2007 - 17:44:44 EST


On 1/28/07, Parag Warudkar <parag.warudkar@xxxxxxxxx> wrote:
>CONFIG_BINFMT_ELF=y
># CONFIG_BINFMT_MISC is not set
># CONFIG_IA32_EMULATION is not set

Hm Ok. That's explainable. You don't have CONFIG_IA32_EMULATION set
and arch_setup_additional pages is only defined/exported in
syscall32.c which won't be built in your case. (It should go away if
you set CONFIG_IA32_EMULATION).


I think the easy and correct fix for this situation is defining
CONFIG_ARCH_HAS_SETUP_ADDITIONAL_PAGES on x86_64 only if
IA32_EMULATION is defined. (Because x86_64 proper doesn't seem to
require arch_setup_additional_pages() only IA32 emulation requires
it.)

The patch below should fix it. (Please use attachment - less chance of
whitespace issues. Sorry no control over mail client atm)

Signed-off-by: Parag Warudkar <parag.warudkar@xxxxxxxxx>

--- linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig.orig 2007-01-28
17:32:09.000000000 -0500
+++ linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig 2007-01-28 17:32:48.000000000 -0500
@@ -405,7 +405,7 @@
config ARCH_HAS_SETUP_ADDITIONAL_PAGES
bool
default y
- depends on X86_64
+ depends on X86_64 && IA32_EMULATION

config OUT_OF_LINE_PFN_TO_PAGE
def_bool y
--- linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig.orig 2007-01-28 17:32:09.000000000 -0500
+++ linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig 2007-01-28 17:32:48.000000000 -0500
@@ -405,7 +405,7 @@
config ARCH_HAS_SETUP_ADDITIONAL_PAGES
bool
default y
- depends on X86_64
+ depends on X86_64 && IA32_EMULATION

config OUT_OF_LINE_PFN_TO_PAGE
def_bool y