Re: [PATCH] mm: Switch NUMA_BUILD and COMPACTION_BUILD to new IS_ENABLED()syntax

From: Michal Marek
Date: Mon Aug 15 2011 - 06:33:29 EST


On 15.8.2011 12:27, Michal Hocko wrote:
> On Wed 10-08-11 17:12:40, Michal Marek wrote:
>> Introduced in 3.1-rc1, IS_ENABLED(CONFIG_NUMA) expands to a true value
>> iff CONFIG_NUMA is set. This makes it easier to grep for code that
>> depends on CONFIG_NUMA.
>
> It looks this doesn't work properly. I can see the following build
> error:
> CHK include/linux/version.h
> CHK include/generated/utsrelease.h
> UPD include/generated/utsrelease.h
> CC arch/x86/kernel/asm-offsets.s
> In file included from include/linux/kmod.h:22:0,
> from include/linux/module.h:13,
> from include/linux/crypto.h:21,
> from arch/x86/kernel/asm-offsets.c:8:
> include/linux/gfp.h: In function âgfp_zonelistâ:
> include/linux/gfp.h:265:1: error: â__enabled_CONFIG_NUMAâ undeclared (first use in this function)
> include/linux/gfp.h:265:1: note: each undeclared identifier is reported only once for each function it appears in
> include/linux/gfp.h:265:1: error: â__enabled_CONFIG_NUMA_MODULEâ undeclared (first use in this function)
> make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1
>
> I do not have CONFIG_NUMA set so it seems to have issues with config
> symbols which are not set to any value. Is this something that could be
> fixed?

It works if CONFIG_NUMA is not set, but it doesn't work if CONFIG_NUMA
is not visible (if its dependencies are not met). The fix would be to
generate the __enabled_* defines for all symbols, not only for the
visible ones. I'll repost the patch once this is fixed.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/