From 2a44aa33d6506a29b14d9c429410ad582d1d6636 Mon Sep 17 00:00:00 2001
From: Martin Roth <gaumless@gmail.com>
Date: Sun, 13 Nov 2022 15:20:57 -0700
Subject: [PATCH] util/kconfig: Move Kconfig deps back into build/config

revert commit 1b9e740a8 (kconfig: fix failing to generate auto.conf) [1]

The above change caused all of the enabled kconfig options to be written
into the top level build directory.  We don't want that, so go back to
the old behavior for the coreboot tree.

[1] https://web.archive.org/web/20220316120807/https://github.com/torvalds/linux/commit/1b9e740a81f91ae338b29ed70455719804957b80

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I2904f69a5d85337ad0a6b48590ccd4b4a6e38b70
---
 util/kconfig/confdata.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
@@ -237,6 +237,13 @@ static const char *conf_get_rustccfg_nam
 	return name ? name : "include/generated/rustc_cfg";
 }
 
+static const char *conf_get_autobase_name(void)
+{
+	char *name = getenv("KCONFIG_SPLITCONFIG");
+
+	return name ? name : "include/config/";
+}
+
 static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
 {
 	char *p2;
@@ -1106,19 +1113,19 @@ static int conf_write_autoconf_cmd(const
 
 static int conf_touch_deps(void)
 {
-	const char *name, *tmp;
+	const char *name;
 	struct symbol *sym;
 	int res, i;
 
-	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;
+	/*
+	 * Upstream Kconfig sets depfile_path based on the directory
+	 * prefix of the autoconfig path, but coreboot overrides this
+	 * using the KCONFIG_SPLITCONFIG environment variable
+	 */
+	strcpy(depfile_path, conf_get_autobase_name());
+	depfile_prefix_len = strlen(depfile_path);
 
+	name = conf_get_autoconfig_name();
 	conf_read_simple(name, S_DEF_AUTO);
 	sym_calc_value(modules_sym);
 
