[PATCH] buildtools: fix build with clang 17

David Marchand david.marchand at redhat.com
Wed Mar 20 17:30:17 CET 2024


Hello Ali, Thomas,

On Wed, Mar 20, 2024 at 5:01 PM Ali Alnubani <alialnu at nvidia.com> wrote:
>
> 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.

I suppose this comes from ASan instrumenting the code:
# nm /root/dpdk/build-clang/drivers/libtmp_rte_common_mlx5.a | grep this_pmd
0000000000000000 r this_pmd_name3
0000000000000000 n this_pmd_name3.e5676185d74e2e1a9de646deebca963f
0000000000000000 r this_pmd_name3
0000000000000000 n this_pmd_name3.a2533baf7a46959f41383725087d4086

The name of the symbols this script should look for has a clear
format, which is this_pmd_name[0-9]+.
Filtering with this pattern, there would be no need to go and
interpret a symbol content.


-- 
David Marchand



More information about the stable mailing list