Adding Ali in the loop, as he was working on a similar patch. On Mon, Jul 1, 2024 at 12:56 PM Mingjin Ye <mingjinx...@intel.com> wrote: > > Elf files generated by higher version compilers wrap multiple > symbols prefixed with "this_pmd_name". > > The patch uses the regex "^this_pmd_name[0-9]+$" to match the > symbol name. > > Bugzilla ID: 1466 > Fixes: 6c4bf8f42432 ("buildtools: add Python pmdinfogen") > Cc: sta...@dpdk.org > > Signed-off-by: Mingjin Ye <mingjinx...@intel.com> > --- > v2: Use regex ^this_pmd_name[0-9]+$ to filter symbols *names* > --- > buildtools/pmdinfogen.py | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py > index 2a44f17bda..0fbcc697ed 100755 > --- a/buildtools/pmdinfogen.py > +++ b/buildtools/pmdinfogen.py > @@ -6,6 +6,7 @@ > import argparse > import ctypes > import json > +import re > import sys > import tempfile > > @@ -70,7 +71,7 @@ def find_by_prefix(self, prefix):
This function does not find symbols with a prefix anymore... Please rename. > prefix = prefix.encode("utf-8") if self._legacy_elftools else prefix > for i in range(self._symtab.num_symbols()): > symbol = self._symtab.get_symbol(i) > - if symbol.name.startswith(prefix): > + if re.match(prefix, symbol.name): > yield ELFSymbol(self._image, symbol) > > > @@ -199,7 +200,7 @@ def dump(self, file): > > def load_drivers(image): > drivers = [] > - for symbol in image.find_by_prefix("this_pmd_name"): > + for symbol in image.find_by_prefix("^this_pmd_name[0-9]+$"): > drivers.append(Driver.load(image, symbol)) > return drivers The COFF implementation is probably broken by this change as it is still filtering symbols with a prefix. Please update. -- David Marchand