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 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html