diff --git a/package/config/conf.c b/package/config/conf.c index c824805cd5..2485dcd5e5 100644 --- a/package/config/conf.c +++ b/package/config/conf.c @@ -611,6 +611,10 @@ int main(int ac, char **av) fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); exit(1); } + if (conf_write_autoconf()) { + fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n")); + return 1; + } } return 0; } diff --git a/package/config/confdata.c b/package/config/confdata.c index 56bcd87695..52199123aa 100644 --- a/package/config/confdata.c +++ b/package/config/confdata.c @@ -44,9 +44,7 @@ const char *conf_get_configname(void) const char *conf_get_autoconfig_name(void) { - char *name = getenv("BUILDROOT_AUTOCONFIG"); - - return name ? name : "$(BR2_DEPENDS_DIR)/config/auto.conf"; + return getenv("KCONFIG_AUTOCONFIG"); } static char *conf_expand_value(const char *in) diff --git a/package/config/kconfig-to-buildroot2.patch b/package/config/kconfig-to-buildroot2.patch index 3348b85a13..877caba7f3 100644 --- a/package/config/kconfig-to-buildroot2.patch +++ b/package/config/kconfig-to-buildroot2.patch @@ -1,7 +1,7 @@ --- Makefile | 7 +++ README.buildroot2 | 22 ++++++++++ - conf.c | 13 ++---- + conf.c | 17 ++++---- confdata.c | 101 ++++++++++++++++++++++++++------------------------ expr.c | 42 ++++++++++---------- gconf.c | 4 - @@ -11,7 +11,7 @@ util.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++- zconf.tab.c_shipped | 2 zconf.y | 2 - 12 files changed, 241 insertions(+), 103 deletions(-) + 12 files changed, 244 insertions(+), 104 deletions(-) Index: config/Makefile =================================================================== @@ -91,7 +91,7 @@ Index: config/conf.c return 1; } } -@@ -600,16 +599,16 @@ +@@ -600,18 +599,22 @@ * All other commands are only used to generate a config. */ if (conf_get_changed() && conf_write(NULL)) { @@ -110,7 +110,13 @@ Index: config/conf.c + fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); exit(1); } ++ if (conf_write_autoconf()) { ++ fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n")); ++ return 1; ++ } } + return 0; + } Index: config/confdata.c =================================================================== --- config.orig/confdata.c @@ -132,7 +138,7 @@ Index: config/confdata.c static void conf_warning(const char *fmt, ...) { -@@ -36,16 +37,16 @@ +@@ -36,16 +37,14 @@ const char *conf_get_configname(void) { @@ -145,14 +151,13 @@ Index: config/confdata.c const char *conf_get_autoconfig_name(void) { - char *name = getenv("KCONFIG_AUTOCONFIG"); -+ char *name = getenv("BUILDROOT_AUTOCONFIG"); - +- - return name ? name : "include/config/auto.conf"; -+ return name ? name : "$(BR2_DEPENDS_DIR)/config/auto.conf"; ++ return getenv("KCONFIG_AUTOCONFIG"); } static char *conf_expand_value(const char *in) -@@ -219,22 +220,22 @@ +@@ -219,22 +218,22 @@ sym = NULL; switch (line[0]) { case '#': @@ -179,7 +184,7 @@ Index: config/confdata.c if (sym->type == S_UNKNOWN) sym->type = S_BOOLEAN; } -@@ -251,12 +252,8 @@ +@@ -251,12 +250,8 @@ ; } break; @@ -194,7 +199,7 @@ Index: config/confdata.c if (!p) continue; *p++ = 0; -@@ -267,13 +264,13 @@ +@@ -267,13 +262,13 @@ *p2 = 0; } if (def == S_DEF_USER) { @@ -210,7 +215,7 @@ Index: config/confdata.c if (sym->type == S_UNKNOWN) sym->type = S_OTHER; } -@@ -443,7 +440,7 @@ +@@ -443,7 +438,7 @@ if (!out) return 1; @@ -219,7 +224,7 @@ Index: config/confdata.c sym_calc_value(sym); time(&now); env = getenv("KCONFIG_NOTIMESTAMP"); -@@ -452,10 +449,8 @@ +@@ -452,10 +447,8 @@ fprintf(out, _("#\n" "# Automatically generated make config: don't edit\n" @@ -230,7 +235,7 @@ Index: config/confdata.c use_timestamp ? "# " : "", use_timestamp ? ctime(&now) : ""); -@@ -489,19 +484,19 @@ +@@ -489,19 +482,19 @@ case S_TRISTATE: switch (sym_get_tristate_value(sym)) { case no: @@ -254,7 +259,7 @@ Index: config/confdata.c while (1) { l = strcspn(str, "\"\\"); if (l) { -@@ -517,12 +512,12 @@ +@@ -517,12 +510,12 @@ case S_HEX: str = sym_get_string_value(sym); if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { @@ -269,7 +274,7 @@ Index: config/confdata.c break; } } -@@ -564,6 +559,7 @@ +@@ -564,6 +557,7 @@ { const char *name; char path[128]; @@ -277,7 +282,7 @@ Index: config/confdata.c char *s, *d, c; struct symbol *sym; struct stat sb; -@@ -572,8 +568,20 @@ +@@ -572,8 +566,20 @@ name = conf_get_autoconfig_name(); conf_read_simple(name, S_DEF_AUTO); @@ -299,7 +304,7 @@ Index: config/confdata.c res = 0; for_all_symbols(i, sym) { -@@ -666,9 +674,11 @@ +@@ -666,9 +672,11 @@ close(fd); } out: @@ -314,7 +319,7 @@ Index: config/confdata.c return res; } -@@ -683,7 +693,7 @@ +@@ -683,7 +691,7 @@ sym_clear_all_valid(); @@ -323,7 +328,7 @@ Index: config/confdata.c if (conf_split_config()) return 1; -@@ -698,22 +708,19 @@ +@@ -698,22 +706,19 @@ return 1; } @@ -350,7 +355,7 @@ Index: config/confdata.c for_all_symbols(i, sym) { sym_calc_value(sym); -@@ -726,19 +733,19 @@ +@@ -726,19 +731,19 @@ case no: break; case mod: @@ -376,7 +381,7 @@ Index: config/confdata.c while (1) { l = strcspn(str, "\"\\"); if (l) { -@@ -758,14 +765,14 @@ +@@ -758,14 +763,14 @@ case S_HEX: str = sym_get_string_value(sym); if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {