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

From: Konrad Rzeszutek Wilk <[email-masked]>
Date: Wed, 6 Mar 2013 15:04:44 -0500

On Wed, Mar 06, 2013 at 08:56:54AM -0500, Konrad Rzeszutek Wilk wrote:
> On Wed, Mar 06, 2013 at 08:43:41AM +0800, Greg KH wrote:
> > On Wed, Mar 06, 2013 at 11:35:08AM +1100, Stephen Rothwell wrote:
> > > Hi all,
> > > 
> > > After merging the final tree, today's linux-next build (powerpc
> > > allyesconfig) failed like this:
> > > 
> > > In file included from drivers/staging/zcache/debug.c:2:0:
> > > drivers/staging/zcache/debug.h: In function 'dec_zcache_obj_count':
> > > drivers/staging/zcache/debug.h:16:2: error: implicit declaration of function 'BUG_ON' [-Werror=implicit-function-declaration]
> > > 
> > > Caused by commit 95bdaee2140e ("zcache: Move debugfs code out of
> > > zcache-main.c file").
> > > 
> > > I applied this patch for today:
> > > 
> > > From 24b03cf426007c4e94c6bed81560e436afcc136c Mon Sep 17 00:00:00 2001
> > > From: Stephen Rothwell <[email-masked]>
> > > Date: Wed, 6 Mar 2013 11:31:06 +1100
> > > Subject: [PATCH] disable ZCACHE_DEBUG due to build error
> > > 
> > > In file included from drivers/staging/zcache/debug.c:2:0:
> > > drivers/staging/zcache/debug.h: In function 'dec_zcache_obj_count':
> > > drivers/staging/zcache/debug.h:16:2: error: implicit declaration of function 'BUG_ON' [-Werror=implicit-function-declaration]
> > > 
> > > Signed-off-by: Stephen Rothwell <[email-masked]>
> > > ---
> > >  drivers/staging/zcache/Kconfig | 1 +
> > >  1 file changed, 1 insertion(+)
> > 
> > Ick, sorry about that, I've applied your patch to my tree.
> 
> Wait, there is no BUG_ON on PPC? Or is the definition for it hidden in layers
> of #include files? Would this also solve it:

I got the cross-compiler up and the patch below does indeed solve the problem.
Greg, could you apply the patch below please?
> 
> 
> diff --git a/drivers/staging/zcache/debug.h b/drivers/staging/zcache/debug.h
> index eef67db..494cea02 100644
> --- a/drivers/staging/zcache/debug.h
> +++ b/drivers/staging/zcache/debug.h
> @@ -1,5 +1,7 @@
>  #ifdef CONFIG_ZCACHE_DEBUG
>  
> +#include <asm/bug.h>
> +
>  /* we try to keep these statistics SMP-consistent */
>  static ssize_t zcache_obj_count;
>  static atomic_t zcache_obj_atomic = ATOMIC_INIT(0);
> 
> 
> ? (going to get my PPC compiler ready shortly to check this out).
> 

So, irrespective of zcache, I also see this:

init/built-in.o: In function `.rd_load_image':
(.init.text+0x1b24): undefined reference to `.__bswapdi2'
arch/powerpc/kernel/built-in.o: In function `.iowa_writeq':
io-workarounds.c:(.text+0x2f778): undefined reference to `.__bswapdi2'
arch/powerpc/kernel/built-in.o: In function `.iowa_readq':
io-workarounds.c:(.text+0x2f848): undefined reference to `.__bswapdi2'
arch/powerpc/platforms/built-in.o: In function `.spiderpci_readq':
spider-pci.c:(.text+0x2a84c): undefined reference to `.__bswapdi2'
arch/powerpc/platforms/built-in.o: In function `.scc_pciex_readq':
celleb_scc_pciex.c:(.text+0x2fc4c): undefined reference to `.__bswapdi2'
fs/built-in.o:(.text+0x9717c): more undefined references to `.__bswapdi2' follow

Is that new?

> > thanks,
> > greg k-h