summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2016-05-19 06:52:06 (GMT)
committerMasahiro Yamada <yamada.masahiro@socionext.com>2016-06-12 22:46:28 (GMT)
commit5da4f857beac1cf859aefac3cf2ae980115ec1ae (patch)
tree1456449d2c41540d083056b11bf9413f39a6bb25
parentc1c4d0f056f0c0fc8ad6397ad3ad870948d8951e (diff)
downloadu-boot-5da4f857beac1cf859aefac3cf2ae980115ec1ae.tar.xz
tools: moveconfig: report when CONFIGs are removed by savedefconfig
This is a rare case, but there is still possibility that some CONFIG is moved to the .config, but it is removed by "make savedefconfig". (For example, it happens when the specified CONFIG has no prompt in the Kconfig entry, i.e. it is not user-configurable.) It might be an unexpected case. So, display the log in this case (in yellow color to gain user's attention if --color option is given). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
-rwxr-xr-xtools/moveconfig.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 9c8ab19..4881ec5 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -407,6 +407,7 @@ class KconfigParser:
self.autoconf = os.path.join(build_dir, 'include', 'autoconf.mk')
self.config_autoconf = os.path.join(build_dir, 'include', 'config',
'auto.conf')
+ self.defconfig = os.path.join(build_dir, 'defconfig')
def get_cross_compile(self):
"""Parse .config file and return CROSS_COMPILE.
@@ -539,11 +540,35 @@ class KconfigParser:
f.write(value + '\n')
updated = True
+ self.results = results
os.remove(self.config_autoconf)
os.remove(self.autoconf)
return (updated, log)
+ def check_defconfig(self):
+ """Check the defconfig after savedefconfig
+
+ Returns:
+ Return additional log if moved CONFIGs were removed again by
+ 'make savedefconfig'.
+ """
+
+ log = ''
+
+ with open(self.defconfig) as f:
+ defconfig_lines = f.readlines()
+
+ for (action, value) in self.results:
+ if action != ACTION_MOVE:
+ continue
+ if not value + '\n' in defconfig_lines:
+ log += color_text(self.options.color, COLOR_YELLOW,
+ "'%s' was removed by savedefconfig.\n" %
+ value)
+
+ return log
+
class Slot:
"""A slot to store a subprocess.
@@ -659,6 +684,7 @@ class Slot:
return False
if self.state == STATE_SAVEDEFCONFIG:
+ self.log += self.parser.check_defconfig()
if not self.options.dry_run:
shutil.move(os.path.join(self.build_dir, 'defconfig'),
os.path.join('configs', self.defconfig))