On Mon, 17 Mar 2025 16:43:01 +0100
David Marchand <david.march...@redhat.com> wrote:

> Rather than maintain a file in parallel of the code, symbols to be
> exported can be marked with a token RTE_EXPORT_*SYMBOL.
> 
> From those marks, the build framework generates map files only for
> symbols actually compiled (which means that the WINDOWS_NO_EXPORT hack
> becomes unnecessary).
> 
> The build framework directly creates a map file in the format that the
> linker expects (rather than converting from GNU linker to MSVC linker).
> 
> Empty maps are allowed again as a replacement for drivers/version.map.
> 
> The symbol check is updated to only support the new format.
> 
> Signed-off-by: David Marchand <david.march...@redhat.com>
> ---
> Changes since RFC v3:
> - polished python,
> - fixed doc updates not belonging to this patch,
> - renamed map files,
> - changed msvc->mslinker as link mode,
> - added parsing of AVX sources,
> 
> Changes since RFC v2:
> - because of MSVC limitations wrt macro passed via cmdline,
>   used an internal header for defining RTE_EXPORT_* macros,
> - updated documentation and tooling,

Looks like a good idea.
Is there any way to make symbols in drivers local by default?
Right now if a driver defines a non-static function it will
be visible in other code when DPDK application is statically linked.

This can lead to problems where exports are missing or accidental
name conflicts. Gcc has -fvisiblity=hidden not sure about others.

Reply via email to