Re: [patch] hugetlbfs: fix build failure on 64-bit x86

Ingo Molnar
2008-07-26T11:22:29Z

* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Sat, 26 Jul 2008 11:16:54 +0200 Ingo Molnar <mingo@elte.hu> wrote:
>
> >
> > [resend, still relevant to -git]
> >
> > >From 5215af24a20e5f448ee45cd1d97c4118b876c0f6 Mon Sep 17 00:00:00 2001
> > From: Ingo Molnar <mingo@elte.hu>
> > Date: Fri, 25 Jul 2008 20:45:52 +0200
> > Subject: [PATCH] hugetlbfs: fix build failure on 64-bit x86
> >
> > fix:
> >
> > arch/x86/mm/built-in.o: In function `setup_hugepagesz':
> > hugetlbpage.c:(.init.text+0xb49): undefined reference to `hugetlb_add_hstate'
> >
> > Signed-off-by: Ingo Molnar <mingo@elte.hu>
> > ---
> > arch/x86/mm/hugetlbpage.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
> > index 8f307d9..977d185 100644
> > --- a/arch/x86/mm/hugetlbpage.c
> > +++ b/arch/x86/mm/hugetlbpage.c
> > @@ -425,7 +425,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
> >
> > #endif /*HAVE_ARCH_HUGETLB_UNMAPPED_AREA*/
> >
> > -#ifdef CONFIG_X86_64
> > +#if defined(CONFIG_X86_64) && defined(CONFIG_SYSCTL)
> > static __init int setup_hugepagesz(char *opt)
> > {
> > unsigned long ps = memparse(opt, &opt);
>
> Seems wrong that a __setup handler would vanish if CONFIG_SYSCTL=n.
>
> I think Nishanth's patch (sent to Linus a few hours ago) fixes this
> correctly, by making hugetlb_add_hstate available if CONFIG_SYSCTL=n:

agreed, that's cleaner/better.

> From: Nishanth Aravamudan <nacc@us.ibm.com>
>
> Fixes a build failure reported by Alan Cox:
>
> mm/hugetlb.c: In function `hugetlb_acct_memory': mm/hugetlb.c:1507:
> error: implicit declaration of function `cpuset_mems_nr'

Acked-by: Ingo Molnar <mingo@elte.hu>

Ingo