Re: [PATCH] kconfig: untangle EXPERT and EMBEDDED

From: Jerome Marchand
Date: Mon Jan 16 2012 - 10:42:50 EST


On 01/11/2012 04:16 PM, Andrew Jones wrote:
> Commit 6a108a14fa35 renamed CONFIG_EMBEDDED to CONFIG_EXPERT with the
> justification that EMBEDDED was being used with a broader scope. It was
> no longer just being used to expose standard options to embedded kernel
> configs for tweaking, but rather for all "non-standard" kernel configs.
> This is nice, because now developers have a way to clean up the config
> menu by adding 'if EXPERT' to all entries in their Kconfig files that
> should rarely have a non-default value selected (hint1: it would be nice
> if developers would do this, hint2: it would also be nice if developers
> would do this rather than making these types of options silent, and thus
> impossible to override).
>
> Unfortunately, EMBEDDED was also being used to modify the defaults of
> some of these options to selections more appropriate for embedded
> kernels. Since the renaming was a simple global search-replace, if
> developers were to follow hints 1 and 2 above for non-embedded kernels,
> then they may find unexpected changes in their configs after turning on
> EXPERT.
>
> This patch attempts to untangle these two, making EXPERT true to its
> purpose, which is to only expose standard options for tweaking, and
> EMBEDDED to resume use as a default option modifier. The patch was made
> with the following four steps, which could not be split into separate
> patches without breaking configs
>
> 1. Make sure EMBEDDED does nothing, i.e. s/EMBEDDED/EXPERT/. There were
> only three places EMBEDDED was used.
>
> 2. Add CONFIG_EXPERT=y to all configs that had CONFIG_EMBEDDED=y (and
> not CONFIG_EXPERT=y already) to make sure step1 has no effect. This step
> isn't strictly necessary since EMBEDDED selects EXPERT, but I wanted the
> configs expressing the new need explicitly. Only 13 *_defconfig files.
>
> 3. Move all side effects (default changes) from EXPERT to EMBEDDED
>
> 4. Add CONFIG_EMBEDDED=y to all configs that had CONFIG_EXPERT=y (and
> not CONFIG_EMBEDDED=y already) to make sure step3 has no effect.
>
> I certainly didn't test this for every touched config. However, I did
> test it for one config and got the expected results;
> Before patch:
> 1. diff config.orig orig.EXPERT -- shows many changes
> 2. diff config.orig orig.EMBEDDED -- shows same changes as (1)
> plus EMBEDDED on
> After patch:
> 3. diff config.orig config.new -- no change
> 4. diff config.orig new.EXPERT -- only 1 change, EXPERT on
> 5. diff config.orig new.EMBEDDED -- shows same changes as (2)
>
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
> ---

> @@ -1259,8 +1259,7 @@ config SLUB
> a slab allocator.
>
> config SLOB
> - depends on EXPERT
> - bool "SLOB (Simple Allocator)"
> + bool "SLOB (Simple Allocator)" if EXPERT
> help
> SLOB replaces the stock allocator with a drastically simpler
> allocator. SLOB is generally more space efficient but

Am I missing something or this particular chunk does not actually change
anything?

Jerome
--
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/