aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2024-02-03 00:58:04 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2024-02-19 18:20:40 +0900
commit526396b723a38dbeed35cb9e80814084b9f56329 (patch)
tree6e9b3d7f2df76a33151ddf8483df49f626970312 /scripts
parent73a6afc5a541f74ca84c72aad017866dfcf43680 (diff)
downloadlinux-526396b723a38dbeed35cb9e80814084b9f56329.tar.gz
kconfig: write Kconfig files to autoconf.cmd in order
Currently, include/config/autoconf.cmd saves included Kconfig files in reverse order. While this is not a big deal, it is inconsistent with other *.cmd files generated by fixdep. Output the included Kconfig files in the included order. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/kconfig/confdata.c7
-rw-r--r--scripts/kconfig/lkc.h1
-rw-r--r--scripts/kconfig/parser.y4
-rw-r--r--scripts/kconfig/util.c3
4 files changed, 11 insertions, 4 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 7f0aa39b68c1e2..f6a96fdddb7eda 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -20,6 +20,8 @@
#include "lkc.h"
+struct gstr autoconf_cmd;
+
/* return true if 'path' exists, false otherwise */
static bool is_present(const char *path)
{
@@ -972,7 +974,6 @@ end_check:
static int conf_write_autoconf_cmd(const char *autoconf_name)
{
char name[PATH_MAX], tmp[PATH_MAX];
- struct file *file;
FILE *out;
int ret;
@@ -993,9 +994,7 @@ static int conf_write_autoconf_cmd(const char *autoconf_name)
return -1;
}
- fprintf(out, "deps_config := \\\n");
- for (file = file_list; file; file = file->next)
- fprintf(out, "\t%s \\\n", file->name);
+ fputs(str_get(&autoconf_cmd), out);
fprintf(out, "\n%s: $(deps_config)\n\n", autoconf_name);
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 5cdc8f5e6446ab..8616ad83be6da1 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -40,6 +40,7 @@ int zconf_lineno(void);
const char *zconf_curname(void);
/* confdata.c */
+extern struct gstr autoconf_cmd;
const char *conf_get_configname(void);
void set_all_choice_values(struct symbol *csym);
diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y
index 625224973c5118..611038c502fc9b 100644
--- a/scripts/kconfig/parser.y
+++ b/scripts/kconfig/parser.y
@@ -480,6 +480,10 @@ void conf_parse(const char *name)
struct symbol *sym;
int i;
+ autoconf_cmd = str_new();
+
+ str_printf(&autoconf_cmd, "deps_config := \\\n");
+
zconf_initscan(name);
_menu_init();
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index 92e5b2b9761d70..958543bb0a37a9 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -25,6 +25,9 @@ struct file *file_lookup(const char *name)
file->name = xstrdup(name);
file->next = file_list;
file_list = file;
+
+ str_printf(&autoconf_cmd, "\t%s \\\n", name);
+
return file;
}