Andi,
If CONFIG_SYCTL is not enabled then the x86-64 tree
fails to build due to use of a symbol that is not
compiled in. Don't bother compiling in the sysctl
register call if not building with sysctl.
matt
Signed-off-by: Matt Tolentino <[email protected]>
diff -urNp linux-2.6.12-rc2/arch/x86_64/kernel/vsyscall.c linux-2.6.12-rc2-m/arch/x86_64/kernel/vsyscall.c
--- linux-2.6.12-rc2/arch/x86_64/kernel/vsyscall.c 2005-04-04 12:39:06.000000000 -0400
+++ linux-2.6.12-rc2-m/arch/x86_64/kernel/vsyscall.c 2005-04-13 09:28:47.000000000 -0400
@@ -218,7 +218,9 @@ static int __init vsyscall_init(void)
BUG_ON((VSYSCALL_ADDR(0) != __fix_to_virt(VSYSCALL_FIRST_PAGE)));
map_vsyscall();
sysctl_vsyscall = 1;
+#ifdef CONFIG_SYSCTL
register_sysctl_table(kernel_root_table2, 0);
+#endif
return 0;
}
On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
>
> Andi,
>
> If CONFIG_SYCTL is not enabled then the x86-64 tree
> fails to build due to use of a symbol that is not
> compiled in. Don't bother compiling in the sysctl
> register call if not building with sysctl.
Thanks. Actually it would be better to fix up sysctl.h
to define dummy functions in this case. I thought it did
that already in fact....
-Andi
On 13 Apr 2005 20:29:13 +0200, Andi Kleen <[email protected]> wrote:
> On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
> >
> > Andi,
> >
> > If CONFIG_SYCTL is not enabled then the x86-64 tree
> > fails to build due to use of a symbol that is not
> > compiled in. Don't bother compiling in the sysctl
> > register call if not building with sysctl.
>
> Thanks. Actually it would be better to fix up sysctl.h
> to define dummy functions in this case. I thought it did
> that already in fact....
>
Yes it already does that, but kernel_root_table2 is not defined when
CONFIG_SYSCTL is not set (the problem isn't with
register_sysctl_table).
With 2.6.12-rc3:
arch/x86_64/kernel/vsyscall.c: In function `vsyscall_init':
arch/x86_64/kernel/vsyscall.c:221: error: `kernel_root_table2'
undeclared (first use in this function)
If you prefer, i can send a patch which sets kernel_table_root2 to
NULL when CONFIG_SYSCTL is not set. Or maybe there a better fix (btw
is sysctl_vsyscall needed when !CONFIG_SYSCTL ?).
regards,
Benoit
On Thu, Apr 21, 2005 at 06:16:48PM +0200, Benoit Boissinot wrote:
> On 13 Apr 2005 20:29:13 +0200, Andi Kleen <[email protected]> wrote:
> > On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
> > >
> > > Andi,
> > >
> > > If CONFIG_SYCTL is not enabled then the x86-64 tree
> > > fails to build due to use of a symbol that is not
> > > compiled in. Don't bother compiling in the sysctl
> > > register call if not building with sysctl.
> >
> > Thanks. Actually it would be better to fix up sysctl.h
> > to define dummy functions in this case. I thought it did
> > that already in fact....
> >
>
> Yes it already does that, but kernel_root_table2 is not defined when
> CONFIG_SYSCTL is not set (the problem isn't with
> register_sysctl_table).
>
> With 2.6.12-rc3:
> arch/x86_64/kernel/vsyscall.c: In function `vsyscall_init':
> arch/x86_64/kernel/vsyscall.c:221: error: `kernel_root_table2'
> undeclared (first use in this function)
>
> If you prefer, i can send a patch which sets kernel_table_root2 to
> NULL when CONFIG_SYSCTL is not set. Or maybe there a better fix (btw
> is sysctl_vsyscall needed when !CONFIG_SYSCTL ?).
Hmpf ok. I assumed they were macros who ignore their arguments.
The original patch was fine, thanks.
-Andi