Messages in this thread | | | Date | Sat, 7 Sep 2013 11:57:10 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH tip/core/rcu 8/9] nohz_full: Add full-system-idle state machine |
| |
On Sat, Sep 07, 2013 at 11:13:48AM +0200, Yann E. MORIN wrote: > Paul, All, > > On 2013-09-06 10:30 -0700, Paul E. McKenney spake thusly: > [--SNIP--] > > I also tried using Kconfig "if": > > > > if SMP > > config NR_CPUS_REALLY > > int "Fixed version of NR_CPUS" > > default NR_CPUS > > endif > > if !SMP > > config NR_CPUS_REALLY > > int "Fixed version of NR_CPUS" > > default 1 if !SMP > > The 'if !SMP' here is unneeded, you're already in a 'if !SMP' if-block.
Agreed, though I get the same result even without the !SMP.
> > endif > > > > However, Kconfig complained about the use of NR_CPUS even though this > > was under an "if" whose condition was not set. Perhaps someone with > > better Kconfig-fu than I have can come up with something. > > That's because the 'if' condition is added to the dependency list of the > symbol(s) that is(are) enclosed in the if. > > 'if' in Kconfig behaves the same way as an 'if' in C. What you expected > (I believe) was the behaviour of '#ifdef', which is not the case. From > Documentation/kbuild/kconfig-language.txt: > > ---8<--- > if: > > "if" <expr> > <if block> > "endif" > > This defines an if block. The dependency expression <expr> is appended > to all enclosed menu entries. > ---8<---
OK, I did read this, but misunderstood it.
> There's no equivlaent to '#ifdef' in Kconfig. > > I'll see if I can come up with a meaningfull construct that fixes your > use-case. Don't hold your breath, though! ;-)
If not, we need to add NR_CPUS to the architectures lacking them...
Thanx, Paul
| |