Re: linux-next: build failure after merge of the final tree (tiptree related)

From: Russell King - ARM Linux
Date: Thu Sep 16 2010 - 05:03:10 EST


On Thu, Sep 16, 2010 at 09:34:33AM +0200, Ingo Molnar wrote:
>
> * Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote:
>
> > On Thu, Sep 16, 2010 at 08:39:22AM +0200, Ingo Molnar wrote:
> > >
> > > * Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > >
> > > > Hi all,
> > > >
> > > > On Tue, 14 Sep 2010 00:29:32 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > > > >
> > > > > After merging the final tree, today's linux-next build (arm
> > > > > assabet_defconfig and serveral other arm configs) failed like this:
> > > > >
> > > > > arch/arm/mm/init.c: In function 'arm_memory_present':
> > > > > arch/arm/mm/init.c:260: warning: ISO C90 forbids mixed declarations and code
> > > > > arch/arm/mm/init.c:338: error: invalid storage class for function 'free_area'
> > > > > arch/arm/mm/init.c:357: error: invalid storage class for function 'free_memmap'
> > > > > arch/arm/mm/init.c:386: error: invalid storage class for function 'free_unused_memmap'
> > > > > arch/arm/mm/init.c:601: error: invalid storage class for function 'keepinitrd_setup'
> > > > > arch/arm/mm/init.c:606: error: initializer element is not constant
> > > > > arch/arm/mm/init.c:606: error: (near initialization for '__setup_keepinitrd_setup.setup_func')
> > > > > arch/arm/mm/init.c:606: error: expected declaration or statement at end of input
> > > > > arch/arm/mm/init.c:252: warning: unused variable 'i'
> > > > >
> > > > > Caused by commit 719c1514f2fef5f01fcfa2bba81b7bb079c7c6a1 ("memblock/arm:
> > > > > Use new accessors") which forgot a closing brace on a new
> > > > > for_each_memblock() in arm_memory_present().
> > > >
> > > > So this commit is back in tip and the error is back in the builds ...
> > >
> > > The ARM defconfig build doesnt fail here:
> > >
> > > WARNING: modpost: Found 5 section mismatch(es).
> > > To see full details build your kernel with:
> > > 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
> >
> > It probably passes because that configuration doesn't result in the
> > failing code being built (maybe the failing code is only used for
> > sparsemem ?)
>
> Yeah. If sparsemem is important then it would be helpful if you could
> enable it in the ARM defconfig if possible - that's what most people
> build.

But then so is flatmem too - and it's the same story for lots of other
combinations. If we had sparsemem enabled then a similar bug could
have crept into the !SPARSEMEM code just a few lines above.

There's no correct answer here - the only answer is technologies such
as linux-next and kautobuild to build a range of configs to get the
build coverage.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/