kconfig: Sync with upstream v5.5

This commit introduces the following upstream changes:

272a72103012 kconfig: don't crash on NULL expressions in expr_eq()
46b2afa6890d kconfig: be more helpful if pkg-config is missing
5d8b42aa7ccb kconfig: Add option to get the full help text with listnewconfig
a64c0440dda1 kbuild: Wrap long "make help" text lines
521b29b6ff53 kconfig: split util.c out of parser.y
60bef52c7a68 merge_config.sh: ignore unwanted grep errors
54b8ae66ae1a kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
1634f2bfdb84 kbuild: remove clean-dirs syntax
cdfca821571d merge_config.sh: Check error codes from make

Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit is contained in:
Chris Packham 2020-12-10 19:51:50 +13:00
parent 31695dd2b0
commit acce58834d
4 changed files with 21 additions and 5 deletions

View File

@ -17,14 +17,14 @@ AM_YFLAGS = -t -l
AM_CPPFLAGS = -include config.h -DCONFIG_=\"CT_\" AM_CPPFLAGS = -include config.h -DCONFIG_=\"CT_\"
AM_LIBTOOLFLAGS = --tag CC AM_LIBTOOLFLAGS = --tag CC
conf_SOURCES = conf.c confdata.c expr.c symbol.c preprocess.c lexer.lex.c parser.tab.c conf_SOURCES = conf.c confdata.c expr.c symbol.c preprocess.c util.c lexer.lex.c parser.tab.c
conf_LDADD = $(LIBINTL) conf_LDADD = $(LIBINTL)
nconf_SOURCES = nconf.c nconf.gui.c confdata.c expr.c symbol.c preprocess.c lexer.lex.c parser.tab.c nconf_SOURCES = nconf.c nconf.gui.c confdata.c expr.c symbol.c preprocess.c util.c lexer.lex.c parser.tab.c
nconf_CFLAGS = $(CURSES_CFLAGS) nconf_CFLAGS = $(CURSES_CFLAGS)
nconf_LDADD = $(MENU_LIBS) $(PANEL_LIBS) $(CURSES_LIBS) $(LIBINTL) nconf_LDADD = $(MENU_LIBS) $(PANEL_LIBS) $(CURSES_LIBS) $(LIBINTL)
mconf_SOURCES = mconf.c confdata.c expr.c symbol.c preprocess.c lexer.lex.c parser.tab.c \ mconf_SOURCES = mconf.c confdata.c expr.c symbol.c preprocess.c util.c lexer.lex.c parser.tab.c \
lxdialog/checklist.c lxdialog/inputbox.c \ lxdialog/checklist.c lxdialog/inputbox.c \
lxdialog/menubox.c lxdialog/textbox.c lxdialog/util.c \ lxdialog/menubox.c lxdialog/textbox.c lxdialog/util.c \
lxdialog/yesno.c lxdialog/yesno.c

View File

@ -32,6 +32,7 @@ enum input_mode {
defconfig, defconfig,
savedefconfig, savedefconfig,
listnewconfig, listnewconfig,
helpnewconfig,
olddefconfig, olddefconfig,
}; };
static enum input_mode input_mode = oldaskconfig; static enum input_mode input_mode = oldaskconfig;
@ -434,6 +435,11 @@ static void check_conf(struct menu *menu)
printf("%s%s=%s\n", CONFIG_, sym->name, str); printf("%s%s=%s\n", CONFIG_, sym->name, str);
} }
} }
} else if (input_mode == helpnewconfig) {
printf("-----\n");
print_help(menu);
printf("-----\n");
} else { } else {
if (!conf_cnt++) if (!conf_cnt++)
printf("*\n* Restart config...\n*\n"); printf("*\n* Restart config...\n*\n");
@ -459,6 +465,7 @@ static struct option long_opts[] = {
{"alldefconfig", no_argument, NULL, alldefconfig}, {"alldefconfig", no_argument, NULL, alldefconfig},
{"randconfig", no_argument, NULL, randconfig}, {"randconfig", no_argument, NULL, randconfig},
{"listnewconfig", no_argument, NULL, listnewconfig}, {"listnewconfig", no_argument, NULL, listnewconfig},
{"helpnewconfig", no_argument, NULL, helpnewconfig},
{"olddefconfig", no_argument, NULL, olddefconfig}, {"olddefconfig", no_argument, NULL, olddefconfig},
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
@ -523,6 +530,7 @@ int main(int ac, char **av)
case allmodconfig: case allmodconfig:
case alldefconfig: case alldefconfig:
case listnewconfig: case listnewconfig:
case helpnewconfig:
case olddefconfig: case olddefconfig:
break; break;
case '?': case '?':
@ -556,6 +564,7 @@ int main(int ac, char **av)
case oldaskconfig: case oldaskconfig:
case oldconfig: case oldconfig:
case listnewconfig: case listnewconfig:
case helpnewconfig:
case olddefconfig: case olddefconfig:
conf_read(NULL); conf_read(NULL);
break; break;
@ -637,6 +646,7 @@ int main(int ac, char **av)
/* fall through */ /* fall through */
case oldconfig: case oldconfig:
case listnewconfig: case listnewconfig:
case helpnewconfig:
case syncconfig: case syncconfig:
/* Update until a loop caused no more changes */ /* Update until a loop caused no more changes */
do { do {
@ -655,7 +665,7 @@ int main(int ac, char **av)
defconfig_file); defconfig_file);
return 1; return 1;
} }
} else if (input_mode != listnewconfig) { } else if (input_mode != listnewconfig && input_mode != helpnewconfig) {
if (!no_conf_write && conf_write(NULL)) { if (!no_conf_write && conf_write(NULL)) {
fprintf(stderr, "\n*** Error during writing of the configuration.\n\n"); fprintf(stderr, "\n*** Error during writing of the configuration.\n\n");
exit(1); exit(1);

View File

@ -254,6 +254,13 @@ static int expr_eq(struct expr *e1, struct expr *e2)
{ {
int res, old_count; int res, old_count;
/*
* A NULL expr is taken to be yes, but there's also a different way to
* represent yes. expr_is_yes() checks for either representation.
*/
if (!e1 || !e2)
return expr_is_yes(e1) && expr_is_yes(e2);
if (e1->type != e2->type) if (e1->type != e2->type)
return 0; return 0;
switch (e1->type) { switch (e1->type) {

View File

@ -727,5 +727,4 @@ void zconfdump(FILE *out)
} }
} }
#include "util.c"
#include "menu.c" #include "menu.c"