Re: [PATCH] kconfig: untangle EXPERT and EMBEDDED

From: Andrew Jones
Date: Fri Jan 13 2012 - 03:53:51 EST


On Thu, Jan 12, 2012 at 01:06:51PM -0800, David Rientjes wrote:
> On Thu, 12 Jan 2012, Andrew Jones wrote:
>
> > No, I'm putting EMBEDDED back to work doing the same thing it did before,
> > i.e. the semantics for it are the same as they were before 6a108a14fa35.
>
> Wrong, CONFIG_EMBEDDED actually had very loosely defined semantics prior
> ot 6a108a14fa35 (the renaming of CONFIG_EMBEDDED to CONFIG_EXPERT) which
> is why it was renamed in the first place. Instead of being used solely
> for embedded devices, as you would suspect given its name and the reason
> it was introduced, it was hijacked to be used for any config option that
> was atypical for normal admins to disable and thus considered to be
> "expert" since it required a deeper level of understanding than enabling
> and disabling options at first glance or what is considered to be
> standard. Those are two very different semantics.

We seem to be talking about two different time periods where the semantics
changed, or didn't change. I'm stating that this patch reverts the
semantics for EMBEDDED back to the way they were at 6a108a14fa35^, i.e.
not inventing a new meaning, just reverting to the old one. Thus, relative
to that time, there is no change. You are stating that there is a
semantics change relative to the way it is now, HEAD, which is true.
The impact of that change isn't so much though. If you look at the patch
you'll see EMBEDDED is only used around 30 times on the default value
manipulations. EXPERT is still the only config option exposing symbol.

Considering part of the motivation for 6a108a14fa35 was to restore EMBEDDED's
semantics to the way they were long ago, then I can see why this reversion
(however small it is) isn't overly welcomed. Naturally, 6a108a14fa35
succeeds at this goal of restoring EMBEDDED's original semantics, because
it pushed the mess onto a new symbol name, thus freeing itself to be
redefined. However, 6a108a14fa35 also claims a second motivation as well,
which is to offer the wider kernel a symbol that can be used to hide
standard config options in menus. On this goal 6a108a14fa35 fails.
CONFIG_EXPERT, as it stands, is useless to all users except the original
users of CONFIG_EMBEDDED at time 6a108a14fa35^.

Ideally EMBEDDED would have been tidied up more before its renaming (in
order to avoid advertising a useless symbol in the first place). However,
in the absence of ideal patches, we always have reversions to patches and
then new patches. This patch is that first (partial) reversion step, but
the additional patches that will eventually reclaim EMBEDDED's long lost,
ideal semantics are outside its scope.

>
> > This is not a revert of that patch though. I'm keeping EXPERT, but
> > ensuring it doesn't do everything EMBEDDED used to do. I'm ensuring it
> > only does what it advertises it does, which is to give a useful configmenu
> > cleanup symbol to the whole kernel.
> >
>
> You're ignoring backwards compatibility for users who have already enabled
> CONFIG_EXPERT and have not enabled CONFIG_EMBEDDED (EXPERT does not select
> EMBEDDED, EMBEDDED selects EXPERT). So if you're losing options that are
> currently configurable with CONFIG_EXPERT unless those users now enable
> CONFIG_EMBEDDED again, it's a non-starter.

While, afaik, backward compatibility of kernel config symbols isn't
guaranteed (I've seen non-backward compatible changes in the past), I
still didn't ignore it. Part of the reason to go back to using EMBEDDED
again was to address it (EMBEDDED was already used for this before). Also,
while it naturally doesn't address configs outside the kernel source, the
patch does update all defconfig files appropriately to add EMBEDDED
wherever EXPERT was.

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