summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJing Leng <jleng@ambarella.com>2022-02-11 17:27:36 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-02-23 12:01:07 +0100
commit3680b2b8104b9c0cdbe168d0de4912ad5bff6abd (patch)
tree878af20424c622afebcfd22fb005d1d84b0c7d63 /scripts
parentb6787e284d3dfaa830f8241679abef3fb7e609e5 (diff)
downloadlinux-stable-3680b2b8104b9c0cdbe168d0de4912ad5bff6abd.tar.gz
linux-stable-3680b2b8104b9c0cdbe168d0de4912ad5bff6abd.tar.bz2
linux-stable-3680b2b8104b9c0cdbe168d0de4912ad5bff6abd.zip
kconfig: fix failing to generate auto.conf
[ Upstream commit 1b9e740a81f91ae338b29ed70455719804957b80 ] When the KCONFIG_AUTOCONFIG is specified (e.g. export \ KCONFIG_AUTOCONFIG=output/config/auto.conf), the directory of include/config/ will not be created, so kconfig can't create deps files in it and auto.conf can't be generated. Signed-off-by: Jing Leng <jleng@ambarella.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/kconfig/confdata.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index a39d93e3c6ae..867b06c6d279 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -968,14 +968,19 @@ static int conf_write_dep(const char *name)
static int conf_touch_deps(void)
{
- const char *name;
+ const char *name, *tmp;
struct symbol *sym;
int res, i;
- strcpy(depfile_path, "include/config/");
- depfile_prefix_len = strlen(depfile_path);
-
name = conf_get_autoconfig_name();
+ tmp = strrchr(name, '/');
+ depfile_prefix_len = tmp ? tmp - name + 1 : 0;
+ if (depfile_prefix_len + 1 > sizeof(depfile_path))
+ return -1;
+
+ strncpy(depfile_path, name, depfile_prefix_len);
+ depfile_path[depfile_prefix_len] = 0;
+
conf_read_simple(name, S_DEF_AUTO);
sym_calc_value(modules_sym);