On Fedora 39 with Clang 17.0.3 and ASan enabled,
RTE_PMD_EXPORT_NAME seems to be done twice for a single
lib, which results in load_drivers() returning a list
consisting of 2 drivers (e.g., ['mlx5_common_pci', '']).
image.find_by_prefix("this_pmd_name") returns 2 symbols in this case,
"mlx5_common_pci" and an empty string ''. This didn't reproduce
with clang version 16.0.6.This patch ensures that a symbol with an empty string_value doesn't cause an addition to the list of drivers. Bugzilla ID: 1313 Cc: [email protected] Suggested-by: Thomas Monjalon <[email protected]> Signed-off-by: Ali Alnubani <[email protected]> --- buildtools/pmdinfogen.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py index 2a44f17bda..2b29872649 100755 --- a/buildtools/pmdinfogen.py +++ b/buildtools/pmdinfogen.py @@ -71,7 +71,9 @@ def find_by_prefix(self, prefix): for i in range(self._symtab.num_symbols()): symbol = self._symtab.get_symbol(i) if symbol.name.startswith(prefix): - yield ELFSymbol(self._image, symbol) + elf_symbol = ELFSymbol(self._image, symbol) + if elf_symbol.string_value: + yield elf_symbol class COFFSymbol: -- 2.25.1

