summaryrefslogtreecommitdiff
path: root/kconfig/confdata.c
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2020-12-10 06:46:43 (GMT)
committerChris Packham <judge.packham@gmail.com>2021-02-02 07:06:32 (GMT)
commit31695dd2b00fc3daac109324992901fdcd6068e5 (patch)
tree4084c739c47255711345e716d70ebe1732c80ad2 /kconfig/confdata.c
parent141f88a5f640625f63f70dad6f216a81596c42fc (diff)
kconfig: Sync with upstream v5.3
This commit introduces the following upstream changes: 0c5b6c28ed68 kconfig: Clear "written" flag to avoid data loss 8e2442a5f86e kconfig: fix missing choice values in auto.conf 3266c806dc86 kconfig: run olddefconfig instead of oldconfig after merging fragments e3cd5136a4ec kconfig: remove meaningless if-conditional in conf_read() baa23ec86092 kconfig: Fix spelling of sym_is_changable cd238effefa2 docs: kbuild: convert docs to ReST and rename to *.rst bd305f259cd3 kconfig: make arch/*/configs/defconfig the default of KBUILD_DEFCONFIG 5533397d1ec8 kconfig: add static qualifier to expand_string() b6f7e9f7050b kconfig: require the argument of --defconfig e0a2668665a5 kconfig: remove always false ifeq ($(KBUILD_DEFCONFIG,) conditional Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'kconfig/confdata.c')
-rw-r--r--kconfig/confdata.c36
1 files changed, 10 insertions, 26 deletions
diff --git a/kconfig/confdata.c b/kconfig/confdata.c
index 6006154..3569d2d 100644
--- a/kconfig/confdata.c
+++ b/kconfig/confdata.c
@@ -177,8 +177,6 @@ static void conf_message(const char *fmt, ...)
static const char *conf_filename;
static int conf_lineno, conf_warnings;
-const char conf_defname[] = "arch/$(ARCH)/defconfig";
-
static void conf_warning(const char *fmt, ...)
{
va_list ap;
@@ -233,21 +231,6 @@ static const char *conf_get_autoconfig_name(void)
return name ? name : "include/config/auto.conf";
}
-char *conf_get_default_confname(void)
-{
- static char fullname[PATH_MAX+1];
- char *env, *name;
-
- name = expand_string(conf_defname);
- env = getenv(SRCTREE);
- if (env) {
- snprintf(fullname, sizeof(fullname), "%s/%s", env, name);
- if (is_present(fullname))
- return fullname;
- }
- return name;
-}
-
static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
{
char *p2;
@@ -551,11 +534,9 @@ int conf_read(const char *name)
switch (sym->type) {
case S_BOOLEAN:
case S_TRISTATE:
- if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym))
- break;
- if (!sym_is_choice(sym))
+ if (sym->def[S_DEF_USER].tri == sym_get_tristate_value(sym))
continue;
- /* fall through */
+ break;
default:
if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
continue;
@@ -813,7 +794,7 @@ int conf_write_defconfig(const char *filename)
goto next_menu;
sym->flags &= ~SYMBOL_WRITE;
/* If we cannot change the symbol - skip */
- if (!sym_is_changable(sym))
+ if (!sym_is_changeable(sym))
goto next_menu;
/* If symbol equals to default value - skip */
if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
@@ -867,6 +848,7 @@ int conf_write(const char *name)
const char *str;
char tmpname[PATH_MAX + 1], oldname[PATH_MAX + 1];
char *env;
+ int i;
bool need_newline = false;
if (!name)
@@ -914,7 +896,8 @@ int conf_write(const char *name)
"# %s\n"
"#\n", str);
need_newline = false;
- } else if (!(sym->flags & SYMBOL_CHOICE)) {
+ } else if (!(sym->flags & SYMBOL_CHOICE) &&
+ !(sym->flags & SYMBOL_WRITTEN)) {
sym_calc_value(sym);
if (!(sym->flags & SYMBOL_WRITE))
goto next;
@@ -922,7 +905,7 @@ int conf_write(const char *name)
fprintf(out, "\n");
need_newline = false;
}
- sym->flags &= ~SYMBOL_WRITE;
+ sym->flags |= SYMBOL_WRITTEN;
conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
}
@@ -948,6 +931,9 @@ next:
}
fclose(out);
+ for_all_symbols(i, sym)
+ sym->flags &= ~SYMBOL_WRITTEN;
+
if (*tmpname) {
if (is_same(name, tmpname)) {
conf_message("No change to %s", name);
@@ -1082,8 +1068,6 @@ int conf_write_autoconf(int overwrite)
if (!overwrite && is_present(autoconf_name))
return 0;
- sym_clear_all_valid();
-
conf_write_dep("include/config/auto.conf.cmd");
if (conf_touch_deps())