diff options
author | Patrick Georgi <pgeorgi@google.com> | 2022-10-28 01:00:26 +0200 |
---|---|---|
committer | Patrick Georgi <patrick@coreboot.org> | 2022-10-30 08:46:23 +0000 |
commit | 5526be21eacbee90d004343e9efdf4f8eb6242b7 (patch) | |
tree | 786bb9803094e29b5fc49141acbf7dc3b92add82 /util/kconfig/confdata.c | |
parent | 7eb03cb6574ed873f59a2c559e5ab079b9256b64 (diff) |
util/kconfig: Uprev to Linux 5.18's kconfig
Only minor changes in kconfig this time that shouldn't affect us.
TEST=`util/abuild/abuild -C` output (build.h and build.conf) remains
the same
Change-Id: I46f43182ce9ec1b6a5923cb77dcd6e335e44c87a
Signed-off-by: Patrick Georgi <patrick@coreboot.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66047
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Diffstat (limited to 'util/kconfig/confdata.c')
-rw-r--r-- | util/kconfig/confdata.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/util/kconfig/confdata.c b/util/kconfig/confdata.c index 102f71659b..95fb960179 100644 --- a/util/kconfig/confdata.c +++ b/util/kconfig/confdata.c @@ -678,13 +678,6 @@ static char *escape_string_value(const char *in) return out; } -/* - * Kconfig configuration printer - * - * This printer is used when generating the resulting configuration after - * kconfig invocation and `defconfig' files. Unset symbol might be omitted by - * passing a non-NULL argument to the printer. - */ enum output_n { OUTPUT_N, OUTPUT_N_AS_UNSET, OUTPUT_N_NONE }; static void __print_symbol(FILE *fp, struct symbol *sym, enum output_n output_n, @@ -938,19 +931,20 @@ next: menu = menu->list; continue; } - if (menu->next) + +end_check: + if (!menu->sym && menu_is_visible(menu) && menu != &rootmenu && + menu->prompt->type == P_MENU) { + fprintf(out, "# end of %s\n", menu_get_prompt(menu)); + need_newline = true; + } + + if (menu->next) { menu = menu->next; - else while ((menu = menu->parent)) { - if (!menu->sym && menu_is_visible(menu) && - menu != &rootmenu) { - str = menu_get_prompt(menu); - fprintf(out, "# end of %s\n", str); - need_newline = true; - } - if (menu->next) { - menu = menu->next; - break; - } + } else { + menu = menu->parent; + if (menu) + goto end_check; } } fclose(out); @@ -1014,6 +1008,7 @@ static int conf_write_autoconf_cmd(const char *autoconf_name) fprintf(out, "\n$(deps_config): ;\n"); + fflush(out); ret = ferror(out); /* error check for all fprintf() calls */ fclose(out); if (ret) @@ -1133,6 +1128,7 @@ static int __conf_write_autoconf(const char *filename, if (((sym->flags & SYMBOL_WRITE) || (print_negatives && sym->type != S_STRING)) && sym->name) print_symbol(file, sym); + fflush(file); /* check possible errors in conf_write_heading() and print_symbol() */ ret = ferror(file); fclose(file); |