On Thu, 2021-02-25 at 09:31 +0100, Arend van Spriel wrote: > > On 24-02-2021 15:32, Johannes Berg wrote: > > Hi Arend, > > > > > I was made aware that the select line in brcm80211 Kconfig is not > > > working in backports: > > > > > > select WANT_DEV_COREDUMP if BRCMFMAC > > > > > > Is this something that can be fixed in backports? > > > > I guess it can be, but what do you mean by "not working"? > > > > It should be rewritten to > > > > select BPAUTO_WANT_DEV_COREDUMP if BRCMFMAC > > > > but quite possibly the parser doesn't understand the " if BRCMFMAC" part > > there. > > That exactly what is being reported. Things were working fine until I > added the "if BRCMFMAC" part. Yeah, so lib/kconfig.py has this sel_line = re.compile(r'^(?P<spc>\s+)select\s+(?P<sym>[^\s]*)\s*$') which doesn't cover the case of "if ..." on the select line. I guess you could either look at that and fix it - need to fix the regex to allow all_selects() to find it, and modify_selects() to preserve the "if ..." part. Probably something like diff --git a/lib/kconfig.py b/lib/kconfig.py index a77f8a54eea7..46df636d7594 100644 --- a/lib/kconfig.py +++ b/lib/kconfig.py @@ -8,7 +8,7 @@ src_line_rel = re.compile(r'^\s*source\s+(?P<src>[^\s"]*)"?\s*$') tri_line = re.compile(r'^(?P<spc>\s+)tristate') bool_line = re.compile(r'^(?P<spc>\s+)bool') cfg_line = re.compile(r'^(?P<opt>config|menuconfig)\s+(?P<sym>[^\s]*)') -sel_line = re.compile(r'^(?P<spc>\s+)select\s+(?P<sym>[^\s]*)\s*$') +sel_line = re.compile(r'^(?P<spc>\s+)select\s+(?P<sym>[^\s]*)(?P<ifexpr>.*)$') backport_line = re.compile(r'^\s+#(?P<key>[ch]-file|module-name)\s*(?P<name>.*)') class ConfigTree(object): @@ -230,9 +230,9 @@ class ConfigTree(object): m = sel_line.match(l) if m and not m.group('sym') in syms: if 'BPAUTO_' + m.group('sym') in syms: - out += m.group('spc') + "select BPAUTO_" + m.group('sym') + '\n' + out += m.group('spc') + "select BPAUTO_" + m.group('sym') + m.group('ifexpr') + '\n' else: - out += m.group('spc') + "depends on " + m.group('sym') + '\n' + out += m.group('spc') + "depends on " + m.group('sym') + m.group('ifexpr') + '\n' else: out += l outf = open(os.path.join(self.bpid.target_dir, nf), 'w') johannes -- To unsubscribe from this list: send the line "unsubscribe backports" in