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

From: Stephen Rothwell
Date: Thu Jan 07 2016 - 23:09:26 EST


Hi Paul,

On Thu, 7 Jan 2016 19:41:57 -0800 "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> 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 sfr@xxxxxxxxxxxxxxxx