This script inspects an ELF file (binary or shared library) and its linked dependencies by following DT_NEEDED tags. So far a simple librte_pmd prefix was used as a filter. Now that we changed the driver library names, update this heuristic with an explicit list of all driver classes.
Fixes: a20b2c01a7a1 ("build: standardize component names and defines") Signed-off-by: David Marchand <david.march...@redhat.com> Acked-by: Robin Jarry <robin.ja...@6wind.com> --- Changelog since v1: - moved driver classes list as a class variable and did some cosmetic change for readibility, - used dpdk_driver_classes variable name in the hope that someone changing meson will catch this script too, - added bus, common, mempool and raw driver classes as some of them do carry some pmdinfo stuff and were skipped so far but I found no indication this skipping was intended, --- usertools/dpdk-pmdinfo.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/usertools/dpdk-pmdinfo.py b/usertools/dpdk-pmdinfo.py index 1661982791..55a55affde 100755 --- a/usertools/dpdk-pmdinfo.py +++ b/usertools/dpdk-pmdinfo.py @@ -430,6 +430,20 @@ def get_dt_runpath(self, dynsec): return force_unicode(tag.runpath) return "" + dpdk_driver_classes = ( + 'baseband', + 'bus', + 'common', + 'compress', + 'crypto', + 'event', + 'mempool', + 'net', + 'raw', + 'regex', + 'vdpa', + ) + def process_dt_needed_entries(self): """ Look to see if there are any DT_NEEDED entries in the binary And process those if there are @@ -450,7 +464,11 @@ 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 len(words) < 3: + continue + prefix, drv_class = words[:2] + if prefix == 'librte' and drv_class in self.dpdk_driver_classes: library = search_file(force_unicode(tag.needed), runpath + ":" + ldlibpath + ":/usr/lib64:/lib64:/usr/lib:/lib") -- 2.23.0