summaryrefslogtreecommitdiff
path: root/util/kconfig/patches
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2022-10-28 01:00:26 +0200
committerPatrick Georgi <patrick@coreboot.org>2022-10-30 08:45:52 +0000
commit4c9b9e9709cef4937d012d6950e5e2932042c587 (patch)
tree29fee0073ac8e97f918aa8ac00630c31dc4db042 /util/kconfig/patches
parent14cedd97a5790fe6182771630d91bfa375abf867 (diff)
util/kconfig: Uprev to Linux 5.16's kconfig
Linux 5.16 saw a significant rewrite in the boolean handling which reduces our change set. On the other hand, it's all new code. Comparing the config.build and config.h files generated by `util/abuild/abuild -C`, only a few lines of comment in the header changed. Change-Id: I52984e15a48236ddf228707aec85e90f71aa4382 Signed-off-by: Patrick Georgi <patrick@coreboot.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/66045 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Diffstat (limited to 'util/kconfig/patches')
-rw-r--r--util/kconfig/patches/0001-Kconfig-Add-KCONFIG_STRICT-mode.patch4
-rw-r--r--util/kconfig/patches/0002-Kconfig-Change-symbol-override-from-warning-to-notic.patch8
-rw-r--r--util/kconfig/patches/0003-util-kconfig-conf.c-Fix-newline-in-error-printf.patch2
-rw-r--r--util/kconfig/patches/0005-util-kconfig-Ignore-extra-symbols-in-configs-instead.patch2
-rw-r--r--util/kconfig/patches/0006-util-kconfig-Set-parameter-of-mkdir-to-only-one-for-.patch10
-rw-r--r--util/kconfig/patches/0007-kconfig-Allow-KCONFIG_STRICT-outside-of-confdata.c.patch6
-rw-r--r--util/kconfig/patches/0008-kconfig-Add-wildcard-support-for-source.patch2
-rw-r--r--util/kconfig/patches/0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch121
-rw-r--r--util/kconfig/patches/0011-remove-include-config-hardcodes.patch18
-rw-r--r--util/kconfig/patches/0012-safer-tmpfiles.patch124
-rw-r--r--util/kconfig/patches/series1
11 files changed, 73 insertions, 225 deletions
diff --git a/util/kconfig/patches/0001-Kconfig-Add-KCONFIG_STRICT-mode.patch b/util/kconfig/patches/0001-Kconfig-Add-KCONFIG_STRICT-mode.patch
index 6c437344dc..37f41b09e5 100644
--- a/util/kconfig/patches/0001-Kconfig-Add-KCONFIG_STRICT-mode.patch
+++ b/util/kconfig/patches/0001-Kconfig-Add-KCONFIG_STRICT-mode.patch
@@ -19,7 +19,7 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -439,6 +439,7 @@ load:
+@@ -428,6 +428,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line + 2 + strlen(CONFIG_));
if (!sym) {
@@ -27,7 +27,7 @@ Index: kconfig/confdata.c
conf_set_changed(true);
continue;
}
-@@ -521,6 +522,13 @@ load:
+@@ -510,6 +511,13 @@ load:
}
free(line);
fclose(in);
diff --git a/util/kconfig/patches/0002-Kconfig-Change-symbol-override-from-warning-to-notic.patch b/util/kconfig/patches/0002-Kconfig-Change-symbol-override-from-warning-to-notic.patch
index 4ce52da64a..e9b6462094 100644
--- a/util/kconfig/patches/0002-Kconfig-Change-symbol-override-from-warning-to-notic.patch
+++ b/util/kconfig/patches/0002-Kconfig-Change-symbol-override-from-warning-to-notic.patch
@@ -23,7 +23,7 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -184,6 +184,16 @@ static void conf_warning(const char *fmt
+@@ -166,6 +166,16 @@ static void conf_warning(const char *fmt
conf_warnings++;
}
@@ -40,7 +40,7 @@ Index: kconfig/confdata.c
static void conf_default_message_callback(const char *s)
{
printf("#\n# ");
-@@ -449,7 +459,7 @@ load:
+@@ -438,7 +448,7 @@ load:
sym->type = S_BOOLEAN;
}
if (sym->flags & def_flags) {
@@ -49,7 +49,7 @@ Index: kconfig/confdata.c
}
switch (sym->type) {
case S_BOOLEAN:
-@@ -488,7 +498,7 @@ load:
+@@ -477,7 +487,7 @@ load:
}
if (sym->flags & def_flags) {
@@ -58,7 +58,7 @@ Index: kconfig/confdata.c
}
if (conf_set_sym_val(sym, def, def_flags, p))
continue;
-@@ -513,7 +523,7 @@ load:
+@@ -502,7 +512,7 @@ load:
break;
case yes:
if (cs->def[def].tri != no)
diff --git a/util/kconfig/patches/0003-util-kconfig-conf.c-Fix-newline-in-error-printf.patch b/util/kconfig/patches/0003-util-kconfig-conf.c-Fix-newline-in-error-printf.patch
index ea27fbddf3..dabb0d9fde 100644
--- a/util/kconfig/patches/0003-util-kconfig-conf.c-Fix-newline-in-error-printf.patch
+++ b/util/kconfig/patches/0003-util-kconfig-conf.c-Fix-newline-in-error-printf.patch
@@ -14,7 +14,7 @@ Index: kconfig/conf.c
===================================================================
--- kconfig.orig/conf.c
+++ kconfig/conf.c
-@@ -900,7 +900,7 @@ int main(int ac, char **av)
+@@ -889,7 +889,7 @@ int main(int ac, char **av)
if (input_mode == savedefconfig) {
if (conf_write_defconfig(defconfig_file)) {
diff --git a/util/kconfig/patches/0005-util-kconfig-Ignore-extra-symbols-in-configs-instead.patch b/util/kconfig/patches/0005-util-kconfig-Ignore-extra-symbols-in-configs-instead.patch
index 8753522c9c..142788d089 100644
--- a/util/kconfig/patches/0005-util-kconfig-Ignore-extra-symbols-in-configs-instead.patch
+++ b/util/kconfig/patches/0005-util-kconfig-Ignore-extra-symbols-in-configs-instead.patch
@@ -24,7 +24,7 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -449,7 +449,9 @@ load:
+@@ -438,7 +438,9 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line + 2 + strlen(CONFIG_));
if (!sym) {
diff --git a/util/kconfig/patches/0006-util-kconfig-Set-parameter-of-mkdir-to-only-one-for-.patch b/util/kconfig/patches/0006-util-kconfig-Set-parameter-of-mkdir-to-only-one-for-.patch
index d6598ac5ce..cd61f446a9 100644
--- a/util/kconfig/patches/0006-util-kconfig-Set-parameter-of-mkdir-to-only-one-for-.patch
+++ b/util/kconfig/patches/0006-util-kconfig-Set-parameter-of-mkdir-to-only-one-for-.patch
@@ -15,14 +15,14 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -164,6 +164,10 @@ struct conf_printer {
- void (*print_comment)(FILE *, const char *, void *);
- };
+@@ -155,6 +155,10 @@ static void conf_message(const char *fmt
+ static const char *conf_filename;
+ static int conf_lineno, conf_warnings;
+#ifdef __MINGW32__
+#define mkdir(_n,_p) mkdir((_n))
+#endif
+
static void conf_warning(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-
+ {
+ va_list ap;
diff --git a/util/kconfig/patches/0007-kconfig-Allow-KCONFIG_STRICT-outside-of-confdata.c.patch b/util/kconfig/patches/0007-kconfig-Allow-KCONFIG_STRICT-outside-of-confdata.c.patch
index 1af5e0112b..315d0e7f4b 100644
--- a/util/kconfig/patches/0007-kconfig-Allow-KCONFIG_STRICT-outside-of-confdata.c.patch
+++ b/util/kconfig/patches/0007-kconfig-Allow-KCONFIG_STRICT-outside-of-confdata.c.patch
@@ -36,7 +36,7 @@ Index: kconfig/conf.c
static void conf(struct menu *menu);
static void check_conf(struct menu *menu);
-@@ -732,6 +734,7 @@ int main(int ac, char **av)
+@@ -721,6 +723,7 @@ int main(int ac, char **av)
const char *progname = av[0];
int opt;
const char *name, *defconfig_file = NULL /* gcc uninit */;
@@ -44,7 +44,7 @@ Index: kconfig/conf.c
int no_conf_write = 0;
tty_stdio = isatty(0) && isatty(1);
-@@ -838,6 +841,13 @@ int main(int ac, char **av)
+@@ -827,6 +830,13 @@ int main(int ac, char **av)
break;
}
@@ -62,7 +62,7 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -539,11 +539,7 @@ load:
+@@ -528,11 +528,7 @@ load:
free(line);
fclose(in);
diff --git a/util/kconfig/patches/0008-kconfig-Add-wildcard-support-for-source.patch b/util/kconfig/patches/0008-kconfig-Add-wildcard-support-for-source.patch
index abd6574879..688b387407 100644
--- a/util/kconfig/patches/0008-kconfig-Add-wildcard-support-for-source.patch
+++ b/util/kconfig/patches/0008-kconfig-Add-wildcard-support-for-source.patch
@@ -34,7 +34,7 @@ Index: kconfig/lexer.l
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
-@@ -438,6 +439,32 @@ void zconf_nextfile(const char *name)
+@@ -439,6 +440,32 @@ void zconf_nextfile(const char *name)
current_file = file;
}
diff --git a/util/kconfig/patches/0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch b/util/kconfig/patches/0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch
index 7e005e5f9d..aae6c97ab9 100644
--- a/util/kconfig/patches/0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch
+++ b/util/kconfig/patches/0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch
@@ -10,74 +10,6 @@ Date: Fri Nov 22 22:08:15 2019 +0100
Change-Id: I9e62b05e45709f1539e455e2eed37308609be15e
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
-Index: kconfig/confdata.c
-===================================================================
---- kconfig.orig/confdata.c
-+++ kconfig/confdata.c
-@@ -687,6 +687,9 @@ header_print_symbol(FILE *fp, struct sym
-
- switch (*value) {
- case 'n':
-+ if (getenv("KCONFIG_NEGATIVES") != NULL)
-+ fprintf(fp, "#define %s%s%s 0\n",
-+ CONFIG_, sym->name, suffix);
- break;
- case 'm':
- suffix = "_MODULE";
-@@ -702,14 +705,28 @@ header_print_symbol(FILE *fp, struct sym
-
- if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X'))
- prefix = "0x";
-+ if (value[0] == '\0') {
-+ /*
-+ * prefix is reset to remain closer to the older
-+ * coreboot patch. No need to keep this once kconfig
-+ * is fully upreved
-+ */
-+ prefix = "";
-+ value = "0";
-+ }
- fprintf(fp, "#define %s%s %s%s\n",
- CONFIG_, sym->name, prefix, value);
- break;
- }
- case S_STRING:
-+ if (value[0] == '\0')
-+ break;
-+ if (!(sym->flags & SYMBOL_WRITE))
-+ break;
-+ /* fall through */
- case S_INT:
- fprintf(fp, "#define %s%s %s\n",
-- CONFIG_, sym->name, value);
-+ CONFIG_, sym->name, value[0]?value:"0");
- break;
- default:
- break;
-@@ -1080,6 +1097,7 @@ int conf_write_autoconf(int overwrite)
- const char *autoconf_name = conf_get_autoconfig_name();
- FILE *out, *out_h;
- int i;
-+ int print_negatives = getenv("KCONFIG_NEGATIVES") != NULL;
-
- if (!overwrite && is_present(autoconf_name))
- return 0;
-@@ -1104,11 +1122,13 @@ int conf_write_autoconf(int overwrite)
-
- for_all_symbols(i, sym) {
- sym_calc_value(sym);
-- if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
-+ if (!(sym->flags & SYMBOL_WRITE) && !print_negatives)
-+ continue;
-+ if (!sym->name)
- continue;
-
- /* write symbols to auto.conf and autoconf.h */
-- conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
-+ conf_write_symbol(out, sym, &kconfig_printer_cb, print_negatives?NULL:(void *)1);
- conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
- }
- fclose(out);
Index: kconfig/symbol.c
===================================================================
--- kconfig.orig/symbol.c
@@ -91,3 +23,56 @@ Index: kconfig/symbol.c
case S_STRING:
return str;
case S_UNKNOWN:
+Index: kconfig/confdata.c
+===================================================================
+--- kconfig.orig/confdata.c
++++ kconfig/confdata.c
+@@ -720,7 +720,12 @@ static void print_symbol_for_dotconfig(F
+
+ static void print_symbol_for_autoconf(FILE *fp, struct symbol *sym)
+ {
+- __print_symbol(fp, sym, OUTPUT_N_NONE, true);
++ int print_negatives = getenv("KCONFIG_NEGATIVES") != NULL;
++ enum output_n out = OUTPUT_N_NONE;
++ if (print_negatives) {
++ out = OUTPUT_N;
++ }
++ __print_symbol(fp, sym, out, true);
+ }
+
+ void print_symbol_for_listconfig(struct symbol *sym)
+@@ -745,6 +750,10 @@ static void print_symbol_for_c(FILE *fp,
+ case S_TRISTATE:
+ switch (*val) {
+ case 'n':
++ if (getenv("KCONFIG_NEGATIVES") != NULL) {
++ val = "0";
++ break;
++ }
+ return;
+ case 'm':
+ sym_suffix = "_MODULE";
+@@ -756,6 +765,12 @@ static void print_symbol_for_c(FILE *fp,
+ case S_HEX:
+ if (val[0] != '0' || (val[1] != 'x' && val[1] != 'X'))
+ val_prefix = "0x";
++ /* fall through */
++ case S_INT:
++ if (val[0] == '\0') {
++ val = "0";
++ val_prefix = "";
++ }
+ break;
+ case S_STRING:
+ escaped = escape_string_value(val);
+@@ -1106,8 +1121,9 @@ static int __conf_write_autoconf(const c
+
+ conf_write_heading(file, comment_style);
+
++ int print_negatives = getenv("KCONFIG_NEGATIVES") != NULL;
+ for_all_symbols(i, sym)
+- if ((sym->flags & SYMBOL_WRITE) && sym->name)
++ if (((sym->flags & SYMBOL_WRITE) || (print_negatives && sym->type != S_STRING)) && sym->name)
+ print_symbol(file, sym);
+
+ /* check possible errors in conf_write_heading() and print_symbol() */
diff --git a/util/kconfig/patches/0011-remove-include-config-hardcodes.patch b/util/kconfig/patches/0011-remove-include-config-hardcodes.patch
index fa21dac4b4..ca408d9301 100644
--- a/util/kconfig/patches/0011-remove-include-config-hardcodes.patch
+++ b/util/kconfig/patches/0011-remove-include-config-hardcodes.patch
@@ -2,8 +2,8 @@ Index: kconfig/confdata.c
===================================================================
--- kconfig.orig/confdata.c
+++ kconfig/confdata.c
-@@ -241,6 +241,13 @@ static const char *conf_get_autoconfig_n
- return name ? name : "include/config/auto.conf";
+@@ -230,6 +230,13 @@ static const char *conf_get_autoheader_n
+ return name ? name : "include/generated/autoconf.h";
}
+static const char *conf_get_autobase_name(void)
@@ -16,7 +16,7 @@ Index: kconfig/confdata.c
static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
{
char *p2;
-@@ -1024,7 +1031,7 @@ static int conf_touch_deps(void)
+@@ -1031,7 +1038,7 @@ static int conf_touch_deps(void)
struct symbol *sym;
int res, i;
@@ -25,15 +25,3 @@ Index: kconfig/confdata.c
depfile_prefix_len = strlen(depfile_path);
name = conf_get_autoconfig_name();
-@@ -1102,7 +1109,10 @@ int conf_write_autoconf(int overwrite)
- if (!overwrite && is_present(autoconf_name))
- return 0;
-
-- conf_write_dep("include/config/auto.conf.cmd");
-+ char autoconfcmd_path[PATH_MAX];
-+ snprintf(autoconfcmd_path, sizeof(autoconfcmd_path), "%s%s",
-+ conf_get_autobase_name(), "auto.conf.cmd");
-+ conf_write_dep(autoconfcmd_path);
-
- if (conf_touch_deps())
- return 1;
diff --git a/util/kconfig/patches/0012-safer-tmpfiles.patch b/util/kconfig/patches/0012-safer-tmpfiles.patch
deleted file mode 100644
index d9b8361812..0000000000
--- a/util/kconfig/patches/0012-safer-tmpfiles.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-commit 7b2deddbb0ef350e189fe42c025b07c943aedc4c
-Author: Raul E Rangel <rrangel@chromium.org>
-Date: Thu Jul 25 15:49:52 2019 -0600
-
- Kconfig: Write tmp files into same directory as target files
-
- This removes the need for COREBOOT_BUILD_DIR in Kconfig. Since the
- original files will be replaced with the tmp file, the parent directory
- already needs to be writable.
-
- Before this change, the tmp files would be created in the CWD (src) if
- COREBOOT_BUILD_DIR was not specified.
-
- BUG=b:112267918
- TEST=emerge-grunt coreboot and verified no tmp files were created in the
- src directory.
-
- Change-Id: Icdaf2ff3dd1ec98813b75ef55b96e38e1ca19ec7
- Signed-off-by: Raul E Rangel <rrangel@chromium.org>
- Reviewed-on: https://review.coreboot.org/c/coreboot/+/34244
- Reviewed-by: Martin Roth <martinroth@google.com>
- Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-
-Index: kconfig/confdata.c
-===================================================================
---- kconfig.orig/confdata.c
-+++ kconfig/confdata.c
-@@ -880,6 +880,16 @@ next_menu:
- return 0;
- }
-
-+
-+static int conf_mktemp(const char *path, char *tmpfile)
-+{
-+ if (snprintf(tmpfile, PATH_MAX, "%s.tmp.XXXXXX", path) >= PATH_MAX) {
-+ errno = EOVERFLOW;
-+ return -1;
-+ }
-+ return mkstemp(tmpfile);
-+}
-+
- int conf_write(const char *name)
- {
- FILE *out;
-@@ -1001,7 +1011,14 @@ static int conf_write_dep(const char *na
- struct file *file;
- FILE *out;
-
-- out = fopen("..config.tmp", "w");
-+ if (make_parent_dir(name))
-+ return 1;
-+ char filename[PATH_MAX];
-+ int fd = conf_mktemp(name, filename);
-+ if (fd == -1)
-+ return 1;
-+
-+ out = fdopen(fd, "w");
- if (!out)
- return 1;
- fprintf(out, "deps_config := \\\n");
-@@ -1019,9 +1036,7 @@ static int conf_write_dep(const char *na
- fprintf(out, "\n$(deps_config): ;\n");
- fclose(out);
-
-- if (make_parent_dir(name))
-- return 1;
-- rename("..config.tmp", name);
-+ rename(filename, name);
- return 0;
- }
-
-@@ -1117,11 +1132,26 @@ int conf_write_autoconf(int overwrite)
- if (conf_touch_deps())
- return 1;
-
-- out = fopen(".tmpconfig", "w");
-+ if (make_parent_dir(autoconf_name))
-+ return 1;
-+ char filename[PATH_MAX];
-+ int fd = conf_mktemp(autoconf_name, filename);
-+ if (fd == -1)
-+ return 1;
-+ out = fdopen(fd, "w");
- if (!out)
- return 1;
-
-- out_h = fopen(".tmpconfig.h", "w");
-+ name = getenv("KCONFIG_AUTOHEADER");
-+ if (!name)
-+ name = "include/generated/autoconf.h";
-+ if (make_parent_dir(name))
-+ return 1;
-+ char filename_h[PATH_MAX];
-+ int fd_h = conf_mktemp(name, filename_h);
-+ if (fd_h == -1)
-+ return 1;
-+ out_h = fdopen(fd_h, "w");
- if (!out_h) {
- fclose(out);
- return 1;
-@@ -1144,21 +1174,14 @@ int conf_write_autoconf(int overwrite)
- fclose(out);
- fclose(out_h);
-
-- name = getenv("KCONFIG_AUTOHEADER");
-- if (!name)
-- name = "include/generated/autoconf.h";
-- if (make_parent_dir(name))
-- return 1;
-- if (rename(".tmpconfig.h", name))
-+ if (rename(filename_h, name))
- return 1;
-
-- if (make_parent_dir(autoconf_name))
-- return 1;
- /*
- * This must be the last step, kbuild has a dependency on auto.conf
- * and this marks the successful completion of the previous steps.
- */
-- if (rename(".tmpconfig", autoconf_name))
-+ if (rename(filename, autoconf_name))
- return 1;
-
- return 0;
diff --git a/util/kconfig/patches/series b/util/kconfig/patches/series
index dfc614ec58..bccab80fd2 100644
--- a/util/kconfig/patches/series
+++ b/util/kconfig/patches/series
@@ -9,5 +9,4 @@
0009-util-kconfig-Allow-emitting-false-booleans-into-kconfig-output.patch
0010-reenable-source-in-choice.patch
0011-remove-include-config-hardcodes.patch
-0012-safer-tmpfiles.patch
0013-util-kconfig-detect-ncurses-on-FreeBSD.patch