genconfig.py: Print defconfig next to warnings
At present we sometimes see warnings of the form: /tmp/tmpMA89kB:36: warning: overriding the value of CMD_SPL. Old value: "y", new value: "y". This is not very useful as it does not show whch defconfig file it relates to. Update the tool to show this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
ee3e520dad
commit
8639f69a61
@ -204,6 +204,7 @@ class Config(object):
|
||||
|
||||
self.print_warnings = print_warnings
|
||||
self.print_undef_assign = print_undef_assign
|
||||
self._warnings = []
|
||||
|
||||
# For parsing routines that stop when finding a line belonging to a
|
||||
# different construct, these holds that line and the tokenized version
|
||||
@ -398,8 +399,12 @@ class Config(object):
|
||||
need to refer to the top-level kernel directory with "$srctree".
|
||||
|
||||
replace (default: True): True if the configuration should replace the
|
||||
old configuration; False if it should add to it."""
|
||||
old configuration; False if it should add to it.
|
||||
|
||||
Returns a list or warnings (hopefully empty)
|
||||
"""
|
||||
|
||||
self._warnings = []
|
||||
# Put this first so that a missing file doesn't screw up our state
|
||||
filename = os.path.expandvars(filename)
|
||||
line_feeder = _FileFeed(filename)
|
||||
@ -449,7 +454,7 @@ class Config(object):
|
||||
while 1:
|
||||
line = line_feeder.get_next()
|
||||
if line is None:
|
||||
return
|
||||
return self._warnings
|
||||
|
||||
line = line.rstrip()
|
||||
|
||||
@ -1763,8 +1768,10 @@ class Config(object):
|
||||
|
||||
def _warn(self, msg, filename=None, linenr=None):
|
||||
"""For printing warnings to stderr."""
|
||||
msg = _build_msg("warning: " + msg, filename, linenr)
|
||||
if self.print_warnings:
|
||||
_stderr_msg("warning: " + msg, filename, linenr)
|
||||
sys.stderr.write(msg + "\n")
|
||||
self._warnings.append(msg)
|
||||
|
||||
class Item(object):
|
||||
|
||||
@ -3369,10 +3376,13 @@ def _clean_up_path(path):
|
||||
path = path[2:]
|
||||
return path.rstrip("/")
|
||||
|
||||
def _stderr_msg(msg, filename, linenr):
|
||||
def _build_msg(msg, filename, linenr):
|
||||
if filename is not None:
|
||||
sys.stderr.write("{0}:{1}: ".format(_clean_up_path(filename), linenr))
|
||||
sys.stderr.write(msg + "\n")
|
||||
msg = "{0}:{1}: ".format(_clean_up_path(filename), linenr) + msg
|
||||
return msg
|
||||
|
||||
def _stderr_msg(msg, filename, linenr):
|
||||
sys.stderr.write(_build_msg(msg, filename, linenr) + "\n")
|
||||
|
||||
def _tokenization_error(s, filename, linenr):
|
||||
loc = "" if filename is None else "{0}:{1}: ".format(filename, linenr)
|
||||
|
@ -124,7 +124,7 @@ class KconfigScanner:
|
||||
os.environ['srctree'] = os.getcwd()
|
||||
os.environ['UBOOTVERSION'] = 'dummy'
|
||||
os.environ['KCONFIG_OBJDIR'] = ''
|
||||
self._conf = kconfiglib.Config()
|
||||
self._conf = kconfiglib.Config(print_warnings=False)
|
||||
|
||||
def __del__(self):
|
||||
"""Delete a leftover temporary file before exit.
|
||||
@ -166,7 +166,10 @@ class KconfigScanner:
|
||||
else:
|
||||
f.write(line[colon + 1:])
|
||||
|
||||
self._conf.load_config(self._tmpfile)
|
||||
warnings = self._conf.load_config(self._tmpfile)
|
||||
if warnings:
|
||||
for warning in warnings:
|
||||
print '%s: %s' % (defconfig, warning)
|
||||
|
||||
try_remove(self._tmpfile)
|
||||
self._tmpfile = None
|
||||
|
Loading…
Reference in New Issue
Block a user