summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/config/conf.c2
-rw-r--r--package/config/confdata.c6
-rw-r--r--package/config/expr.h1
-rw-r--r--package/config/menu.c9
-rw-r--r--package/config/patches/01-kconfig-kernel-to-buildroot.patch10
-rw-r--r--package/config/patches/02-cpp-comments-to-c-comments.patch6
-rw-r--r--package/config/patches/03-change-config-option-prefix.patch4
-rw-r--r--package/config/patches/05-really-clean-everything.patch6
-rw-r--r--package/config/patches/08-make-write-deps.patch6
-rw-r--r--package/config/patches/09-implement-kconfig-probability.patch4
-rw-r--r--package/config/patches/11-use-mktemp-for-lxdialog.patch6
-rw-r--r--package/config/patches/12-fix-glade-file-path.patch6
-rw-r--r--package/config/patches/14-support-out-of-tree-config.patch14
-rw-r--r--package/config/patches/15-use-PATH_MAX-for-path-buffer.patch19
-rw-r--r--package/config/symbol.c4
15 files changed, 51 insertions, 52 deletions
diff --git a/package/config/conf.c b/package/config/conf.c
index 2062b57d4..33857cefe 100644
--- a/package/config/conf.c
+++ b/package/config/conf.c
@@ -427,7 +427,7 @@ static void check_conf(struct menu *menu)
if (sym->name && !sym_is_choice_value(sym)) {
printf("CONFIG_%s\n", sym->name);
}
- } else {
+ } else if (input_mode != oldnoconfig) {
if (!conf_cnt++)
printf(_("*\n* Restart config...\n*\n"));
rootEntry = menu_get_parent_menu(menu);
diff --git a/package/config/confdata.c b/package/config/confdata.c
index 1b1fdb7b9..6455dc2fb 100644
--- a/package/config/confdata.c
+++ b/package/config/confdata.c
@@ -492,7 +492,9 @@ int conf_write_defconfig(const char *filename)
/*
* If symbol is a choice value and equals to the
* default for a choice - skip.
- * But only if value is bool and equal to "y" .
+ * But only if value is bool and equal to "y" and
+ * choice is not "optional".
+ * (If choice is "optional" then all values can be "n")
*/
if (sym_is_choice_value(sym)) {
struct symbol *cs;
@@ -500,7 +502,7 @@ int conf_write_defconfig(const char *filename)
cs = prop_get_symbol(sym_get_choice_prop(sym));
ds = sym_choice_default(cs);
- if (sym == ds) {
+ if (!sym_is_optional(cs) && sym == ds) {
if ((sym->type == S_BOOLEAN) &&
sym_get_tristate_value(sym) == yes)
goto next_menu;
diff --git a/package/config/expr.h b/package/config/expr.h
index 6ee2e4fb1..170459c22 100644
--- a/package/config/expr.h
+++ b/package/config/expr.h
@@ -165,7 +165,6 @@ struct menu {
struct symbol *sym;
struct property *prompt;
struct expr *dep;
- struct expr *dir_dep;
unsigned int flags;
char *help;
struct file *file;
diff --git a/package/config/menu.c b/package/config/menu.c
index 7f3b79705..edda8b496 100644
--- a/package/config/menu.c
+++ b/package/config/menu.c
@@ -107,7 +107,6 @@ static struct expr *menu_check_dep(struct expr *e)
void menu_add_dep(struct expr *dep)
{
current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
- current_entry->dir_dep = current_entry->dep;
}
void menu_set_type(int type)
@@ -291,10 +290,6 @@ void menu_finalize(struct menu *parent)
for (menu = parent->list; menu; menu = menu->next)
menu_finalize(menu);
} else if (sym) {
- /* ignore inherited dependencies for dir_dep */
- sym->dir_dep.expr = expr_transform(expr_copy(parent->dir_dep));
- sym->dir_dep.expr = expr_eliminate_dups(sym->dir_dep.expr);
-
basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);
basedep = expr_eliminate_dups(expr_transform(basedep));
@@ -325,6 +320,8 @@ void menu_finalize(struct menu *parent)
parent->next = last_menu->next;
last_menu->next = NULL;
}
+
+ sym->dir_dep.expr = parent->dep;
}
for (menu = parent->list; menu; menu = menu->next) {
if (sym && sym_is_choice(sym) &&
@@ -566,7 +563,7 @@ void menu_get_ext_help(struct menu *menu, struct gstr *help)
if (menu_has_help(menu)) {
if (sym->name) {
- str_printf(help, "%s:\n\n", sym->name);
+ str_printf(help, "CONFIG_%s:\n\n", sym->name);
str_append(help, _(menu_get_help(menu)));
str_append(help, "\n");
}
diff --git a/package/config/patches/01-kconfig-kernel-to-buildroot.patch b/package/config/patches/01-kconfig-kernel-to-buildroot.patch
index 9df22d491..08fabc13a 100644
--- a/package/config/patches/01-kconfig-kernel-to-buildroot.patch
+++ b/package/config/patches/01-kconfig-kernel-to-buildroot.patch
@@ -1,13 +1,13 @@
---
conf.c | 12 ++++++------
- confdata.c | 12 ++++--------
+ confdata.c | 14 +++++++-------
gconf.c | 4 ++--
gconf.glade | 2 +-
mconf.c | 38 ++++++++++++++++++--------------------
qconf.cc | 4 ++--
zconf.tab.c_shipped | 2 +-
zconf.y | 2 +-
- 8 files changed, 35 insertions(+), 41 deletions(-)
+ 8 files changed, 38 insertions(+), 40 deletions(-)
Index: config/conf.c
===================================================================
@@ -60,7 +60,7 @@ Index: config/confdata.c
===================================================================
--- config.orig/confdata.c
+++ config/confdata.c
-@@ -579,7 +579,7 @@
+@@ -581,7 +581,7 @@
if (!out)
return 1;
@@ -69,7 +69,7 @@ Index: config/confdata.c
sym_calc_value(sym);
time(&now);
env = getenv("KCONFIG_NOTIMESTAMP");
-@@ -588,7 +588,7 @@
+@@ -590,7 +590,7 @@
fprintf(out, _("#\n"
"# Automatically generated make config: don't edit\n"
@@ -78,7 +78,7 @@ Index: config/confdata.c
"%s%s"
"#\n"),
sym_get_string_value(sym),
-@@ -802,25 +802,25 @@
+@@ -804,25 +804,25 @@
return 1;
}
diff --git a/package/config/patches/02-cpp-comments-to-c-comments.patch b/package/config/patches/02-cpp-comments-to-c-comments.patch
index a801319e3..cb27056ad 100644
--- a/package/config/patches/02-cpp-comments-to-c-comments.patch
+++ b/package/config/patches/02-cpp-comments-to-c-comments.patch
@@ -2,10 +2,10 @@
expr.c | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
-Index: config.clean/expr.c
+Index: config/expr.c
===================================================================
---- config.clean.orig/expr.c
-+++ config.clean/expr.c
+--- config.orig/expr.c
++++ config/expr.c
@@ -331,7 +331,7 @@
e->right.expr = expr_trans_bool(e->right.expr);
break;
diff --git a/package/config/patches/03-change-config-option-prefix.patch b/package/config/patches/03-change-config-option-prefix.patch
index dd645b100..9e93f682c 100644
--- a/package/config/patches/03-change-config-option-prefix.patch
+++ b/package/config/patches/03-change-config-option-prefix.patch
@@ -128,7 +128,7 @@ Index: config/confdata.c
break;
case S_OTHER:
case S_UNKNOWN:
-@@ -838,14 +835,14 @@
+@@ -840,14 +837,14 @@
case no:
break;
case mod:
@@ -147,7 +147,7 @@ Index: config/confdata.c
break;
}
break;
-@@ -855,12 +852,12 @@
+@@ -857,12 +854,12 @@
case S_HEX:
str = sym_get_string_value(sym);
if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
diff --git a/package/config/patches/05-really-clean-everything.patch b/package/config/patches/05-really-clean-everything.patch
index f8d8a39d2..50575e472 100644
--- a/package/config/patches/05-really-clean-everything.patch
+++ b/package/config/patches/05-really-clean-everything.patch
@@ -2,10 +2,10 @@
Makefile | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
-Index: config.new/Makefile
+Index: config/Makefile
===================================================================
---- config.new.orig/Makefile
-+++ config.new/Makefile
+--- config.orig/Makefile
++++ config/Makefile
@@ -199,10 +199,16 @@
gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif
diff --git a/package/config/patches/08-make-write-deps.patch b/package/config/patches/08-make-write-deps.patch
index b10413485..686038a5b 100644
--- a/package/config/patches/08-make-write-deps.patch
+++ b/package/config/patches/08-make-write-deps.patch
@@ -2,10 +2,10 @@
util.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 116 insertions(+), 1 deletion(-)
-Index: config.clean/util.c
+Index: config/util.c
===================================================================
---- config.clean.orig/util.c
-+++ config.clean/util.c
+--- config.orig/util.c
++++ config/util.c
@@ -26,6 +26,121 @@
return file;
}
diff --git a/package/config/patches/09-implement-kconfig-probability.patch b/package/config/patches/09-implement-kconfig-probability.patch
index 59837790f..622093107 100644
--- a/package/config/patches/09-implement-kconfig-probability.patch
+++ b/package/config/patches/09-implement-kconfig-probability.patch
@@ -6,7 +6,7 @@ Index: config/confdata.c
===================================================================
--- config.orig/confdata.c
+++ config/confdata.c
-@@ -981,7 +981,16 @@
+@@ -983,7 +983,16 @@
void conf_set_all_new_symbols(enum conf_def_mode mode)
{
struct symbol *sym, *csym;
@@ -24,7 +24,7 @@ Index: config/confdata.c
for_all_symbols(i, sym) {
if (sym_has_value(sym))
-@@ -1000,8 +1009,15 @@
+@@ -1002,8 +1011,15 @@
sym->def[S_DEF_USER].tri = no;
break;
case def_random:
diff --git a/package/config/patches/11-use-mktemp-for-lxdialog.patch b/package/config/patches/11-use-mktemp-for-lxdialog.patch
index 16fd8bf18..60190b877 100644
--- a/package/config/patches/11-use-mktemp-for-lxdialog.patch
+++ b/package/config/patches/11-use-mktemp-for-lxdialog.patch
@@ -2,10 +2,10 @@
lxdialog/check-lxdialog.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: config.clean/lxdialog/check-lxdialog.sh
+Index: config/lxdialog/check-lxdialog.sh
===================================================================
---- config.clean.orig/lxdialog/check-lxdialog.sh
-+++ config.clean/lxdialog/check-lxdialog.sh
+--- config.orig/lxdialog/check-lxdialog.sh
++++ config/lxdialog/check-lxdialog.sh
@@ -31,7 +31,7 @@
}
diff --git a/package/config/patches/12-fix-glade-file-path.patch b/package/config/patches/12-fix-glade-file-path.patch
index 10c7e9163..140201cec 100644
--- a/package/config/patches/12-fix-glade-file-path.patch
+++ b/package/config/patches/12-fix-glade-file-path.patch
@@ -2,10 +2,10 @@
gconf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: config.new/gconf.c
+Index: config/gconf.c
===================================================================
---- config.new.orig/gconf.c
-+++ config.new/gconf.c
+--- config.orig/gconf.c
++++ config/gconf.c
@@ -1525,7 +1525,7 @@
/* Determine GUI path */
env = getenv(SRCTREE);
diff --git a/package/config/patches/14-support-out-of-tree-config.patch b/package/config/patches/14-support-out-of-tree-config.patch
index 3c2a523a7..763e063c6 100644
--- a/package/config/patches/14-support-out-of-tree-config.patch
+++ b/package/config/patches/14-support-out-of-tree-config.patch
@@ -31,7 +31,7 @@ Index: config/confdata.c
}
static char *conf_expand_value(const char *in)
-@@ -542,6 +540,9 @@
+@@ -544,6 +542,9 @@
int use_timestamp = 1;
char *env;
@@ -41,7 +41,7 @@ Index: config/confdata.c
dirname[0] = 0;
if (name && name[0]) {
struct stat st;
-@@ -658,6 +659,7 @@
+@@ -660,6 +661,7 @@
{
const char *name;
char path[128];
@@ -49,7 +49,7 @@ Index: config/confdata.c
char *s, *d, c;
struct symbol *sym;
struct stat sb;
-@@ -666,8 +668,20 @@
+@@ -668,8 +670,20 @@
name = conf_get_autoconfig_name();
conf_read_simple(name, S_DEF_AUTO);
@@ -72,7 +72,7 @@ Index: config/confdata.c
res = 0;
for_all_symbols(i, sym) {
-@@ -760,9 +774,11 @@
+@@ -762,9 +776,11 @@
close(fd);
}
out:
@@ -87,7 +87,7 @@ Index: config/confdata.c
return res;
}
-@@ -774,25 +790,38 @@
+@@ -776,25 +792,38 @@
FILE *out, *tristate, *out_h;
time_t now;
int i;
@@ -130,7 +130,7 @@ Index: config/confdata.c
if (!out_h) {
fclose(out);
fclose(tristate);
-@@ -815,8 +844,7 @@
+@@ -817,8 +846,7 @@
fprintf(out_h, "/*\n"
" * Automatically generated C config: don't edit\n"
" * %s"
@@ -140,7 +140,7 @@ Index: config/confdata.c
ctime(&now));
for_all_symbols(i, sym) {
-@@ -870,19 +898,22 @@
+@@ -872,19 +900,22 @@
name = getenv("KCONFIG_AUTOHEADER");
if (!name)
name = "include/generated/autoconf.h";
diff --git a/package/config/patches/15-use-PATH_MAX-for-path-buffer.patch b/package/config/patches/15-use-PATH_MAX-for-path-buffer.patch
index 4be6cb6a2..816aa446a 100644
--- a/package/config/patches/15-use-PATH_MAX-for-path-buffer.patch
+++ b/package/config/patches/15-use-PATH_MAX-for-path-buffer.patch
@@ -11,14 +11,14 @@ Signed-off-by: Will Newton <will.newton@imgtec.com>
Acked-by: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
---
- scripts/kconfig/confdata.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ confdata.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/confdata.c b/confdata.c
-index 35c08ec..96110ea 100644
---- a/confdata.c
-+++ b/confdata.c
-@@ -534,7 +534,7 @@ int conf_write(const char *name)
+Index: config/confdata.c
+===================================================================
+--- config.orig/confdata.c
++++ config/confdata.c
+@@ -536,7 +536,7 @@
struct menu *menu;
const char *basename;
const char *str;
@@ -27,7 +27,7 @@ index 35c08ec..96110ea 100644
enum symbol_type type;
time_t now;
int use_timestamp = 1;
-@@ -658,7 +658,7 @@ next:
+@@ -660,7 +660,7 @@
static int conf_split_config(void)
{
const char *name;
@@ -36,6 +36,3 @@ index 35c08ec..96110ea 100644
char *opwd, *dir, *_name;
char *s, *d, c;
struct symbol *sym;
---
-1.7.1
-
diff --git a/package/config/symbol.c b/package/config/symbol.c
index e95718fea..1f8b30544 100644
--- a/package/config/symbol.c
+++ b/package/config/symbol.c
@@ -350,6 +350,7 @@ void sym_calc_value(struct symbol *sym)
}
}
calc_newval:
+#if 0
if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
fprintf(stderr, "warning: (");
expr_fprint(sym->rev_dep.expr, stderr);
@@ -358,6 +359,7 @@ void sym_calc_value(struct symbol *sym)
expr_fprint(sym->dir_dep.expr, stderr);
fprintf(stderr, ")\n");
}
+#endif
newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
}
if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
@@ -937,6 +939,8 @@ static void sym_check_print_recursive(struct symbol *last_sym)
sym = stack->sym;
next_sym = stack->next ? stack->next->sym : last_sym;
prop = stack->prop;
+ if (prop == NULL)
+ prop = stack->sym->prop;
/* for choice values find the menu entry (used below) */
if (sym_is_choice(sym) || sym_is_choice_value(sym)) {