On Tue, 3 Nov 2020 21:20:43 +0100 David Marchand <david.march...@redhat.com> wrote:
> On Tue, Nov 3, 2020 at 8:27 PM Robin Jarry <robin.ja...@6wind.com> wrote: > > 2020-11-03, David Marchand: > > > This script was using the librte_pmd prefix has a filter to follow > > as* > > > > DT_NEEDED entries. > > > Now that we changed the driver names, update this heuristic with an > > > explicit list of device classes. > > > > > > Fixes: a20b2c01a7a1 ("build: standardize component names and defines") > > > > > > Signed-off-by: David Marchand <david.march...@redhat.com> > > > --- > > > usertools/dpdk-pmdinfo.py | 5 ++++- > > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > > > diff --git a/usertools/dpdk-pmdinfo.py b/usertools/dpdk-pmdinfo.py > > > index 1661982791..687a9fd032 100755 > > > --- a/usertools/dpdk-pmdinfo.py > > > +++ b/usertools/dpdk-pmdinfo.py > > > @@ -450,7 +450,10 @@ def process_dt_needed_entries(self): > > > for tag in dynsec.iter_tags(): > > > # pyelftools may return byte-strings, force decode them > > > if force_unicode(tag.entry.d_tag) == 'DT_NEEDED': > > > - if 'librte_pmd' in force_unicode(tag.needed): > > > + words = force_unicode(tag.needed).split('_') > > > + if words and len(words) >= 3 and words[0] == 'librte' > > > and \ > > > + words[1] in ['baseband', 'compress', 'crypto', > > > 'event', > > > + 'net', 'raw', 'regex', 'vdpa']: > > > > This code is already ugly and I don't have much better to suggest... > > Less ugly with a regular expression? > > if re.match(r"^librte_(baseband|compress|crypto|event|net|raw|regex|vdpa)_", > force_unicode(tag.needed)): > > I prefer the list approach, much less error prone. The code would read better if the list of drivers was in a variable instead of a long line of code and the string processing was done separate from the test. Something like drivers = ['baseband', 'compress'... prefix = 'librte_pmd' name = force_unicode(tag.needed) if name.startswith(prefix): suffix = name[len(prefix):] if suffx in drivers: