[LEDE-DEV] build: fix symlinked .config handling

Message ID 20170420021045.485-1-ryazanov.s.a@gmail.com
State Accepted
Headers show

Commit Message

Sergey Ryazanov April 20, 2017, 2:10 a.m.
When running "make menuconfig" with symlinked .config (e.g. to
env/.config) it renames symlink to .config.old, creates new .config file
and writes updated configuration here.

This breaks the desired workflow when changes in the configuration could
be checked using "scripts/env diff" and commited with
"scripts/env save". Since the env/.config file is not updated.

Fix this issue by exporting KCONFIG_OVERWRITECONFIG=1, which forces
mconf to overwrite the .config content, instead of renaming it and
creating a new file. This variable is set only if .config is a symlink,
otherwise the variable is not exported and the old behaviour is

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
 include/toplevel.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


Sergey Ryazanov April 28, 2017, 5:10 p.m. | #1
Hi Felix,

could you, please, apply this change to stable branch too (e.g.
cherry-pick the commit 5bf98b1ac)?


diff --git a/include/toplevel.mk b/include/toplevel.mk
index ceafffb..4b63e8a 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -129,7 +129,7 @@  menuconfig: scripts/config/mconf prepare-tmpinfo FORCE
 	if [ \! -e .config -a -e $(HOME)/.openwrt/defconfig ]; then \
 		cp $(HOME)/.openwrt/defconfig .config; \
-	$< Config.in
+	[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; $< Config.in
 prepare_kernel_conf: .config FORCE