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

From: Stephen Rothwell <[email-masked]>
Date: Fri, 8 Jan 2016 15:08:50 +1100

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.
-- 
Cheers,
Stephen Rothwell                    [email-masked]