Subject: Re: linux-next: build failure after merge of the rcu tree

From: "Paul E. McKenney" <[email-masked]>
Date: Thu, 7 Jan 2016 20:48:35 -0800

On Fri, Jan 08, 2016 at 03:08:50PM +1100, Stephen Rothwell wrote:
> Hi Paul,
> 
> On Thu, 7 Jan 2016 19:41:57 -0800 "Paul E. McKenney" <[email-masked]> wrote:
> >
> > Indeed, I suspect that SRCU might not be the only thing that would like
> > static per-CPU variables.  ;-)
> 
> from include/linux/percpu-defs.h:
> 
>  * s390 and alpha modules require percpu variables to be defined as
>  * weak to force the compiler to generate GOT based external
>  * references for them.  This is necessary because percpu sections
>  * will be located outside of the usually addressable area.
>  *
>  * This definition puts the following two extra restrictions when
>  * defining percpu variables.
>  *
>  * 1. The symbol must be globally unique, even the static ones.
>  * 2. Static percpu variables cannot be defined inside a function.
>  *
>  * Archs which need weak percpu definitions should define
>  * ARCH_NEEDS_WEAK_PER_CPU in asm/percpu.h when necessary.
>  *
>  * To ensure that the generic code observes the above two
>  * restrictions, if CONFIG_DEBUG_FORCE_WEAK_PER_CPU is set weak
>  * definition is used for all cases.
> 
> so they can be static, but must be globally unique.

Thank you for the tutorial!  I have updated the patch to use a unique
name for the srcu_struct added by rcuperf.c.

							Thanx, Paul