From: Justin P. Mattock on
> [PATCH] kconfig: fix make oldconfig
>
> Linus wrote:
> This seems to make "make oldconfig" a _lot_ more verbose than it
> used to be. In a very annoying way.
>
> I just did a quick git bisect. It's introduced by commit 4062f1a4c030
> ("kconfig: use long options in conf") by Sam Ravnborg. Apparently that
> thing is totally buggy, and doesn't just change the option names, but
> actively breaks them.
>
> The old behaviour (from years ago) were reintroduced by accident.
> Fix this so we are back to the version that are silent
> if there is nothing to ask about.
>
> Reported-by: Linus Torvalds<torvalds(a)linux-foundation.org>
> Signed-off-by: Sam Ravnborg<sam(a)ravnborg.org>
> ---
>
> Sorry for this regression. Dunno how I missed it.
> I guess I only tested "silentoldconfig".
>
> Following patch seems obviously correct but as I am on the way
> out of the door I could not do much testing.
>
> Sam
>
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index 010600e..274f271 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -599,12 +599,12 @@ int main(int ac, char **av)
> break;
> case savedefconfig:
> break;
> - case oldconfig:
> case oldaskconfig:
> rootEntry =&rootmenu;
> conf(&rootmenu);
> input_mode = silentoldconfig;
> /* fall through */
> + case oldconfig:
> case listnewconfig:
> case oldnoconfig:
> case silentoldconfig:
>

Id like to be more useful with really hitting this, seems I was for a
few moments, then something in there tripped and caused oldconfig to
behave.. anyways only real evidence I have of hitting this is an fpaste
of my shell output http://fpaste.org/LFew/

Anyways applied your patch below, make oldconfig worked as is no:

make oldconfig
scripts/kconfig/conf -o arch/x86/Kconfig
#
# configuration written to .config
#

that I was hitting for some reason or another then all of a sudden
disappeared.

Justin P. Mattock
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Michal Marek on
On 6.8.2010 07:13, Sam Ravnborg wrote:
> [PATCH] kconfig: fix make oldconfig
>
> Linus wrote:
> This seems to make "make oldconfig" a _lot_ more verbose than it
> used to be. In a very annoying way.
>
> I just did a quick git bisect. It's introduced by commit 4062f1a4c030
> ("kconfig: use long options in conf") by Sam Ravnborg. Apparently that
> thing is totally buggy, and doesn't just change the option names, but
> actively breaks them.
>
> The old behaviour (from years ago) were reintroduced by accident.
> Fix this so we are back to the version that are silent
> if there is nothing to ask about.
>
> Reported-by: Linus Torvalds <torvalds(a)linux-foundation.org>
> Signed-off-by: Sam Ravnborg <sam(a)ravnborg.org>
> ---
>
> Sorry for this regression. Dunno how I missed it.
> I guess I only tested "silentoldconfig".
>
> Following patch seems obviously correct but as I am on the way
> out of the door I could not do much testing.
>
> Sam
>
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index 010600e..274f271 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -599,12 +599,12 @@ int main(int ac, char **av)
> break;
> case savedefconfig:
> break;
> - case oldconfig:
> case oldaskconfig:
> rootEntry = &rootmenu;
> conf(&rootmenu);
> input_mode = silentoldconfig;
> /* fall through */
> + case oldconfig:
> case listnewconfig:
> case oldnoconfig:
> case silentoldconfig:

Reviewed-by: Michal Marek <mmarek(a)suse.cz>

The problem is that in the previous code, input_mode could never be set
to 'ask_new' ('oldconfig' in the new code), both oldconfig and
silentoldconfig set the variable to 'ask_silent'. Therefore, the 'case
ask_new:' label had no effect here. The fix is correct, both oldconfig
and silentoldconfig jump to the same place again.

Linus, will you apply this directly or should I apply it to the kbuild
tree and send you a pull request?

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on
On Fri, Aug 6, 2010 at 3:21 AM, Michal Marek <mmarek(a)suse.cz> wrote:
>
> Linus, will you apply this directly or should I apply it to the kbuild
> tree and send you a pull request?

I took it directly, since I spend a lot of time doing "make oldconfig
; make -j16" which is why I found this (after pulling, I tend verify
that at least nothing broke my _own_ configuration)

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Sam Ravnborg on
On Fri, Aug 06, 2010 at 09:19:23AM -0700, Linus Torvalds wrote:
> On Fri, Aug 6, 2010 at 3:21 AM, Michal Marek <mmarek(a)suse.cz> wrote:
> >
> > Linus, will you apply this directly or should I apply it to the kbuild
> > tree and send you a pull request?
>
> I took it directly, since I spend a lot of time doing "make oldconfig
> ; make -j16" which is why I found this (after pulling, I tend verify
> that at least nothing broke my _own_ configuration)

Hmm, I wonder why you call oldconfig explicitly?

A plain "make -j16" executes "silentoldconfig" if there
is any changes in a Kconfig* file or in .config.
Just double checked and it works as I expected.

So you are asked if there is any new options anyway even
if you skip your "oldconfig" step.

The difference between oldconfig and silentoldconfig these days
are just that silentoldconfig updates include/config/*
which oldconfig does not.

It could be as simple as old habits.
Just curious to know if there is something I have missed.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on
On Fri, Aug 6, 2010 at 10:52 AM, Sam Ravnborg <sam(a)ravnborg.org> wrote:
>
> Hmm, I wonder why you call oldconfig explicitly?
>
> A plain "make -j16" executes "silentoldconfig" if there
> is any changes in a Kconfig* file or in .config.
> Just double checked and it works as I expected.
>
> So you are asked if there is any new options anyway even
> if you skip your "oldconfig" step.

Try this:

git clean -dqfx
make -j16 > ../makes

It doesn't work, because "make silentconfig" will say

***
*** You have not yet configured your kernel!
*** (missing kernel config file ".config")
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***

which is why I always run "make oldconfig".

Sure, I could do it only when I need to, but quite frankly, it's much
easier to just always do the thing that works, rather than try
something that doesn't work, do something else, and then re-try the
thing that can fail.

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