Re: backports Kconfig processing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux