diff options
author | Chris Packham <judge.packham@gmail.com> | 2020-12-09 21:53:59 +1300 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2021-02-02 20:06:32 +1300 |
commit | df94f6803fe17fd1030ef08ff0463e437b9323b9 (patch) | |
tree | 106d046627774f58f912d21a5ea1f92004c4310b /kconfig/conf.c | |
parent | 8fbf528681d1fa64a5d6fa6286fbf6f256c10a80 (diff) | |
download | crosstool-ng-df94f6803fe17fd1030ef08ff0463e437b9323b9.tar.gz crosstool-ng-df94f6803fe17fd1030ef08ff0463e437b9323b9.tar.bz2 crosstool-ng-df94f6803fe17fd1030ef08ff0463e437b9323b9.zip |
kconfig: Sync with upstream v4.19
This commit introduces the following upstream changes:
fd65465b7016 kconfig: do not require pkg-config on make {menu,n}config
bc8d2e20a3eb kconfig: remove a spurious self-assignment
9a9ddcf47831 kconfig: suppress "configuration written to .config" for syncconfig
98a4afbfafd2 kconfig: fix "Can't open ..." in parallel build
f498926c47aa kconfig: improve the recursive dependency report
5e8c5299d315 kconfig: report recursive dependency involving 'imply'
f1575595d156 kconfig: error out when seeing recursive dependency
4bf6a9af0e91 kconfig: add build-only configurator targets
1880861226c1 kconfig: remove P_ENV property type
c151272d1687 kconfig: remove unused sym_get_env_prop() function
56869d45e364 kconfig: fix the rule of mainmenu_stmt symbol
00c864f8903d kconfig: allow all config targets to write auto.conf if missing
16952b77d8b5 kconfig: make syncconfig update .config regardless of sym_change_count
79123b1389cc kconfig: create directories needed for syncconfig by itself
adc18acf42a1 kconfig: remove unneeded directory generation from local*config
0608182ad542 kconfig: split out useful helpers in confdata.c
a2ff4040151a kconfig: rename file_write_dep and move it to confdata.c
5accd7f3360e kconfig: handle format string before calling conf_message_callback()
693359f7ac90 kconfig: rename SYMBOL_AUTO to SYMBOL_NO_WRITE
4ab3b80159d4 kconfig: check for pkg-config on make {menu,n,g,x}config
8377bd2b9ee1 kbuild: Rename HOST_LOADLIBES to KBUILD_HOSTLDLIBS
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'kconfig/conf.c')
-rw-r--r-- | kconfig/conf.c | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/kconfig/conf.c b/kconfig/conf.c index abd5238b..a0db354f 100644 --- a/kconfig/conf.c +++ b/kconfig/conf.c @@ -475,6 +475,7 @@ int main(int ac, char **av) int opt; const char *name, *defconfig_file = NULL /* gcc uninit */; struct stat tmpstat; + int no_conf_write = 0; tty_stdio = isatty(0) && isatty(1); @@ -486,6 +487,11 @@ int main(int ac, char **av) input_mode = (enum input_mode)opt; switch (opt) { case syncconfig: + /* + * syncconfig is invoked during the build stage. + * Suppress distracting "configuration written to ..." + */ + conf_set_message_callback(NULL); sync_kconfig = 1; break; case defconfig: @@ -612,13 +618,14 @@ int main(int ac, char **av) } if (sync_kconfig) { - if (conf_get_changed()) { - name = getenv("KCONFIG_NOSILENTUPDATE"); - if (name && *name) { + name = getenv("KCONFIG_NOSILENTUPDATE"); + if (name && *name) { + if (conf_get_changed()) { fprintf(stderr, "\n*** The configuration requires explicit update.\n\n"); return 1; } + no_conf_write = 1; } } @@ -663,30 +670,33 @@ int main(int ac, char **av) break; } - if (sync_kconfig) { - /* syncconfig is used during the build so we shall update autoconf. - * All other commands are only used to generate a config. - */ - if (conf_get_changed() && conf_write(NULL)) { - fprintf(stderr, "\n*** Error during writing of the configuration.\n\n"); - exit(1); - } - /* In crosstool-NG, we do not use the autoconf stuff - if (conf_write_autoconf()) { - fprintf(stderr, "\n*** Error during update of the configuration.\n\n"); - return 1; - } */ - } else if (input_mode == savedefconfig) { + if (input_mode == savedefconfig) { if (conf_write_defconfig(defconfig_file)) { fprintf(stderr, "n*** Error while saving defconfig to: %s\n\n", defconfig_file); return 1; } } else if (input_mode != listnewconfig) { - if (conf_write(NULL)) { + if (!no_conf_write && conf_write(NULL)) { fprintf(stderr, "\n*** Error during writing of the configuration.\n\n"); exit(1); } + + /* + * Create auto.conf if it does not exist. + * This prevents GNU Make 4.1 or older from emitting + * "include/config/auto.conf: No such file or directory" + * in the top-level Makefile + * + * syncconfig always creates or updates auto.conf because it is + * used during the build. + */ + /* In crosstool-NG, we do not use the autoconf stuff + if (conf_write_autoconf(sync_kconfig) && sync_kconfig) { + fprintf(stderr, + "\n*** Error during sync of the configuration.\n\n"); + return 1; + }*/ } return 0; } |