From bdfe32ce1c6d8db45a64e008cd4653b11023097e Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 21 Apr 2022 10:07:53 +0200 Subject: [PATCH] Add rudimentary support for modules property Fixes: https://github.com/ulfalizer/Kconfiglib/issues/106 In linux commit 6dd85ff178cd76851e2184b13e545f5a88d1be30, Linux Torvalds changed "option modules" to plain "modules" since it was the only option left. kconfiglib does not have much support for either besides parsing it and suppressing warnings when it is applied to the 'MODULES' symbol. Mirror this behaviour for the newer "modules" property. Signed-off-by: Jim Huang --- kconfiglib.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kconfiglib.py b/kconfiglib.py index a50312e..d225e74 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -3263,6 +3263,20 @@ def _parse_props(self, node): else: self._parse_error("unrecognized option") + elif t0 is _T_MODULES: + # 'modules' formerly was 'option modules'. See above for why + # and when it is ignored. It was changed in + # linux commit 6dd85ff178cd76851e2184b13e545f5a88d1be30. + if node.item is not self.modules: + self._warn("the 'modules' property is not supported. Let " + "me know if this is a problem for you, as it " + "wouldn't be that hard to implement. Note that " + "modules are supported -- Kconfiglib just " + "assumes the symbol name MODULES, like older " + "versions of the C implementation did when " + "'modules' wasn't used.", + self.filename, self.linenr) + elif t0 is _T_OPTIONAL: if node.item.__class__ is not Choice: self._parse_error('"optional" is only valid for choices')