diff options
Diffstat (limited to 'scripts/kconfig/conf.c')
-rw-r--r-- | scripts/kconfig/conf.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 8012d1076876..4dcb8867b5f4 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c | |||
@@ -539,6 +539,7 @@ int main(int ac, char **av) | |||
539 | name = av[i]; | 539 | name = av[i]; |
540 | if (!name) { | 540 | if (!name) { |
541 | printf(_("%s: Kconfig file missing\n"), av[0]); | 541 | printf(_("%s: Kconfig file missing\n"), av[0]); |
542 | exit(1); | ||
542 | } | 543 | } |
543 | conf_parse(name); | 544 | conf_parse(name); |
544 | //zconfdump(stdout); | 545 | //zconfdump(stdout); |
@@ -573,7 +574,7 @@ int main(int ac, char **av) | |||
573 | case set_random: | 574 | case set_random: |
574 | name = getenv("KCONFIG_ALLCONFIG"); | 575 | name = getenv("KCONFIG_ALLCONFIG"); |
575 | if (name && !stat(name, &tmpstat)) { | 576 | if (name && !stat(name, &tmpstat)) { |
576 | conf_read_simple(name); | 577 | conf_read_simple(name, S_DEF_USER); |
577 | break; | 578 | break; |
578 | } | 579 | } |
579 | switch (input_mode) { | 580 | switch (input_mode) { |
@@ -584,9 +585,9 @@ int main(int ac, char **av) | |||
584 | default: break; | 585 | default: break; |
585 | } | 586 | } |
586 | if (!stat(name, &tmpstat)) | 587 | if (!stat(name, &tmpstat)) |
587 | conf_read_simple(name); | 588 | conf_read_simple(name, S_DEF_USER); |
588 | else if (!stat("all.config", &tmpstat)) | 589 | else if (!stat("all.config", &tmpstat)) |
589 | conf_read_simple("all.config"); | 590 | conf_read_simple("all.config", S_DEF_USER); |
590 | break; | 591 | break; |
591 | default: | 592 | default: |
592 | break; | 593 | break; |
@@ -599,7 +600,15 @@ int main(int ac, char **av) | |||
599 | input_mode = ask_silent; | 600 | input_mode = ask_silent; |
600 | valid_stdin = 1; | 601 | valid_stdin = 1; |
601 | } | 602 | } |
602 | } | 603 | } else if (sym_change_count) { |
604 | name = getenv("KCONFIG_NOSILENTUPDATE"); | ||
605 | if (name && *name) { | ||
606 | fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n")); | ||
607 | return 1; | ||
608 | } | ||
609 | } else | ||
610 | goto skip_check; | ||
611 | |||
603 | do { | 612 | do { |
604 | conf_cnt = 0; | 613 | conf_cnt = 0; |
605 | check_conf(&rootmenu); | 614 | check_conf(&rootmenu); |
@@ -608,5 +617,11 @@ int main(int ac, char **av) | |||
608 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); | 617 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
609 | return 1; | 618 | return 1; |
610 | } | 619 | } |
620 | skip_check: | ||
621 | if (input_mode == ask_silent && conf_write_autoconf()) { | ||
622 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); | ||
623 | return 1; | ||
624 | } | ||
625 | |||
611 | return 0; | 626 | return 0; |
612 | } | 627 | } |