
On Tue, 31 May 2016, Masahiro Yamada wrote:
This reverts commit 56adbb38727320375b2f695bd04600d766d8a1b3.
Since commit 56adbb387273 ("image.h: Tighten up content using handy CONFIG_IS_ENABLED() macro."), I found my boards fail to boot Linux because the commit changed the logic of macros it touched. Now, IMAGE_ENABLE_RAMDISK_HIGH and IMAGE_BOOT_GET_CMDLINE are 0 for all the boards.
As you can see in include/linux/kconfig.h, CONFIG_IS_ENABLE() (and IS_ENABLED() as well) can only take a macro that is either defined as 1 or undefined. This is met for boolean options defined in Kconfig. On the other hand, CONFIG_SYS_BOOT_RAMDISK_HIGH and CONFIG_SYS_BOOT_GET_CMDLINE are defined without any value in arch/*/include/asm/config.h . This kind of clean-up is welcome, but the options should be moved to Kconfig beforehand.
... snip ...
whoops, that would be my fault, i never considered that possibility, i thought this was a fairly straightforward (and mostly aesthetic) change.
it seems that there is a fair amount of inconsistent usage of CONFIG settings, as in, if one wants to test only if a setting is defined:
#ifdef CONFIG_FOO
then it's sufficient to manually set:
#define CONFIG_FOO
however, in the above, it doesn't hurt to also write:
#define CONFIG_FOO 1
but the instant you do that, you can *also* then test:
#if CONFIG_FOO
and i'm wondering how much there is of mixing both tests; that is, once you write this:
#define CONFIG_FOO 1
you have a tendency to start using both tests:
#ifdef CONFIG_FOO #if CONFIG_FOO
which is definitely messy. anyway, my fault for not looking at the above carefully enough before submitting.
rday