Re: PROBLEM: "Make nenuconfig" does not save parameters.

Cyrill Gorcunov
2007-03-10T16:09:42Z

[-- Attachment #1: Type: text/plain, Size: 938 bytes --]

[Vladimir - Sat, Mar 10, 2007 at 04:05:42PM +0300]
| Here's the problem:
| 1. Unpack the kernel sources, run make menuconfig.
| 2. Mark the necessary options.
| 3. Pick "Save an alternate configuration file", enter a filename (e.g. /root/kernelcfg)
| 4. Pick "Exit".
| ->5. Configurator exits without saving. If type "make bzImage", it builtd all the default options.
|
| And there's no ".config" file in kernel root directory, so i have to move there my "kernelcfg" and
| rename it.
|
| If i just run "make menuconfig", then pick "Exit", then it asks "Save kernel configuration?".
|
| This happens starting from kernel 2.6.20 till 2.6.20.2
| Slackware-current.
| PC: Athlon-XP 2000+, 256 MB RAM.
| Linux wolf 2.6.20.2 #1 SMP PREEMPT Sat Mar 10 15:41:42 MSK 2007 i686 athlon-4 i386 GNU/Linux
| --
| Faith manages.
| -
|

Hi, Vladimir

here is the patch to resolve your problem. Test it and write me the
results...

Cyrill

[-- Attachment #2: patch.diff --]
[-- Type: text/plain, Size: 979 bytes --]

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 664fe29..98836b6 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -432,8 +432,7 @@ int conf_write(const char *name)
use_timestamp ? "# " : "",
use_timestamp ? ctime(&now) : "");

- if (!conf_get_changed())
- sym_clear_all_valid();
+ sym_clear_all_valid();

menu = rootmenu.list;
while (menu) {
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 3f9a132..ea32df8 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -840,8 +840,11 @@ static void conf_save(void)
case 0:
if (!dialog_input_result[0])
return;
- if (!conf_write(dialog_input_result))
+ res = conf_get_changed(); /* temporary used */
+ if (!conf_write(dialog_input_result)) {
+ sym_set_change_count(res);
return;
+ }
show_textbox(NULL, _("Can't create file! Probably a nonexistent directory."), 5, 60);
break;
case 1: